[xmds2] 01/11: Imported Upstream version 2.2.0

Rafael Laboissière rlaboiss-guest at moszumanska.debian.org
Tue Jan 14 00:03:01 UTC 2014


This is an automated email from the git hooks/post-receive script.

rlaboiss-guest pushed a commit to branch master
in repository xmds2.

commit 81c1c6b8daf22f317e3f13a4b75c94ea50fa228f
Author: Rafael Laboissiere <rafael at laboissiere.net>
Date:   Tue Jan 14 00:27:45 2014 +0100

    Imported Upstream version 2.2.0
---
 ReleaseNotes                                       |   16 +
 admin/TODO                                         |   70 -
 admin/create_release_version.sh                    |   49 -
 admin/developer-doc-source/FFTW3MPI Design.graffle |  Bin 94768 -> 0 bytes
 admin/developer-doc-source/FFTW3MPI Design.pdf     |  Bin 26598 -> 0 bytes
 admin/developer-doc-source/Makefile                |   14 -
 admin/developer-doc-source/epydoc.cfg              |  100 -
 admin/fftw3-SnowLeopard.patch                      |   30 -
 admin/linux_installer.sh                           |  548 --
 admin/releaseInstructions.txt                      |   31 -
 admin/svn2cl.xsl                                   |  442 -
 admin/userdoc-source/Makefile                      |   70 -
 .../_static/mathjax-use-tex-fonts.js               |    9 -
 admin/userdoc-source/advanced_topics.rst           |  276 -
 admin/userdoc-source/conf.py                       |  188 -
 admin/userdoc-source/developer.rst                 |  121 -
 admin/userdoc-source/documentation_toc.rst         |   33 -
 admin/userdoc-source/faq.rst                       |   64 -
 .../userdoc-source/images/FourierTransformEx1.pdf  |  Bin 77448 -> 0 bytes
 .../userdoc-source/images/FourierTransformEx1.png  |  Bin 19510 -> 0 bytes
 .../userdoc-source/images/FourierTransformEx2.pdf  |  Bin 176877 -> 0 bytes
 .../userdoc-source/images/FourierTransformEx2.png  |  Bin 22681 -> 0 bytes
 .../userdoc-source/images/FourierTransformEx3.pdf  |  Bin 160165 -> 0 bytes
 .../userdoc-source/images/FourierTransformEx3.png  |  Bin 28754 -> 0 bytes
 admin/userdoc-source/images/fibre1024.pdf          |  Bin 1368197 -> 0 bytes
 admin/userdoc-source/images/fibre1024.png          |  Bin 242577 -> 0 bytes
 admin/userdoc-source/images/fibreSingle.pdf        |  Bin 1567250 -> 0 bytes
 admin/userdoc-source/images/fibreSingle.png        |  Bin 228778 -> 0 bytes
 admin/userdoc-source/images/groundstateU2.pdf      |  Bin 1098425 -> 0 bytes
 admin/userdoc-source/images/groundstateU2.png      |  Bin 42924 -> 0 bytes
 admin/userdoc-source/images/groundstateU20.pdf     |  Bin 1238733 -> 0 bytes
 admin/userdoc-source/images/groundstateU20.png     |  Bin 49507 -> 0 bytes
 admin/userdoc-source/images/kubo10000.pdf          |  Bin 3957 -> 0 bytes
 admin/userdoc-source/images/kubo10000.png          |  Bin 15178 -> 0 bytes
 admin/userdoc-source/images/kuboSingle.pdf         |  Bin 33828 -> 0 bytes
 admin/userdoc-source/images/kuboSingle.png         |  Bin 44572 -> 0 bytes
 admin/userdoc-source/images/lorenz.pdf             |  Bin 650829 -> 0 bytes
 admin/userdoc-source/images/lorenz.png             |  Bin 18377 -> 0 bytes
 admin/userdoc-source/images/xmds_favicon.ico       |  Bin 4286 -> 0 bytes
 admin/userdoc-source/images/xmds_favicon.png       |  Bin 2251 -> 0 bytes
 admin/userdoc-source/images/xmds_logo.pdf          |  Bin 27201 -> 0 bytes
 admin/userdoc-source/images/xmds_logo.png          |  Bin 30659 -> 0 bytes
 admin/userdoc-source/index.rst                     |   17 -
 admin/userdoc-source/installation.rst              |  251 -
 admin/userdoc-source/introduction.rst              |   31 -
 admin/userdoc-source/licensing.rst                 |   10 -
 admin/userdoc-source/news.rst                      |  100 -
 admin/userdoc-source/optimisation_hints.rst        |  171 -
 admin/userdoc-source/reference_elements.rst        | 1339 ---
 admin/userdoc-source/reference_index.rst           |   15 -
 .../reference_installation_and_configuration.rst   |   38 -
 admin/userdoc-source/reference_schema.rst          |  157 -
 admin/userdoc-source/reference_usefulXMLSyntax.rst |   24 -
 admin/userdoc-source/support/preview.sty           |  381 -
 admin/userdoc-source/tutorial.rst                  |  258 -
 admin/userdoc-source/upgrade.rst                   |   10 -
 admin/userdoc-source/worked_examples.rst           | 1359 ----
 admin/userdoc-source/xsil2graphics2.rst            |    8 -
 .../Syntaxes/Cheetah - xpdeint template.tmLanguage |   69 -
 admin/xpdeint.tmbundle/Syntaxes/xpdeint.tmLanguage |   75 -
 admin/xpdeint.tmbundle/info.plist                  |   15 -
 debian/changelog                                   |    5 -
 debian/compat                                      |    1 -
 debian/control                                     |   45 -
 debian/copyright                                   |   31 -
 debian/docs                                        |    3 -
 debian/pycompat                                    |    1 -
 debian/pyversions                                  |    1 -
 debian/rules                                       |   28 -
 debian/xmds2.examples                              |    1 -
 debian/xmds2.manpages                              |    2 -
 documentation/.buildinfo                           |    4 +-
 documentation/_images/IntroduceNewElement.png      |  Bin 0 -> 12071 bytes
 .../_images/IntroduceNewIntegrationTechnique.png   |  Bin 0 -> 36150 bytes
 documentation/_images/Overall_Flowchart.dia        |  Bin 0 -> 1750 bytes
 documentation/_images/Overall_Flowchart.png        |  Bin 0 -> 16110 bytes
 .../Subprocess3_4_11_2_ParseIntegrateElement.dia   |  Bin 0 -> 3292 bytes
 .../Subprocess3_4_11_2_ParseIntegrateElement.png   |  Bin 0 -> 46050 bytes
 .../Subprocess3_4_11_ParseTopLvlSeqElements.dia    |  Bin 0 -> 2964 bytes
 .../Subprocess3_4_11_ParseTopLvlSeqElements.png    |  Bin 0 -> 32035 bytes
 .../_images/Subprocess3_4_parseXMLDocument.dia     |  Bin 0 -> 2308 bytes
 .../_images/Subprocess3_4_parseXMLDocument.png     |  Bin 0 -> 19539 bytes
 .../_images/Subprocess3_ParsingXMLFile.dia         |  Bin 0 -> 2801 bytes
 .../_images/Subprocess3_ParsingXMLFile.png         |  Bin 0 -> 40311 bytes
 documentation/_images/error_scaling.png            |  Bin 0 -> 77313 bytes
 documentation/_images/richardsonExtrapolation.png  |  Bin 0 -> 31999 bytes
 documentation/_sources/advanced_topics.txt         |  276 -
 documentation/_sources/developer.txt               |  121 -
 documentation/_sources/documentation_toc.txt       |   33 -
 documentation/_sources/faq.txt                     |   64 -
 documentation/_sources/index.txt                   |   17 -
 documentation/_sources/installation.txt            |  251 -
 documentation/_sources/introduction.txt            |   31 -
 documentation/_sources/licensing.txt               |   10 -
 documentation/_sources/news.txt                    |  100 -
 documentation/_sources/optimisation_hints.txt      |  171 -
 documentation/_sources/reference_elements.txt      | 1339 ---
 documentation/_sources/reference_index.txt         |   15 -
 .../reference_installation_and_configuration.txt   |   38 -
 documentation/_sources/reference_schema.txt        |  157 -
 .../_sources/reference_usefulXMLSyntax.txt         |   24 -
 documentation/_sources/tutorial.txt                |  258 -
 documentation/_sources/upgrade.txt                 |   10 -
 documentation/_sources/worked_examples.txt         | 1359 ----
 documentation/_sources/xsil2graphics2.txt          |    8 -
 documentation/_static/basic.css                    |    2 +-
 documentation/_static/default.css                  |    2 +-
 documentation/_static/doctools.js                  |   16 +-
 documentation/_static/jquery.js                    |  156 +-
 documentation/_static/pygments.css                 |    4 +-
 documentation/_static/searchtools.js               |  358 +-
 documentation/_static/sidebar.js                   |   14 +-
 documentation/_static/underscore.js                |   50 +-
 documentation/_static/websupport.js                |    2 +-
 documentation/advanced_topics.html                 |   30 +-
 documentation/bulirschStoer.html                   |  130 +
 documentation/developer.html                       |  126 +-
 documentation/doctrees/advanced_topics.doctree     |  Bin 49357 -> 52243 bytes
 documentation/doctrees/bulirschStoer.doctree       |  Bin 0 -> 20930 bytes
 documentation/doctrees/developer.doctree           |  Bin 62205 -> 92336 bytes
 documentation/doctrees/documentation_toc.doctree   |  Bin 3907 -> 3820 bytes
 documentation/doctrees/environment.pickle          |  Bin 71024 -> 95216 bytes
 documentation/doctrees/faq.doctree                 |  Bin 27012 -> 30364 bytes
 documentation/doctrees/index.doctree               |  Bin 43040 -> 51060 bytes
 documentation/doctrees/installation.doctree        |  Bin 106138 -> 112933 bytes
 documentation/doctrees/introduction.doctree        |  Bin 24126 -> 24322 bytes
 documentation/doctrees/licensing.doctree           |  Bin 4724 -> 114056 bytes
 documentation/doctrees/news.doctree                |  Bin 36964 -> 46171 bytes
 documentation/doctrees/news_content.doctree        |  Bin 0 -> 44579 bytes
 documentation/doctrees/optimisation_hints.doctree  |  Bin 47781 -> 53561 bytes
 documentation/doctrees/reference_elements.doctree  |  Bin 389993 -> 458770 bytes
 documentation/doctrees/reference_index.doctree     |  Bin 3243 -> 3181 bytes
 ...eference_installation_and_configuration.doctree |  Bin 12471 -> 12623 bytes
 documentation/doctrees/reference_schema.doctree    |  Bin 66967 -> 67499 bytes
 .../doctrees/reference_usefulXMLSyntax.doctree     |  Bin 4601 -> 4535 bytes
 documentation/doctrees/tutorial.doctree            |  Bin 47952 -> 49177 bytes
 documentation/doctrees/upgrade.doctree             |  Bin 6081 -> 6003 bytes
 documentation/doctrees/worked_examples.doctree     |  Bin 186948 -> 197981 bytes
 documentation/doctrees/xsil2graphics2.doctree      |  Bin 5377 -> 5939 bytes
 documentation/documentation_toc.html               |   35 +-
 documentation/faq.html                             |   32 +-
 documentation/genindex.html                        |  995 ++-
 documentation/index.html                           |   40 +-
 documentation/installation.html                    |   43 +-
 documentation/introduction.html                    |   20 +-
 documentation/latex/IntroduceNewElement.png        |  Bin 0 -> 12071 bytes
 .../latex/IntroduceNewIntegrationTechnique.png     |  Bin 0 -> 36150 bytes
 documentation/latex/Makefile                       |    4 +-
 documentation/latex/Overall_Flowchart.png          |  Bin 0 -> 16110 bytes
 .../Subprocess3_4_11_2_ParseIntegrateElement.png   |  Bin 0 -> 46050 bytes
 .../Subprocess3_4_11_ParseTopLvlSeqElements.png    |  Bin 0 -> 32035 bytes
 .../latex/Subprocess3_4_parseXMLDocument.png       |  Bin 0 -> 19539 bytes
 documentation/latex/Subprocess3_ParsingXMLFile.png |  Bin 0 -> 40311 bytes
 documentation/latex/error_scaling.png              |  Bin 0 -> 77313 bytes
 documentation/latex/richardsonExtrapolation.png    |  Bin 0 -> 31999 bytes
 documentation/latex/sphinx.sty                     |   94 +-
 documentation/latex/sphinxhowto.cls                |   14 +-
 documentation/latex/sphinxmanual.cls               |   16 +-
 documentation/latex/xmds2.aux                      |  785 +-
 documentation/latex/xmds2.idx                      |  196 +
 documentation/latex/xmds2.ilg                      |    8 +-
 documentation/latex/xmds2.ind                      |  257 +
 documentation/latex/xmds2.log                      |  990 ++-
 documentation/latex/xmds2.out                      |  116 +-
 documentation/latex/xmds2.pdf                      |  Bin 6678016 -> 7331787 bytes
 documentation/latex/xmds2.tex                      | 1803 ++--
 documentation/latex/xmds2.toc                      |  154 +-
 documentation/licensing.html                       |  222 +-
 documentation/news.html                            |   40 +-
 documentation/{news.html => news_content.html}     |   40 +-
 documentation/objects.inv                          |  Bin 1588 -> 1920 bytes
 documentation/optimisation_hints.html              |   62 +-
 documentation/reference_elements.html              |  221 +-
 documentation/reference_index.html                 |   23 +-
 .../reference_installation_and_configuration.html  |   23 +-
 documentation/reference_schema.html                |   22 +-
 documentation/reference_usefulXMLSyntax.html       |   20 +-
 documentation/search.html                          |   22 +-
 documentation/searchindex.js                       |    2 +-
 documentation/tutorial.html                        |   24 +-
 documentation/upgrade.html                         |   20 +-
 documentation/worked_examples.html                 |   84 +-
 documentation/xsil2graphics2.html                  |   24 +-
 examples/2DMultistateSE.xmds                       |   14 +-
 examples/bessel_cosine_groundstate.xmds            |    2 +-
 examples/bessel_cosine_stochastic_groundstate.xmds |    2 +-
 ...orm2.xmds => bessel_neumann_wave_equation.xmds} |   14 +-
 examples/bessel_transform.xmds                     |    2 +-
 examples/bessel_transform2.xmds                    |    2 +-
 examples/cpc_ex_scaling.xmds                       |    2 +-
 examples/cpc_example1.xmds                         |    2 +-
 examples/cpc_example2.xmds                         |    2 +-
 examples/cpc_example3.xmds                         |    2 +-
 examples/cpc_example4.xmds                         |   17 +-
 examples/cpc_example4_3d.xmds                      |   22 +-
 examples/cpc_example5.xmds                         |    2 +-
 examples/cpc_example6.xmds                         |    2 +-
 examples/cpc_ip_scaling.xmds                       |    2 +-
 examples/diffusion.xmds                            |    2 +-
 examples/diffusion_arguments.xmds                  |    2 +-
 examples/diffusion_dst.xmds                        |    2 +-
 examples/diffusion_mpi.xmds                        |    2 +-
 examples/diffusion_openmp.xmds                     |    2 +-
 examples/diffusion_win.xmds                        |    2 +-
 examples/excitedstate_gaussian.xmds                |    2 +-
 examples/fibre.xmds                                |    2 +-
 examples/fibre_noisevectors.xmds                   |    2 +-
 examples/groundstate_demo2.xmds                    |    2 +-
 examples/groundstate_gaussian.xmds                 |    2 +-
 examples/groundstate_workedexamples.xmds           |    2 +-
 examples/hermitegauss_groundstate.xmds             |    2 +-
 examples/hermitegauss_transform.xmds               |    2 +-
 examples/hermitegauss_transform_2d.xmds            |    2 +-
 examples/hermitegauss_transform_2d_mpi.xmds        |    2 +-
 examples/nlse.xmds                                 |    2 +-
 examples/schroedinger_gaussian.xmds                |    2 +-
 examples/sine_cross.xmds                           |    4 +-
 examples/vibstring.xmds                            |    2 +-
 examples/vibstring2.xmds                           |    2 +-
 examples/vibstring3.xmds                           |    4 +-
 examples/vibstring_circle.xmds                     |    2 +-
 examples/vibstring_circle_mpi.xmds                 |    2 +-
 examples/vibstring_circle_spectral.xmds            |    4 +-
 examples/vibstring_dct.xmds                        |    2 +-
 examples/vibstring_dirichlet_boundary.xmds         |    2 +-
 examples/vibstring_dirichlet_boundary2.xmds        |    2 +-
 examples/vibstring_ellipse.xmds                    |    2 +-
 examples/wigner.xmds                               |    2 +-
 examples/wigner_argument_mpi.xmds                  |    2 +-
 examples/wigner_spectral.xmds                      |    2 +-
 man/xsil2graphics2.1                               |   15 +-
 run_tests.py                                       |   39 +-
 setup.py                                           |    4 +-
 testsuite/fast/RbGSdipoles.xmds                    |    6 +-
 {examples => testsuite/fast}/cpc_example4.xmds     |   41 +-
 testsuite/fast/cpc_example4_expected.h5            |  Bin 0 -> 84896 bytes
 testsuite/fast/cpc_example4_expected.xsil          |  127 +
 testsuite/features/arguments.xmds                  |    8 +-
 testsuite/features/space in filename.xmds          |    8 +-
 .../error_scaling/do_not_run_tests_by_default      |    0
 .../exponential_scaling_10thOrder.xmds             | 8064 ++++++++++++++++++
 .../exponential_scaling_10thOrder_expected.xsil    | 8584 +++++++++++++++++++
 .../exponential_scaling_2ndOrder.xmds              | 8065 ++++++++++++++++++
 .../exponential_scaling_2ndOrder_expected.xsil     | 8585 ++++++++++++++++++++
 .../exponential_scaling_4thOrder.xmds              | 8064 ++++++++++++++++++
 .../exponential_scaling_4thOrder_expected.xsil     | 8584 +++++++++++++++++++
 .../exponential_scaling_6thOrder.xmds              | 8064 ++++++++++++++++++
 .../exponential_scaling_6thOrder_expected.xsil     | 8584 +++++++++++++++++++
 .../exponential_scaling_8thOrder.xmds              | 8064 ++++++++++++++++++
 .../exponential_scaling_8thOrder_expected.xsil     | 8584 +++++++++++++++++++
 .../error_scaling/logplotall.gp                    |   58 +
 .../error_scaling/plot_error_data.py               |   46 +
 .../richardson_extrapolation/vibstring_mm.xmds     |   35 +-
 .../vibstring_mm_expected.xsil                     |  125 +
 .../vibstring_mm_expected_mg0.dat                  |  Bin 0 -> 42020 bytes
 .../vibstring_mm_expected_mg1.dat                  |  Bin 0 -> 20812 bytes
 .../richardson_extrapolation/vibstring_re.xmds     |   43 +-
 .../vibstring_re_expected.xsil                     |  125 +
 .../vibstring_re_expected_mg0.dat                  |  Bin 0 -> 42032 bytes
 .../vibstring_re_expected_mg1.dat                  |  Bin 0 -> 20824 bytes
 ...mpi_paths.xmds => kubo_adaptive_mpi_paths.xmds} |   10 +-
 .../kubo_integer_dimensions_mpi_break_expected.dat |  Bin 24600 -> 24600 bytes
 ...kubo_integer_dimensions_mpi_break_expected.xsil |   29 +-
 .../mpi/kubo_integer_dimensions_mpi_expected.xsil  |   29 +-
 .../kubo_integer_dimensions_mpi_expected_mg0.dat   |  Bin 12048 -> 12048 bytes
 .../kubo_integer_dimensions_mpi_expected_mg1.dat   |  Bin 188536 -> 188536 bytes
 testsuite/mpi/kubo_mpi_paths.xmds                  |    2 +-
 .../operators/constant_complex_ip_2d.xmds          |   37 +-
 .../constant_complex_separated_ip_2d.xmds          |   71 +
 .../operators/constant_real_ip_2d.xmds             |   32 +-
 testsuite/operators/derivative_2d_expected.xsil    |   88 +
 testsuite/operators/derivative_2d_expected_mg0.dat |  Bin 0 -> 205544 bytes
 .../operators/nonconstant_complex_ip_2d.xmds       |   32 +-
 .../nonconstant_complex_separated_ip_2d.xmds       |   71 +
 .../operators/nonconstant_real_ip_2d.xmds          |   32 +-
 .../transforms/bessel_neumann_wave_equation.xmds   |   18 +-
 .../bessel_neumann_wave_equation_expected.h5       |  Bin 0 -> 181632 bytes
 .../bessel_neumann_wave_equation_expected.xsil     |  126 +
 xpdeint/Features/Arguments.py                      |    6 +-
 xpdeint/Features/AsciiFormat.py                    |    6 +-
 xpdeint/Features/AutoVectorise.py                  |    6 +-
 xpdeint/Features/Benchmark.py                      |    6 +-
 xpdeint/Features/BinaryFormat.py                   |   36 +-
 xpdeint/Features/BinaryFormat.tmpl                 |   10 +-
 xpdeint/Features/Bing.py                           |    6 +-
 xpdeint/Features/CFlags.py                         |    6 +-
 xpdeint/Features/ChunkedOutput.py                  |    6 +-
 xpdeint/Features/Diagnostics.py                    |    6 +-
 xpdeint/Features/ErrorCheck.py                     |    6 +-
 xpdeint/Features/Globals.py                        |    6 +-
 xpdeint/Features/HDF5Format.py                     |  265 +-
 xpdeint/Features/HDF5Format.tmpl                   |    7 +
 xpdeint/Features/HaltNonFinite.py                  |    6 +-
 xpdeint/Features/MaxIterations.py                  |    6 +-
 xpdeint/Features/OpenMP.py                         |    6 +-
 xpdeint/Features/Output.py                         |    6 +-
 xpdeint/Features/OutputFormat.py                   |   10 +-
 xpdeint/Features/Stochastic.py                     |    6 +-
 xpdeint/Features/Transforms/Basis.py               |    6 +-
 xpdeint/Features/Transforms/BesselBasis.py         |   12 +-
 xpdeint/Features/Transforms/BesselBasis.tmpl       |    2 +-
 .../BesselNeumannTransform.py}                     |   88 +-
 .../Transforms/BesselNeumannTransform.tmpl         |   31 +
 .../Transforms/BesselTransform.py}                 |   62 +-
 xpdeint/Features/Transforms/BesselTransform.tmpl   |   31 +
 xpdeint/Features/Transforms/EPBasis.py             |    6 +-
 .../Features/Transforms/FourierTransformFFTW3.py   |    6 +-
 .../Transforms/FourierTransformFFTW3MPI.py         |    6 +-
 .../Transforms/FourierTransformFFTW3Threads.py     |    6 +-
 xpdeint/Features/Transforms/HermiteGaussEPBasis.py |    6 +-
 .../Transforms/HermiteGaussFourierEPBasis.py       |    6 +-
 .../Transforms/HermiteGaussTransform.py}           |   57 +-
 .../Features/Transforms/HermiteGaussTransform.tmpl |   30 +
 .../Transforms/HermiteGaussTwiddleBasis.py         |    6 +-
 xpdeint/Features/Transforms/MMT.py                 |  177 +-
 xpdeint/Features/Transforms/MMT.tmpl               |   17 -
 xpdeint/Features/Transforms/NoTransformMPI.py      |    6 +-
 .../Features/Transforms/TransformMultiplexer.py    |    6 +-
 xpdeint/Features/Transforms/_BesselTransform.py    |  238 +
 .../Features/Transforms/_FourierTransformFFTW3.py  |    2 +-
 .../Features/Transforms/_HermiteGaussTransform.py  |  223 +
 xpdeint/Features/Transforms/_MMT.py                |  291 +-
 xpdeint/Features/Transforms/__init__.py            |    9 +-
 xpdeint/Features/Validation.py                     |    6 +-
 xpdeint/Geometry/BesselDimensionRepresentation.py  |   53 +-
 .../Geometry/BesselDimensionRepresentation.tmpl    |    8 +-
 ....py => BesselNeumannDimensionRepresentation.py} |  141 +-
 ...l => BesselNeumannDimensionRepresentation.tmpl} |   34 +-
 xpdeint/Geometry/DimensionRepresentation.py        |    6 +-
 xpdeint/Geometry/FieldElement.py                   |    6 +-
 xpdeint/Geometry/GeometryElement.py                |    6 +-
 .../HermiteGaussDimensionRepresentation.py         |    6 +-
 .../Geometry/NonUniformDimensionRepresentation.py  |    6 +-
 .../SphericalBesselDimensionRepresentation.py      |   38 +-
 .../SphericalBesselDimensionRepresentation.tmpl    |    2 +-
 .../SplitUniformDimensionRepresentation.py         |    6 +-
 xpdeint/Geometry/UniformDimensionRepresentation.py |    6 +-
 xpdeint/Geometry/_FieldElement.py                  |    6 +-
 xpdeint/HDF5.py                                    |   28 +-
 xpdeint/MomentGroupElement.py                      |    6 +-
 xpdeint/Operators/ConstantEXOperator.py            |    6 +-
 xpdeint/Operators/ConstantIPOperator.py            |  149 +-
 xpdeint/Operators/ConstantIPOperator.tmpl          |   40 +-
 xpdeint/Operators/CrossPropagationOperator.py      |    6 +-
 xpdeint/Operators/DeltaAOperator.py                |    6 +-
 xpdeint/Operators/FilterOperator.py                |    6 +-
 xpdeint/Operators/FunctionsOperator.py             |    6 +-
 xpdeint/Operators/NonConstantEXOperator.py         |    6 +-
 xpdeint/Operators/NonConstantIPOperator.py         |  230 +-
 xpdeint/Operators/NonConstantIPOperator.tmpl       |   62 +-
 xpdeint/Operators/Operator.py                      |    6 +-
 xpdeint/Operators/OperatorContainer.py             |  537 +-
 xpdeint/Operators/OperatorContainer.tmpl           |  106 +
 xpdeint/Operators/SICDeltaAOperator.py             |    6 +-
 xpdeint/Operators/_IPOperator.py                   |    3 +-
 ...{OperatorContainer.py => _OperatorContainer.py} |   30 +-
 xpdeint/ParserException.py                         |    2 +
 xpdeint/Preferences.py                             |    2 +-
 xpdeint/ScriptElement.py                           |  152 +-
 xpdeint/ScriptElement.tmpl                         |   22 +
 xpdeint/Segments/BreakpointSegment.py              |    6 +-
 xpdeint/Segments/FilterSegment.py                  |    6 +-
 xpdeint/Segments/Integrators/AdaptiveStep.py       |  619 +-
 xpdeint/Segments/Integrators/AdaptiveStep.tmpl     |    2 +
 xpdeint/Segments/Integrators/FixedStep.py          |   28 +-
 xpdeint/Segments/Integrators/FixedStepWithCross.py |    6 +-
 xpdeint/Segments/Integrators/Integrator.py         |    6 +-
 xpdeint/Segments/Integrators/MMStepper.py          |  441 +
 xpdeint/Segments/Integrators/MMStepper.tmpl        |  165 +
 xpdeint/Segments/Integrators/RK45Stepper.py        |  230 +-
 xpdeint/Segments/Integrators/RK45Stepper.tmpl      |   13 +-
 xpdeint/Segments/Integrators/RK4Stepper.py         |  144 +-
 xpdeint/Segments/Integrators/RK4Stepper.tmpl       |    3 +-
 xpdeint/Segments/Integrators/RK89Stepper.py        |  590 +-
 xpdeint/Segments/Integrators/RK89Stepper.tmpl      |   29 +-
 xpdeint/Segments/Integrators/RK9Stepper.py         |  592 +-
 xpdeint/Segments/Integrators/RK9Stepper.tmpl       |   29 +-
 .../Segments/Integrators/RichardsonFixedStep.py    |  644 ++
 .../Segments/Integrators/RichardsonFixedStep.tmpl  |  178 +
 xpdeint/Segments/Integrators/SICStepper.py         |   80 +-
 xpdeint/Segments/Integrators/SICStepper.tmpl       |    3 +-
 xpdeint/Segments/Integrators/SIStepper.py          |   82 +-
 xpdeint/Segments/Integrators/SIStepper.tmpl        |    3 +-
 xpdeint/Segments/Integrators/_Integrator.py        |    7 +-
 .../Segments/Integrators/_RichardsonFixedStep.py   |   37 +
 xpdeint/Segments/Integrators/__init__.py           |    4 +-
 xpdeint/Segments/SequenceSegment.py                |    6 +-
 xpdeint/Segments/TopLevelSequenceElement.py        |    6 +-
 xpdeint/Simulation.py                              |  103 +-
 xpdeint/Simulation.tmpl                            |   17 +-
 .../AdaptiveMPIMultiPathDriver.py                  |  773 ++
 .../AdaptiveMPIMultiPathDriver.tmpl                |  389 +
 xpdeint/SimulationDrivers/DistributedMPIDriver.py  |   84 +-
 .../SimulationDrivers/DistributedMPIDriver.tmpl    |   12 +-
 xpdeint/SimulationDrivers/MPI.py                   |    6 +-
 xpdeint/SimulationDrivers/MPIMultiPathDriver.py    |  135 +-
 xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl  |   29 +-
 xpdeint/SimulationDrivers/MultiPathDriver.py       |  185 +-
 xpdeint/SimulationDrivers/MultiPathDriver.tmpl     |   15 +-
 xpdeint/SimulationDrivers/SimulationDriver.py      |  157 +-
 xpdeint/SimulationDrivers/SimulationDriver.tmpl    |   12 +-
 xpdeint/SimulationElement.py                       |    6 +-
 xpdeint/Stochastic/Generators/DSFMTGenerator.py    |    6 +-
 xpdeint/Stochastic/Generators/Generator.py         |   52 +-
 xpdeint/Stochastic/Generators/Generator.tmpl       |    4 +-
 xpdeint/Stochastic/Generators/MKLGenerator.py      |    6 +-
 xpdeint/Stochastic/Generators/POSIXGenerator.py    |    6 +-
 xpdeint/Stochastic/Generators/SolirteGenerator.py  |    6 +-
 .../GaussianBoxMuellerRandomVariable.py            |    6 +-
 .../RandomVariables/GaussianMKLRandomVariable.py   |    6 +-
 .../RandomVariables/GaussianRandomVariable.py      |   28 +-
 .../GaussianSolirteRandomVariable.py               |    6 +-
 .../RandomVariables/PoissonianRandomVariable.py    |   50 +-
 .../RandomVariables/UniformRandomVariable.py       |    6 +-
 xpdeint/Vectors/ComputedVector.py                  |    6 +-
 xpdeint/Vectors/NoiseVector.py                     |    6 +-
 xpdeint/Vectors/VectorElement.py                   |   28 +-
 xpdeint/Vectors/VectorInitialisation.py            |    6 +-
 xpdeint/Vectors/VectorInitialisationFromCDATA.py   |    6 +-
 xpdeint/Vectors/VectorInitialisationFromHDF5.py    |    6 +-
 xpdeint/Vectors/VectorInitialisationFromXSIL.py    |   54 +-
 xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl  |    9 +-
 xpdeint/Version.py                                 |    2 +-
 xpdeint/XMDS2Parser.py                             |   81 +-
 xpdeint/includes/solirte/randpool.h                |    8 +-
 xpdeint/parser2.py                                 |    2 +-
 xpdeint/support/wscript                            |    2 -
 xpdeint/support/xpdeint.rnc                        |    4 +-
 xpdeint/support/xpdeint.rng                        |   10 +-
 xpdeint/version.sh                                 |    4 +-
 xpdeint/waf/waflib/Build.pyc                       |  Bin 44551 -> 43675 bytes
 xpdeint/waf/waflib/ConfigSet.pyc                   |  Bin 11923 -> 11623 bytes
 xpdeint/waf/waflib/Configure.pyc                   |  Bin 19318 -> 19030 bytes
 xpdeint/waf/waflib/Context.pyc                     |  Bin 18167 -> 17891 bytes
 xpdeint/waf/waflib/Errors.pyc                      |  Bin 3564 -> 3444 bytes
 xpdeint/waf/waflib/Logs.pyc                        |  Bin 10070 -> 9818 bytes
 xpdeint/waf/waflib/Node.pyc                        |  Bin 26717 -> 26117 bytes
 xpdeint/waf/waflib/Options.pyc                     |  Bin 9252 -> 9108 bytes
 xpdeint/waf/waflib/Runner.pyc                      |  Bin 10657 -> 10393 bytes
 xpdeint/waf/waflib/Scripting.pyc                   |  Bin 18766 -> 18430 bytes
 xpdeint/waf/waflib/Task.py                         |   22 +-
 xpdeint/waf/waflib/Task.pyc                        |  Bin 38676 -> 38357 bytes
 xpdeint/waf/waflib/TaskGen.pyc                     |  Bin 25319 -> 24899 bytes
 xpdeint/waf/waflib/Tools/__init__.pyc              |  Bin 185 -> 173 bytes
 xpdeint/waf/waflib/Tools/c_config.pyc              |  Bin 40054 -> 39532 bytes
 xpdeint/waf/waflib/Tools/c_preproc.pyc             |  Bin 28226 -> 27926 bytes
 xpdeint/waf/waflib/Utils.pyc                       |  Bin 21201 -> 20691 bytes
 xpdeint/waf/waflib/__init__.pyc                    |  Bin 179 -> 167 bytes
 xpdeint/waf/waflib/ansiterm.pyc                    |  Bin 11852 -> 11492 bytes
 xpdeint/waf/waflib/extras/__init__.pyc             |  Bin 186 -> 174 bytes
 xpdeint/waf/waflib/extras/compat15.pyc             |  Bin 11160 -> 10944 bytes
 xpdeint/xsil2graphics2/MathematicaImport.py        |    6 +-
 xpdeint/xsil2graphics2/MatlabOctaveImport.py       |   22 +-
 xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl     |    8 +-
 xpdeint/xsil2graphics2/PythonImport.py             |    6 +-
 .../BesselBasis.py => xsil2graphics2/RImport.py}   |  140 +-
 xpdeint/xsil2graphics2/RImport.tmpl                |   67 +
 xpdeint/xsil2graphicsParser.py                     |    5 +-
 458 files changed, 96271 insertions(+), 16590 deletions(-)

diff --git a/ReleaseNotes b/ReleaseNotes
index 9d58a11..0a5644b 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -1,3 +1,19 @@
+**** XMDS 2.2.0 "Out of cheese error" ****
+
+XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically
+
+* Separated IP operators.  This is a significant performance optimisation (~30%) for problems with two or more dimensions.  It requires separating IP operators of the form "f(kx) + g(ky)" (e.g. kinetic energy for quantum physics) into *two* IP operators and explicitly setting the dimensions="x" and dimensions="y" attributes on each.  See :ref:`Optimisation hints<OptimisationHints>` for details.
+* Significant speed optimisations for adaptive integrators with IP operators (past IP operator calculations are re-used if the time-step hasn't changed).
+* The "constant" attribute for IP/EX operators is now unnecessary and considered advanced usage.  If you don't know whether to specify constant="yes" or constant="no", don't specify either.
+* The xsil2graphics2 data exporter now supports Matlab, Octave, Mathematica and Python in all output formats, as well as R (hdf5 only).  The Matlab/Octave scripts are now identical.  A script generated for one will work for the other.
+* Bessel-Neumann transforms have been implemented.  Set transform="bessel-neumann" if you want a Bessel (Hankel) transform but have zero derivative at the boundary (Neumann boundary conditions) instead of zero function value (Dirichlet boundary conditions).  If you don't care about your boundary condition, stick with the "bessel" transform.
+* A Bulirisch-Stoer integrator.  This can be useful for problems which are very smooth as you can use an arbitrarily high order algorithm.  Specify algorithm="RE" and extrapolations="5" to have a 10th order integrator.  Currently this is fixed-step only.
+* "adaptive-mpi-multipath" driver.  This implements a load scheduler that better spreads the work across different CPUs when different paths can take very different amounts of time. Also useful in heterogeneous clusters.
+* XMDS2 has now been accepted into Debian as a maintained package, and can now be installed via the package manager.
+* A number of bug fixes.
+* Expanded and improved documentation.
+
+
 **** XMDS 2.1.4 "Well if this isn't nice, I don't know what is" ****
 
 The XMDS 2.1.4 update contains many new improvements and bugfixes:
diff --git a/admin/TODO b/admin/TODO
deleted file mode 100644
index 644edbe..0000000
--- a/admin/TODO
+++ /dev/null
@@ -1,70 +0,0 @@
-* Add the ability to distribute stochastic simulations using MPI with the scheduling method
-
-* In adaptive integrators, the ability to set an absolute cutoff (per vector component) in addition to a relative cutoff
-  for step-error calculations.
-
-* Add a 'moment group 0' which contains simulation constants. 
-  This moment group would be zero-d and would contain various constants depending on the
-  exact simulation. Constants that should be included are: the final value of the propagation dimension,
-   any passed-in arguments, the number of paths (if appropriate), and anything else appropriate.
-  - This can be added in the HDF5 output file.
-  - Add the simulation text to the HDF5 file.  I'd like to make the xsil file redundant.
-
-* Add support for moment post-processing (before stochastic averaging). This is only necessary for multi-path simulations where a temporal fourier transform needs to be averaged.
-
-* Add support for moment post-processing (after stochastic averaging).  This is useful for calculating, for example, Wigner standard deviations.  This means you don't need to do this in MATLAB.
-
-* Determine an appropriate transform and quasi-gauss quadrature for a polar coordinate representation.  I'm imagining a generalisation from our current 'bessel' transforms to allow a (r, \theta) -> (kr, m) transform.  Determining a good numerical method would probably be a moderate numerical-math project with implementation in MATLAB.  Implementation of the resulting work in XMDS would be a very advanced project due to the changes required in the TransformMultiplexer code.
-
-* Investigate performance of XMDS-type simulations for graphics cards using CUDA / OpenCL.  This would require experience with graphics card programming as there are lots of details about how you implement these algorithms which significantly affect performance.
-
-* Optimise MPI / OpenMP performance of XMDS simulations including determination of performance scaling limitations.  For example, on a given system, with 2 CPUs are we CPU-constrained or memory-bandwidth constrained?  What about 4 CPUs? 8? Is there anything we can do to resolve these constraints?  Another example: parts of integration algorithms are actually independent and could in principle be executed concurrently (different steps that are independent, not just the same step but on di [...]
-
-* Rewrite bindNamedVectors/preflight system. It's a mess. bindNamedVectors/preflight should probably be renamed to something like 'localPreflight'/'nonlocalPreflight'.
-
-
-* Make xmds/xpdeint code compile on Windows. Currently it works in Cygwin but suffers from 
-  SERIOUS performance degradation. I've been trying to compile a simple script (modified 
-  kubo.xmds) using the MS Visual Studio 2005 Express compiler. The following are compile issues:
-  - Headers <unistd.h> <sys/time.h> and <stdint.h> don't exist on Windows. Fixed with #ifdef POSIX.
-      unistd.h - not sure when we use it... perhaps for pthreads?
-      sys/time.h - we'll need to replace gettimeofday() with getsystemtime() or similar. Affects benchmark,
-      stdint.h - seems to be C99 but not in Visual studio 2005... strange... used for what exactly?
-  - M_PI/etc aren't defined by default in math.h. Defining _USE_CONSTANTS fixes that.
-  - _LOG lines reutrn syntax errors. Fixed with Grahams patch
-  - erand48 is not defined on Windows. dsfmt replacements work fine.
-  - fseeko is a POSIX thing as well and is missing on Windows. To use 64 bit offsets we 
-    could substitute with fsetpos and _filelengthi64. 
-  - fftw3 has compiled windows DLL's which they claim are well optimised. Linking with them is
-    easy but we can't do wisdom. #ifdef POSIX removes wisdom from windows.
-  Implementation notes:
-  - I don't think a Windows distribution needs MPI/OpenMP support. Otherwise, I don't see why the
-    things xmds does isn't easily portable...
-  - Now works fine with limited features, fftw without wisdom, and ASCII output. 
-  - kubo is MUCH faster compiled on MSVC++ than cygwin GCC
-  - diffusion_win works fine on windows.
-  - Next priorities: getting fftw3 working and porting the benchmark code...
-  - Investigate MinGW GCC 4.3 performance versus Visual Studio performance.
-
-* Breakpoint on signal? (e.g. USR1)
-
-Testcases needed:
-* MPI with Fourier transforms testing looping over both MPI dimensions with a vector that only has one of the two MPI dimensions.
-* Various tests using nonlocal dimension access
-* Tests of dumping fields with integer-valued dimensions using HDF5
-* Tests dumping fields where the testcase data was dumped on a big-endian machine (PPC)
-* More testcases doing stupid things with loading and dumping of various formats of data, including loading in MPI
-  simulations, writing of ascii/binary/HDF5 data and loading of binary/HDF5 data.
-
-* xsil2graphics2 needs finishing.
-
-* Trigger support (Ask Michael Hush).  Done "correctly", this would involve adding zero-crossing detection to the adaptive and/or fixed-step integrators.  This could be used for:
-   - Triggered-sampling: useful for Poincare plots or other situations where implicit sampling is desired
-   - Very fast Poisson noises that also scales well for large numbers of Poisson noises: useful for chemical reaction network modelling where each reaction has a rate constant and there are many (thousands?) of possible reactions.
-
-* Adaptive-order integrators (Gear method)
-
-* Make it easier to perform parameter scans (this is probably better done in an external tool, though), and more generally, graph-based processing (each node is a simulation that may have one or more inputs / outputs, etc).  This is probably insufficiently defined.
-
-* Add native support for matrix-vector multiplication and matrix-matrix multiplication (and use BLAS to make it fast). (What notation should be used for this?)
-
diff --git a/admin/create_release_version.sh b/admin/create_release_version.sh
deleted file mode 100755
index 4afef28..0000000
--- a/admin/create_release_version.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-# Exit if anything fails
-set -o errexit
-
-# Run by typing ./create_release_version.sh in admin/ directory
-cd ..
-XMDS_VERSION=`python setup.py --version`
-
-# Create Version.py with subversion revision information
-cd xpdeint
-./version.sh
-cd ..
-
-if [ -d admin/staging ]; then 
-	rm -rf admin/staging;
-fi
-
-mkdir -p admin/staging/
-
-# Create a clean checkout
-svn export . admin/staging/xmds-${XMDS_VERSION}
-# Copy Version.py with revision information
-cp xpdeint/Version.py admin/staging/xmds-${XMDS_VERSION}/xpdeint
-
-cd admin/staging/xmds-${XMDS_VERSION}
-cd admin/userdoc-source
-# Build html docs
-make html
-# Copy built HTML docs into staging/ dir for later transfer to website
-cp -r ../../documentation ../../../
-# Build LaTeX docs
-make latex
-cd ../../documentation/latex
-# Actually make the PDF
-make all-pdf
-cd ../..
-
-# Compile Cheetah templates
-make
-
-# Clean up after waf
-make distclean
-
-cd ..
-tar -czf xmds-${XMDS_VERSION}.tar.gz xmds-${XMDS_VERSION}
-
-echo To release to sourceforge, execute the following commands.
-echo scp staging/xmds-${XMDS_VERSION}.tar.gz username at frs.sf.net:/home/frs/project/x/xm/xmds/
-echo "cd staging; scp -r documentation/* username at web.sf.net:/home/project-web/xmds/htdocs/"
diff --git a/admin/developer-doc-source/FFTW3MPI Design.graffle b/admin/developer-doc-source/FFTW3MPI Design.graffle
deleted file mode 100644
index 1e0873b..0000000
Binary files a/admin/developer-doc-source/FFTW3MPI Design.graffle and /dev/null differ
diff --git a/admin/developer-doc-source/FFTW3MPI Design.pdf b/admin/developer-doc-source/FFTW3MPI Design.pdf
deleted file mode 100644
index 8e72fec..0000000
Binary files a/admin/developer-doc-source/FFTW3MPI Design.pdf and /dev/null differ
diff --git a/admin/developer-doc-source/Makefile b/admin/developer-doc-source/Makefile
deleted file mode 100644
index f34a3e5..0000000
--- a/admin/developer-doc-source/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-SOURCE = $(wildcard ../xpdeint/*py)
-
-default: html
-
-pdf: $(SOURCE)
-	epydoc --config=epydoc.cfg --pdf
-
-html: $(SOURCE)
-	epydoc --config=epydoc.cfg --html
-
-.PHONY: clean
-clean:
-	rm -rf html
-	rm -rf pdf
diff --git a/admin/developer-doc-source/epydoc.cfg b/admin/developer-doc-source/epydoc.cfg
deleted file mode 100644
index 0fa5835..0000000
--- a/admin/developer-doc-source/epydoc.cfg
+++ /dev/null
@@ -1,100 +0,0 @@
-[epydoc]
-
-# The list of objects to document.  Objects can be named using
-# dotted names, module filenames, or package directory names.
-# Alases for this option include "objects" and "values".
-modules: ../../xpdeint
-
-# An integer indicating how verbose epydoc should be.  The default
-# value is 0; negative values will supress warnings and errors;
-# positive values will give more verbose output.
-verbosity: 0
-
-### Generation options
-
-# The default markup language for docstrings, for modules that do
-# not define __docformat__.  Defaults to epytext.
-docformat: restructuredtext
-
-# The format for showing inheritance objects.
-# It should be one of: 'grouped', 'listed', 'included'.
-inheritance: listed
-
-# Whether or not to include syntax highlighted source code in
-# the output (HTML only).
-sourcecode: yes
-
-exclude: xpdeint\.wafadmin\..*
-
-### Output options
-
-# The documented project's name.
-name: xpdeint
-
-# The CSS stylesheet for HTML output.  Can be the name of a builtin
-# stylesheet, or the name of a file.
-css: white
-
-# The documented project's URL.
-url: http://www.xmds.org/
-
-# HTML code for the project link in the navigation bar.  If left
-# unspecified, the project link will be generated based on the
-# project's name and URL.
-#link: <a href="somewhere">My Cool Project</a>
-
-# The "top" page for the documentation.  Can be a URL, the name
-# of a module or class, or one of the special names "trees.html",
-# "indices.html", or "help.html"
-#top: os.path
-
-# An alternative help file.  The named file should contain the
-# body of an HTML file; navigation bars will be added to it.
-#help: my_helpfile.html
-
-# Whether or not to include a frames-based table of contents.
-frames: no
-
-# Whether each class should be listed in its own section when
-# generating LaTeX or PDF output.
-separate-classes: no
-
-### API linking options
-
-# Define a new API document.  A new interpreted text role
-# will be created
-#external-api: epydoc
-
-# Use the records in this file to resolve objects in the API named NAME.
-#external-api-file: epydoc:api-objects.txt
-
-# Use this URL prefix to configure the string returned for external API.
-#external-api-root: epydoc:http://epydoc.sourceforge.net/api
-
-
-### Graph options
-
-# The list of graph types that should be automatically included
-# in the output.  Graphs are generated using the Graphviz "dot"
-# executable.  Graph types include: "classtree", "callgraph",
-# "umlclass".  Use "all" to include all graph types
-graph: classtree
-
-# The path to the Graphviz "dot" executable, used to generate
-# graphs.
-#dotpath: /usr/bin/dot
-
-# Specify the font used to generate Graphviz graphs.
-# (e.g., helvetica or times).
-graph-font: Helvetica
-
-# Specify the font size used to generate Graphviz graphs.
-graph-font-size: 10
-
-### Return value options
-
-# The condition upon which Epydoc should exit with a non-zero
-# exit status. Possible values are error, warning, docstring_warning
-#fail-on: error
-
-
diff --git a/admin/fftw3-SnowLeopard.patch b/admin/fftw3-SnowLeopard.patch
deleted file mode 100644
index 1e890a4..0000000
--- a/admin/fftw3-SnowLeopard.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- libbench2/report.c.old	2009-09-24 10:23:36.000000000 +1000
-+++ libbench2/report.c	2009-09-24 10:20:37.000000000 +1000
-@@ -92,21 +92,17 @@
- 
- static void sprintf_time(double x, char *buf, int buflen)
- {
--#ifdef HAVE_SNPRINTF
--#  define BENCH_BUFARG buf, buflen
--#else
--#  define snprintf sprintf
--#  define BENCH_BUFARG buf
-+#ifndef HAVE_SNPRINTF
-+#  define snprintf(str, len, ...) sprintf(str, __VA_ARGS__)
- #endif
-      if (x < 1.0E-6)
--	  snprintf(BENCH_BUFARG, "%.2f ns", x * 1.0E9);
-+	  snprintf(buf, buflen, "%.2f ns", x * 1.0E9);
-      else if (x < 1.0E-3)
--	  snprintf(BENCH_BUFARG, "%.2f us", x * 1.0E6);
-+	  snprintf(buf, buflen, "%.2f us", x * 1.0E6);
-      else if (x < 1.0)
--	  snprintf(BENCH_BUFARG, "%.2f ms", x * 1.0E3);
-+	  snprintf(buf, buflen, "%.2f ms", x * 1.0E3);
-      else
--	  snprintf(BENCH_BUFARG, "%.2f s", x);
--#undef BENCH_BUFARG
-+	  snprintf(buf, buflen, "%.2f s", x);
- }
- 
- void report_verbose(const bench_problem *p, double *t, int st)
diff --git a/admin/linux_installer.sh b/admin/linux_installer.sh
deleted file mode 100755
index ebec9b2..0000000
--- a/admin/linux_installer.sh
+++ /dev/null
@@ -1,548 +0,0 @@
-#!/bin/bash
-
-# This installer (currently) works for Debian and Debian based distros such
-# as Ubuntu, as well as Fedora and Red Hat. Other distros may or may not work.
-
-# Look for apt-get or yum to decide whether we should use a deb or rpm
-# type of installation. If more distro support is added later, a finer
-# grained detection scheme will probably be necessary.
-
-# If this entire script is run as root, all the files created under the user's home
-# directory will be owned by root, which can cause permissioning and deletion
-# problems. Only the copying of the binaries to locations outside the user's
-# directories should be run as sudo, which is taken care of within this script.
-
-XMDS_VERSION="2.1.4"
-KNOWN_GOOD_XMDS_REVISION="2872"
-
-if [ "$(whoami)" = "root" ]; then
-  echo
-  echo "It seems you are running this installer as root or with the \"sudo\" "
-  echo "command. Unless you're sure you know what you're doing, please exit"
-  echo "and re-run this installer as a normal user (i.e. without \"sudo\")."
-  echo
-  echo "Continue? (Y/N)"
-
-  read reply
-  if [ $reply = "N" -o $reply = "n" ]; then
-    exit
-  fi
-fi
-
-echo $reply
-
-echo
-echo
-echo "*** XMDS2 installer v0.4 ***"
-echo
-echo "A standard install downloads the XMDS $XMDS_VERSION version of the code. This"
-echo "is the default."
-echo
-echo "A developer install will download the latest cutting-edge version of"
-echo "the XMDS code, which may include bugs. To perform a developer install,"
-echo "run the installer with the --develop option."
-echo
-echo "In both cases an SVN repository will be created locally, and you can update"
-echo "to the latest version of the code at any time by running the command"
-echo "  make update"
-echo "in the xmds-$XMDS_VERSION/ directory."
-echo
-echo
-
-RPM_INSTALL=0
-DEB_INSTALL=0
-if [ `which apt-get | wc -l` -ne 0 ]; then
-  echo; echo "apt-get found; assuming Debian packaging scheme"; echo
-  DEB_INSTALL=1
-elif [ `which yum | wc -l` -ne 0 ]; then
-  echo; echo "yum found; assuming RPM packaging scheme"; echo
-  RPM_INSTALL=1
-else
-  echo
-  echo "ERROR!"
-  echo "This installer only works on Debian, Debian-based distributions such"
-  echo "as Ubuntu and Mint, Fedora and Red Hat. Since neither \"apt-get\" "
-  echo "nor \"yum\" is available, installation can't proceed."
-  echo
-  echo "Aborting install."
-  echo
-  exit
-fi
-
-XMDS2_install_directory=$HOME"/xmds-$XMDS_VERSION"
-NUM_CPUS=`cat /proc/cpuinfo | grep processor | wc -l`
-DEVELOPER_INSTALL=0
-
-# COMMITTER_INSTALL denotes whether the person installing is
-# allowed to make commits to the sourceforge svn repository.
-# If this is set to "1" via a command line argument, 
-# an https checkout of the repo is made, and if the
-# correct credentials are not stored on the user's machine
-# (e.g. from previously committing to that repo), the installer
-# prompts for the sourceforge username and password. This
-# ensures the person can then commit to repo.
-#
-# If COMMITTER_INSTALL is set to "0", an http checkout is made
-# (*NOT* an https checkout). This is the default. It means no
-# credentials are demanded during the install phase, but that
-# person cannot immediately make commits to the xmds repo.
-# In order to get committer rights in future, the local repo
-# must be switched from http to https via
-# svn switch --relocate http://svn.code.sf.net/p/xmds/code https://svn.code.sf.net/p/xmds/code
-COMMITTER_INSTALL=0
-
-XMDS_CONFIGURE_STRING=""
-
-parse_command_line_arguments() {
-  for i in $@; do
-    if [ $i = "--help" ] || [ $i = "-h" ]; then
-      echo
-      echo "This is the XMDS "$XMDS_VERSION" installer."
-      echo
-      echo "Usage: ./install [options]"
-      echo
-      echo "Options and arguments:"
-      echo "--help          : this help text"
-      echo
-      echo "--develop       : perform a developer install, downloading the absolute" 
-      echo "                  latest version of the code"
-      echo
-      echo "--commit-access : set up the local repo to allow commits to the XMDS SVN repo. A" 
-      echo "                  developer account on the XMDS sourceforge project is required"
-      echo
-      echo "If no options are given, a standard install without commit access will be performed."
-      echo
-      exit
-    elif [ $i = "--develop" ]; then
-      DEVELOPER_INSTALL=1
-    elif [ $i = "--commit-access" ]; then
-      COMMITTER_INSTALL=1
-    else
-      echo "Unknown option:" $i
-    fi
-  done
-}
-
-install_FFTW_from_source() {
-
-  # FFTW 3.3 wasn't in the repos, so install manually from source
-  current_directory=`pwd`
-  
-  cd $XMDS2_install_directory
-
-  echo; echo "Downloading FFTW from www.fftw.org..."; echo
-
-  wget http://www.fftw.org/fftw-3.3.2.tar.gz
-  fftwversion="3.3.2"
-  if [ ! -f fftw-3.3.2.tar.gz ]; then
-    # Fall back to the known-to-exist 3.3.1
-    wget ftp://ftp.fftw.org/pub/fftw/old/fftw-3.3.1.tar.gz
-    fftwversion="3.3.1"
-
-    # If *that's* not present, we can't continue
-    if [ ! -f fftw-3.3.1.tar.gz ]; then
-      echo
-      echo "ERROR: Couldn't obtain fftw-3.3.2.tar.gz or fftw-3.3.1.tar.gz from www.fftw.org."
-      echo "Aborting install."
-      exit
-    fi
-  fi
-
-  # Unpack the FFTW archive and install it under the user's home directory structure.
-  # This avoids conflicting with any other version of FFTW that may have been
-  # installed system-wide. Later we'll tell XMDS to use this specific version.
-
-  FFTW_install_directory=$XMDS2_install_directory"/fftw-"$fftwversion
-  tar -xzf fftw-${fftwversion}.tar.gz
-  rm fftw-${fftwversion}.tar.gz
-
-  # Need quotes in the below in case path contains spaces
-  cd "$FFTW_install_directory"
-
-  echo
-  echo "Installing FFTW. This can take several minutes if you only have a single CPU."
-  
-  NO_COMPILER_SUPPORT_FOR_AVX=0  
-
-  echo "  Configuring FFTW with single precision option..."
-
-  ./configure --disable-fortran --enable-mpi --enable-single --enable-sse2 --enable-openmp --enable-avx --prefix=$FFTW_install_directory > installer.log
-  if [ $? -ne 0 ]; then
-    # Nonzero error code returned, so something went wrong
-    echo "    Configuration failed. Retrying without assuming your compiler supports AVX..."
-    ./configure --disable-fortran --enable-mpi --enable-single --enable-sse2 --enable-openmp --prefix=$FFTW_install_directory > installer.log
-    if [ $? -ne 0 ]; then
-      # Still no success, so bail out
-      echo "Configuration failed due to some unknown reason. Aborting install."
-      echo "Check installer.log in "$FFTW_install_directory " for more information."
-      echo
-      exit
-    else
-      echo "    Configuration successful!"
-      NO_COMPILER_SUPPORT_FOR_AVX=1
-    fi
-  fi
-
-  rm -f installer.log > /dev/null
-
-  echo "  Compiling FFTW with single precision option..."
-  # The single precision install produces lots of warnings, so redirect both stdout and
-  # stderror to /dev/null
-  make -j $NUM_CPUS > /dev/null 2>&1
-  
-  echo "  Installing single precision libraries..."
-  make install > /dev/null
-
-  # Note: if precision is not specified, FFTW will compile double-precision libs by default
-  echo "  Configuring FFTW with double precision option..."
-  if [ $NO_COMPILER_SUPPORT_FOR_AVX -eq 1 ]; then
-    ./configure --disable-fortran --enable-mpi --enable-sse2 --enable-openmp --prefix=$FFTW_install_directory > /dev/null
-  else
-    ./configure --disable-fortran --enable-mpi --enable-sse2 --enable-avx --enable-openmp --prefix=$FFTW_install_directory > /dev/null
-  fi
-
-  echo "  Compiling FFTW with double precision option..."
-  make -j $NUM_CPUS > /dev/null
-
-  echo "  Installing double precision libraries..."
-  make install > /dev/null
-
-  XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --lib-path "$FFTW_install_directory"/lib"
-  XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --include-path "$FFTW_install_directory"/include"
-
-  cd $current_directory
-  echo
-  echo "FFTW installed!"
-  echo
-}
-
-
-install_HDF5_from_source() {
-  current_directory=`pwd`
-
-  HDF5_install_directory=$XMDS2_install_directory"/hdf5-1.8.8"
-  
-  cd $XMDS2_install_directory
-  echo; echo "Downloading HDF5 1.8.8 from www.hdfgroup.org.."; echo
-  wget http://www.hdfgroup.org/ftp/HDF5/prev-releases/hdf5-1.8.8/src/hdf5-1.8.8.tar.gz
-
-  # Make sure the HDF5 1.8.8 archive is present
-  if [ ! -f hdf5-1.8.8.tar.gz ]; then
-    echo
-    echo "ERROR: Couldn't obtain hdf5-1.8.8.tar.gz from www.hdfgroup.org."
-    echo "Aborting install."
-    exit
-  fi
-
-  # Unpack the HDF5 1.8.8 archive and install it in the user's home directory structure.
-  # This avoids conflicting with any other version of HDF5 that may have been
-  # installed system-wide. Later we'll tell XMDS to use this specific version.  
-  tar -xzf hdf5-1.8.8.tar.gz
-  rm hdf5-1.8.8.tar.gz
-  cd $HDF5_install_directory
-
-  echo
-  echo "Installing HDF5. This can take several minutes if you only have a single CPU."
-  echo "  Configuring HDF5..."
-  ./configure --prefix=$HDF5_install_directory > installer.log
-  if [ $? -ne 0 ]; then
-    # Nonzero error code returned, so something went wrong
-    echo "\nConfiguration failed due to some unknown reason."
-    echo "As HDF5 is required for XMDS2, I am aborting the install."
-    echo "Check installer.log in "$HDF5_install_directory " for more information."
-    echo
-    exit
-  fi
-
-  rm -f installer.log > /dev/null
-
-  echo "  Compiling HDF5..."
-  # The HDF5 compile produces stupid amounts of warnings, so if
-  # I echo the error stream to standard out, the user will see pages
-  # and pages of scary stuff. Consequently just dump everything to /dev/null
-  make -j $NUM_CPUS > /dev/null 2>&1
-  
-  echo "  Copying libraries..."
-  make install > /dev/null
-
-  XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --lib-path "$HDF5_install_directory"/lib"
-  XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --include-path "$HDF5_install_directory"/include"
-
-  cd $current_directory
-  echo
-  echo "HDF5 installed!"
-  echo
-}
-
-
-parse_command_line_arguments $@
-
-if [ $DEVELOPER_INSTALL -eq 1 ]; then
-  echo "Performing developer install..."
-else
-  echo "Performing standard install..."
-fi
-echo
-echo
-echo "By default XMDS will be installed in " $XMDS2_install_directory
-echo "Press [ENTER] to accept this default, or enter a new path:"
-read reply
-
-if [ ! -z $reply ]; then
-  XMDS2_install_directory=$reply
-fi
-
-# check if XMDS directory exists, if not create it
-if [ ! -d $XMDS2_install_directory ]; then
-  mkdir $XMDS2_install_directory
-fi
-
-echo
-echo "Installing required packages..."
-echo
-
-if [ $DEB_INSTALL -eq 1 ]; then
-  # Begin Debian package install
-  sudo apt-get -y install build-essential subversion libopenmpi-dev openmpi-bin python-dev python-setuptools python-cheetah python-numpy python-pyparsing python-lxml python-mpmath libhdf5-serial-dev libgsl0-dev python-sphinx python-h5py wget
-
-  # Find the optimum ATLAS version (i.e. CBLAS implementation) and install it
-  # Older versions of Ubuntu/Debian offered pre-optimized packages for various architectures,
-  # but newer versions don't, and only offer a single generic package.
-  if [ `cat /proc/cpuinfo | grep sse3 |wc -l` -gt 0 ]; then
-    if [ `cat /proc/cpuinfo | grep "Core(TM) i7" | wc -l` -ne 0 ] && [ `apt-cache --names-only search libatlas-corei7sse3-dev | wc -l` -ne 0 ]; then
-      sudo apt-get -y install libatlas-corei7sse3-dev
-    elif [ `apt-cache --names-only search libatlas-amd64sse3-dev | wc -l` -ne 0 ]; then
-      sudo apt-get -y install libatlas-amd64sse3-dev
-    else
-      sudo apt-get -y install libatlas-base-dev
-    fi
-  else
-    sudo apt-get -y install libatlas-base-dev
-  fi 
-  # End Debian packages install
-elif [ $RPM_INSTALL -eq 1 ]; then
-  # Begin RPM packages install
-  sudo yum -y install gcc gcc-c++ make automake subversion openmpi-devel python-devel python-setuptools python-cheetah numpy gsl-devel python-sphinx wget libxml2-devel libxslt-devel
-  
-  # Find the optimum ATLAS version (i.e. CBLAS implementation) and install it
-  # Older versions of Fedora offered pre-optimized packages for various architectures,
-  # but newer versions don't, and only offer a single generic package.
-  SUCCESS=0
-  if [ $SUCCESS -eq 0 ] && [ `cat /proc/cpuinfo | grep sse3 |wc -l` -gt 0 ]; then
-    sudo yum -y install atlas-sse3-devel
-    if [ $? -eq 0 ]; then
-        SUCCESS=1;
-    fi
-  fi
-  
-  if [ $SUCCESS -eq 0 ] && [ `cat /proc/cpuinfo | grep sse2 |wc -l` -gt 0 ]; then
-    sudo yum -y install atlas-sse2-devel
-    if [ $? -eq 0 ]; then
-        SUCCESS=1;
-    fi
-  fi
-  
-  if [ $SUCCESS -eq 0 ]; then
-    sudo yum -y install atlas-devel
-  fi
-
-  # The default Red Hat repo doesn't have hdf5-dev, but Fedora does. 
-  # Check if this package is available. If it is, install via the 
-  # package manager, otherwise download, compile and install the HDF5 source code.
-
-  if [ `yum info hdf5-devel | grep hdf5-devel | wc -l` -gt 0 ]; then
-    sudo yum -y install hdf5-devel
-  else
-    echo
-    echo "The HDF5 package isn't available in your standard repositories."
-    echo "I will download, compile and install the HDF5 source code."
-    install_HDF5_from_source
-  fi
-  
-  # The packages h5py, pyparsing, python-lxml, and python-mpmath are not available
-  # in the default Red Hat repository, but are are in the EPEL repository. See if
-  # they're available; if so use yum to get them, if not use easy_install
-
-  if [ `yum info pyparsing | grep pyparsing | wc -l` -gt 0 ]; then
-    sudo yum -y install pyparsing
-  else
-    sudo easy_install pyparsing
-  fi
-
-  if [ `yum info python-lxml | grep python-lxml | wc -l` -gt 0 ]; then
-    sudo yum -y install python-lxml
-  else
-    sudo easy_install lxml
-  fi
-
-  if [ `yum info h5py | grep h5py | wc -l` -gt 0 ]; then
-    sudo yum -y install h5py
-  else
-    if [ -z $HDF5_install_directory ]; then
-      sudo easy_install h5py
-    else
-      sudo /bin/bash -c "export HDF5_DIR=${HDF5_install_directory}; easy_install h5py;"
-    fi
-  fi
-
-  if [ `yum info python-mpmath | grep python-mpmath | wc -l` -gt 0 ]; then
-    sudo yum -y install python-mpmath
-  else
-    sudo easy_install mpmath
-  fi
-
-  # End RPM packages install
-fi
-
-# Some distros put MPI libraries and binaries in a location that
-# isn't in the default search path, allowing multiple MPI versions
-# to coexist. This can also happen with the ATLAS CBLAS libraries.
-# Since we need to know where they are in order to compile stuff,
-# find where they are located.
-
-ld_search_string=`ld --verbose | grep SEARCH`
-
-echo
-echo "Searching for correct BLAS implementation on your machine. This may take some time..."
-echo
-
-# Find the CBLAS library, and make sure it's not the GSL one
-CBLASLIB=`sudo find /usr/lib* -name *libcblas.so | grep -v -i gsl | head --lines=1`
-CBLASLIBDIR=`dirname $CBLASLIB`
-if [ `echo $ld_search_string | grep $CBLASLIBDIR | wc -w` -eq 0 ]; then
-  # CBLAS library not in standard linker path
-  # Need to add it to the XMDS configure string
-  XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --lib-path "$CBLASLIBDIR
-fi
-
-CBLASHEADER=`sudo find /usr -name cblas.h | grep -v -i gsl | head --lines=1`
-CBLASHEADERDIR=`dirname $CBLASHEADER`
-if [ ! $CBLASHEADERDIR = "/usr/include" ]; then
-  if [ ! $CBLASHEADERDIR = "/usr/local/include" ]; then
-    XMDS_CONFIGURE_STRING=$XMDS_CONFIGURE_STRING" --include-path "$CBLASHEADERDIR
-  fi
-fi
-
-# Some distros don't have mpicc, mpic++ and mpirun in their default executable path, so we need to do stuff
-# to be able to use it. The user also must do stuff.
-if [ `which mpicc | wc -l` -eq 0 ]; then
-    # On some RedHat systems, we need to source /etc/profile.d/openmpi.sh
-    if [ -r /etc/profile.d/openmpi.sh ]; then
-        source /etc/profile.d/openmpi.sh;
-        load_openmpi;
-        COMPLETION_MESSAGE="\nYou must add the line 'load_openmpi' to the end of your login \nscript (probably ~/.bashrc) to use MPI.\n If you wish to load a \ndifferent MPI implementation, you can use 'module avail' to see \nwhat implementations are available as alternatives."
-    elif [ `which modulecmd | wc -l` -eq 1 ]; then
-        # This is the case for Fedora
-        source /etc/profile
-        module load mpi;
-        COMPLETION_MESSAGE="\nYou must add the line 'module load mpi' to the end of your \nlogin script (probably ~/.bashrc) to use MPI.\nIf you have multiple versions of MPI installed on your system \nand wish to use one that's not the default implementation, you \ncan use 'module avail' to see what is available and 'module load' \nthat version instead.\n"
-    fi
-fi
-
-
-# Install FFTW3.3 from package manager if available, otherwise build from source
-echo
-if [ $DEB_INSTALL -eq 1 ]; then
-  echo "Checking if MPI-enabled FFTW available in repository..."
-  if [ `apt-cache --names-only search libfftw3-mpi-dev | wc -l` -ne 0 ]; then
-    echo "Yes, it is available"
-    echo "Installing FFTW via package manager"
-    sudo apt-get -y install libfftw3-dev libfftw3-mpi-dev 
-  else 
-    echo "MPI-enabled FFTW not available in repository. Downloading, compiling and installing from source"
-    install_FFTW_from_source
-  fi
-elif [ $RPM_INSTALL -eq 1 ]; then
-  # Note Fedora 18 has fftw-3.3.3-4, fftw-devel-3.3.3-4, fftw-libs-3.3.3-4, 
-  # fftw-libs-double-3.3.3-4, fftw-libs-single-3.3.3-4, fftw-libs-quad-3.3.3-4.
-  # The fftw-devel-3.3.3-4 metapackage pulls in all the other libs: single, double, 
-  # quad and long double, plus OpenMP libs, as well as FFTW headers.
-  # As of Fedora 18, these libs are built with threads and OpenMP support, 
-  # but *NOT* MPI support, so we still have to build from source. 
-  install_FFTW_from_source
-fi
-
-
-# Fetch the XMDS2 source files
-echo
-echo "Contacting sourceforge to checkout XMDS2 source code. Please wait..."
-echo
-
-if [ $COMMITTER_INSTALL -eq 1 ]; then
-  SVN_REPOSITORY="https://svn.code.sf.net/p/xmds/code/trunk/xpdeint"
-else
-  SVN_REPOSITORY="http://svn.code.sf.net/p/xmds/code/trunk/xpdeint"
-fi
-
-if [ $DEVELOPER_INSTALL -eq 1 ]; then
-  # Fetch the latest XMDS2 source code from sourceforge
-  cd $XMDS2_install_directory
-  svn checkout $SVN_REPOSITORY .
-else
-  # Fetch a known good version of the XMDS2 source code from sourceforge
-  cd $XMDS2_install_directory
-  svn checkout -r $KNOWN_GOOD_XMDS_REVISION $SVN_REPOSITORY .
-fi
-
-# Compile the Cheetah templates into Python
-echo
-echo "Compiling Cheetah templates..."
-echo
-make
-
-# Creates the xmds2 and xsil2graphics2 files in /usr/bin (or wherever), 
-# and copy xmds2 python code into the python install path (typically 
-# something like /usr/lib/python2.7/site-packages), and tells Python
-# about the new package.
-echo
-echo "Installing XMDS..."
-echo
-sudo ./setup.py develop
-
-echo
-echo "Configuring XMDS with configure string: " $XMDS_CONFIGURE_STRING
-echo
-
-xmds2 --reconfigure $XMDS_CONFIGURE_STRING
-
-# Build the HTML documentation
-cd $XMDS2_install_directory"/admin/userdoc-source"
-make html
-
-# Fedora uses an OpenMPI library that assumes infiniband support. This 
-# results in warnings when MPI-enabled scripts are run. Inform the user
-# that these warnings can be killed if they really don't have the hardware
-if [ $RPM_INSTALL -eq 1 ]; then
-  # If the user doesn't have at least 2 processors they're not going to use MPI
-  if [ $NUM_CPUS -gt 1 ]; then
-    cd $XMDS2_install_directory"/examples"
-    xmds2 diffusion_mpi.xmds > /dev/null 2>&1
-    mpirun -np 2 diffusion_mpi > mpi_test_log 2>&1
-    if [ `grep "unable to find any relevant network interfaces" mpi_test_log | wc -l` -gt 0 ]; then
-      OMPI_CONF_FILE=`sudo find /etc -name openmpi-mca-params.conf | head --lines=1`
-      COMPLETION_MESSAGE=$COMPLETION_MESSAGE"Your machine appears to lack Infiniband hardware, which means if you run\n"
-      COMPLETION_MESSAGE=$COMPLETION_MESSAGE"MPI-enabled XMDS2 scripts you will get warnings that the hardware can't be\n"
-      COMPLETION_MESSAGE=$COMPLETION_MESSAGE"found. If you know your machine doesn't have such hardware, it is safe to\n"
-      COMPLETION_MESSAGE=$COMPLETION_MESSAGE"disable these warnings now by entering\n"
-      COMPLETION_MESSAGE=$COMPLETION_MESSAGE"sudo sh -c \"echo 'btl = ^openib' >> "$OMPI_CONF_FILE"\"\n"
-    fi
-    rm mpi_test_log
-  fi
-fi
-
-
-echo
-echo "If no errors are displayed above, XMDS $XMDS_VERSION is installed!"
-echo
-echo "To see the HTML documentation, point your browser at" $XMDS2_install_directory"/documentation/index.html"
-echo "or go to www.xmds.org"
-echo
-echo "Release notes and instructions can be found in" $XMDS2_install_directory
-echo
-echo "You can always update to the latest version of XMDS at any time by running \"make update\" "
-echo "in the top level xmds-$XMDS_VERSION/ directory."
-echo
-echo "NOTES ON YOUR PARTICULAR INSTALL:"
-echo
-echo -e ${COMPLETION_MESSAGE}
-
diff --git a/admin/releaseInstructions.txt b/admin/releaseInstructions.txt
deleted file mode 100644
index 7019648..0000000
--- a/admin/releaseInstructions.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-svn log --xml --verbose | xsltproc admin/svn2cl.xsl - > ChangeLog
-
-We'll eventually need to replace such structures in new version.  
-I already found myself wanting to scan log messages, so I copied the above over from xmds.
-
-Release Instructions:
-*********************
-
-0. Change version in the following files:
-    xpdeint/Preferences.py
-    setup.py
-    admin/linux_installer.sh
-    admin/userdoc-source/installation.rst
-    admin/userdoc-source/conf.py.  
-    
-    ChangeLog is an optional change.
-
-1. Make sure everything works with a clean install.  
-    (Check out a clean copy and do tests) 
-    "svn checkout https://svn.code.sf.net/p/xmds/code/trunk/xpdeint xmds2"
-
-2. Change the "last known good" choices in the linux and mac installers, and check them.
-
-3. Go into the admin directory, and run "./create_release_version.sh".
-
-4. Follow that script's instructions for putting the documentation and tarball on sourceforge
-
-5. Update the mac installer file.
-
-6. Announce!
-
diff --git a/admin/svn2cl.xsl b/admin/svn2cl.xsl
deleted file mode 100644
index f4b734e..0000000
--- a/admin/svn2cl.xsl
+++ /dev/null
@@ -1,442 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
-   svn2cl.xsl - xslt stylesheet for converting svn log to a normal
-                changelog
-
-   version 0.8
-
-   Usage (replace ++ with two minus signs which aren't allowed
-   inside xml comments):
-     svn ++verbose ++xml log | \
-       xsltproc ++stringparam strip-prefix `basename $(pwd)` \
-                ++stringparam linelen 75 \
-                ++stringparam groupbyday yes \
-                ++stringparam separate-daylogs yes \
-                ++stringparam include-rev yes \
-                ++stringparam breakbeforemsg yes/2 \
-                ++stringparam reparagraph yes \
-                ++stringparam authorsfile FILE \
-                svn2cl.xsl - > ChangeLog
-
-   This file is based on several implementations of this conversion
-   that I was not completely happy with and some other common
-   xslt constructs found on the web.
-
-   Copyright (C) 2004, 2005, 2006 Arthur de Jong.
-
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   1. Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-   2. Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-   3. The name of the author may not be used to endorse or promote
-      products derived from this software without specific prior
-      written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-   IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-   IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--->
-
-<!DOCTYPE xsl:stylesheet [
- <!ENTITY tab "	">
- <!ENTITY newl "
">
- <!ENTITY space " ">
-]>
-
-<xsl:stylesheet
-  version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
- <xsl:output
-   method="text"
-   encoding="utf-8"
-   media-type="text/plain"
-   omit-xml-declaration="yes"
-   standalone="yes"
-   indent="no" />
-
- <xsl:strip-space elements="*" />
-
- <!-- the prefix of pathnames to strip -->
- <xsl:param name="strip-prefix" select="'/'" />
-
- <!-- the length of a line to wrap messages at -->
- <xsl:param name="linelen" select="75" />
- 
- <!-- whether entries should be grouped by day -->
- <xsl:param name="groupbyday" select="'no'" />
-
- <!-- whether to seperate log messages by empty lines -->
- <xsl:param name="separate-daylogs" select="'no'" />
-
- <!-- whether a revision number should be included -->
- <xsl:param name="include-rev" select="'no'" />
-
- <!-- whether the log message should start on a new line -->
- <xsl:param name="breakbeforemsg" select="'no'" />
-
- <!-- whether the message should be rewrapped within one paragraph -->
- <xsl:param name="reparagraph" select="'no'" />
-
- <!-- location of authors file if any -->
- <xsl:param name="authorsfile" select="''" />
- <xsl:key name="author-lookup" match="author" use="@uid" />
- <xsl:variable name="authors-top" select="document($authorsfile)/authors" />
-
- <!-- add newlines at the end of the changelog -->
- <xsl:template match="log">
-  <xsl:apply-templates />
-  <xsl:text>&newl;</xsl:text>
- </xsl:template>
-
- <!-- format one entry from the log -->
- <xsl:template match="logentry">
-  <xsl:choose>
-   <!-- if we're grouping we should omit some headers -->
-   <xsl:when test="$groupbyday='yes'">
-    <!-- save log entry number -->
-    <xsl:variable name="pos" select="position()" />
-    <!-- fetch previous entry's date -->
-    <xsl:variable name="prevdate">
-     <xsl:apply-templates select="../logentry[position()=(($pos)-1)]/date" />
-    </xsl:variable>
-    <!-- fetch previous entry's author -->
-    <xsl:variable name="prevauthor">
-     <xsl:value-of select="normalize-space(../logentry[position()=(($pos)-1)]/author)" />
-    </xsl:variable>
-    <!-- fetch this entry's date -->
-    <xsl:variable name="date">
-     <xsl:apply-templates select="date" />
-    </xsl:variable>
-    <!-- fetch this entry's author -->
-    <xsl:variable name="author">
-     <xsl:value-of select="normalize-space(author)" />
-    </xsl:variable>
-    <!-- check if header is changed -->
-    <xsl:if test="($prevdate!=$date) or ($prevauthor!=$author)">
-     <!-- add newline -->
-     <xsl:if test="not(position()=1)">
-      <xsl:text>&newl;</xsl:text>
-     </xsl:if>
-     <!-- date -->
-     <xsl:value-of select="$date" />
-     <!-- two spaces -->
-     <xsl:text>&space;&space;</xsl:text>
-     <!-- author's name -->
-     <xsl:apply-templates select="author" />
-     <!-- two newlines -->
-     <xsl:text>&newl;</xsl:text>
-     <xsl:if test="$separate-daylogs!='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
-    </xsl:if>
-   </xsl:when>
-   <!-- write the log header -->
-   <xsl:otherwise>
-    <!-- add newline -->
-    <xsl:if test="not(position()=1)">
-     <xsl:text>&newl;</xsl:text>
-    </xsl:if>
-    <!-- date -->
-    <xsl:apply-templates select="date" />
-    <!-- two spaces -->
-    <xsl:text>&space;&space;</xsl:text>
-    <!-- author's name -->
-    <xsl:apply-templates select="author" />
-    <!-- two newlines -->
-    <xsl:text>&newl;&newl;</xsl:text>
-   </xsl:otherwise>
-  </xsl:choose>
-  <!-- get paths string -->
-  <xsl:variable name="paths">
-   <xsl:apply-templates select="paths" />
-   <xsl:text>:&space;</xsl:text>
-  </xsl:variable>
-  <!-- get revision number -->
-  <xsl:variable name="rev">
-   <xsl:if test="$include-rev='yes'">
-    <xsl:text>[r</xsl:text>
-    <xsl:value-of select="@revision" />
-    <xsl:text>]&space;</xsl:text>
-   </xsl:if>
-  </xsl:variable>
-  <!-- trim trailing newlines -->
-  <xsl:variable name="msg">
-   <!-- add a line break before the log message -->
-   <xsl:choose>
-    <xsl:when test="$breakbeforemsg='yes'">
-     <xsl:text>&newl;</xsl:text>
-    </xsl:when>
-    <xsl:when test="number($breakbeforemsg)>0">
-     <xsl:call-template name="newlines">
-      <xsl:with-param name="count" select="number($breakbeforemsg)" />
-     </xsl:call-template>
-    </xsl:when>
-   </xsl:choose>
-   <xsl:call-template name="trim-newln">
-    <xsl:with-param name="txt" select="msg" />
-   </xsl:call-template>
-  </xsl:variable>
-  <!-- add newline here if separate-daylogs is in effect -->
-  <xsl:if test="$groupbyday='yes' and $separate-daylogs='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
-  <!-- first line is indented (other indents are done in wrap template) -->
-  <xsl:text>&tab;*&space;</xsl:text>
-  <!-- print the paths and message nicely wrapped -->
-  <xsl:call-template name="wrap">
-   <xsl:with-param name="txt" select="concat($rev,$paths,$msg)" />
-  </xsl:call-template>
- </xsl:template>
-
- <!-- format date -->
- <xsl:template match="date">
-  <xsl:variable name="date" select="normalize-space(.)" />
-  <!-- output date part -->
-  <xsl:value-of select="substring($date,1,10)" />
-  <!-- output time part -->
-  <xsl:if test="$groupbyday!='yes'">
-   <xsl:text>&space;</xsl:text>
-   <xsl:value-of select="substring($date,12,5)" />
-  </xsl:if>
- </xsl:template>
-
- <!-- format author -->
- <xsl:template match="author">
-  <xsl:variable name="uid" select="normalize-space(.)" />
-  <!-- try to lookup author in authorsfile -->
-  <xsl:choose>
-   <xsl:when test="$authorsfile!=''">
-    <xsl:for-each select="$authors-top">
-     <xsl:variable name="author" select="key('author-lookup',$uid)" />
-     <!-- present result -->
-     <xsl:choose>
-      <xsl:when test="string($author/.)">
-       <xsl:apply-templates select="$author/node()" mode="copy" />
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:value-of select="$uid" />
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:for-each>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:value-of select="$uid" />
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
- <!-- copy but normalize text -->
- <xsl:template match="text()" mode="copy">
-  <xsl:value-of select="normalize-space(.)" />
- </xsl:template>
-
- <!-- simple copy template -->
- <xsl:template match="@*|node()" mode="copy">
-  <xsl:copy>
-   <xsl:apply-templates select="@*|node()" mode="copy" />
-  </xsl:copy>
- </xsl:template>
-
- <!-- present a list of paths names -->
- <xsl:template match="paths">
-  <xsl:for-each select="path">
-   <xsl:sort select="normalize-space(.)" data-type="text" />
-   <!-- unless we are the first entry, add a comma -->
-   <xsl:if test="not(position()=1)">
-    <xsl:text>,&space;</xsl:text>
-   </xsl:if>
-   <!-- print the path name -->
-   <xsl:apply-templates select="." />
-  </xsl:for-each>
- </xsl:template>
-
- <!-- transform path to something printable -->
- <xsl:template match="path">
-  <!-- fetch the pathname -->
-  <xsl:variable name="p1" select="normalize-space(.)" />
-  <!-- strip leading slash -->
-  <xsl:variable name="p2">
-   <xsl:choose>
-    <xsl:when test="starts-with($p1,'/')">
-     <xsl:value-of select="substring($p1,2)" />
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$p1" />
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:variable>
-  <!-- strip trailing slash from strip-prefix -->
-  <xsl:variable name="sp">
-   <xsl:choose>
-    <xsl:when test="substring($strip-prefix,string-length($strip-prefix),1)='/'">
-     <xsl:value-of select="substring($strip-prefix,1,string-length($strip-prefix)-1)" />
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$strip-prefix" />
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:variable>
-  <!-- strip strip-prefix -->
-  <xsl:variable name="p3">
-   <xsl:choose>
-    <xsl:when test="starts-with($p2,$sp)">
-     <xsl:value-of select="substring($p2,1+string-length($sp))" />
-    </xsl:when>
-    <xsl:otherwise>
-     <!-- TODO: do not print strings that do not begin with strip-prefix -->
-     <xsl:value-of select="$p2" />
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:variable>
-  <!-- strip another slash -->
-  <xsl:variable name="p4">
-   <xsl:choose>
-    <xsl:when test="starts-with($p3,'/')">
-     <xsl:value-of select="substring($p3,2)" />
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$p3" />
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:variable>
-  <!-- translate empty string to dot -->
-  <xsl:choose>
-   <xsl:when test="$p4 = ''">
-    <xsl:text>.</xsl:text>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:value-of select="$p4" />
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
- <!-- string-wrapping template -->
- <xsl:template name="wrap">
-  <xsl:param name="txt" />
-  <xsl:variable name="normtxt" select="normalize-space($txt)" />
-  <xsl:choose>
-   <xsl:when test="contains($txt,'&newl;')">
-     <!-- text contains newlines, do the first line -->
-     <xsl:call-template name="wrap">
-      <xsl:with-param name="txt" select="substring-before($txt,'&newl;')" />
-     </xsl:call-template>
-     <!-- print tab -->
-     <xsl:text>&tab;&space;&space;</xsl:text>
-     <!-- wrap the rest of the text -->
-     <xsl:call-template name="wrap">
-      <xsl:with-param name="txt" select="substring-after($txt,'&newl;')" />
-     </xsl:call-template>
-   </xsl:when>
-   <xsl:when test="(string-length($normtxt) < (($linelen)-9)) or not(contains($normtxt,' '))">
-    <!-- this is easy, nothing to do -->
-    <xsl:value-of select="$normtxt" />
-    <!-- add newline -->
-    <xsl:text>&newl;</xsl:text>
-   </xsl:when>
-   <xsl:otherwise>
-    <!-- find the first line -->
-    <xsl:variable name="tmp" select="substring($normtxt,1,(($linelen)-9))" />
-    <xsl:variable name="line">
-     <xsl:choose>
-      <!-- if our attempt contains spaces wrap on that -->
-      <xsl:when test="contains($tmp,' ')">
-       <xsl:call-template name="find-line">
-        <xsl:with-param name="txt" select="$tmp" />
-       </xsl:call-template>
-      </xsl:when>
-      <!-- otherwise use the first non-space characters from the text -->
-      <xsl:otherwise>
-       <xsl:value-of select="substring-before($normtxt,' ')" />
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:variable>
-    <!-- print line -->
-    <xsl:value-of select="$line" />
-    <!-- print newline and tab -->
-    <xsl:text>&newl;&tab;&space;&space;</xsl:text>
-    <!-- wrap the rest of the text -->
-    <xsl:call-template name="wrap">
-     <xsl:with-param name="txt" select="normalize-space(substring($normtxt,string-length($line)+1))" />
-    </xsl:call-template>
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
- <!-- template to trim line to contain space as last char -->
- <xsl:template name="find-line">
-  <xsl:param name="txt" />
-  <xsl:choose>
-   <xsl:when test="substring($txt,string-length($txt),1)=' '">
-    <xsl:value-of select="substring($txt,1,string-length($txt)-1)" />
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:call-template name="find-line">
-     <xsl:with-param name="txt" select="substring($txt,1,string-length($txt)-1)" />
-    </xsl:call-template>
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
- <!-- template to trim trailing and starting newlines -->
- <xsl:template name="trim-newln">
-  <xsl:param name="txt" />
-  <xsl:choose>
-   <!-- find starting newlines -->
-   <xsl:when test="substring($txt,1,1) = '&newl;'">
-    <xsl:call-template name="trim-newln">
-     <xsl:with-param name="txt" select="substring($txt,2)" />
-    </xsl:call-template>
-   </xsl:when>
-   <!-- find trailing newlines -->
-   <xsl:when test="substring($txt,string-length($txt),1) = '&newl;'">
-    <xsl:call-template name="trim-newln">
-     <xsl:with-param name="txt" select="substring($txt,1,string-length($txt)-1)" />
-    </xsl:call-template>
-   </xsl:when>
-   <!-- if the message has paragrapgs, find the first one -->
-   <xsl:when test="$reparagraph='yes' and contains($txt,'&newl;&newl;')">
-     <!-- remove newlines from first paragraph -->
-     <xsl:value-of select="normalize-space(substring-before($txt,'&newl;&newl;'))" />
-     <!-- paragraph separator -->
-     <xsl:text>&newl;&newl;</xsl:text>
-     <!-- do the rest of the text -->
-     <xsl:call-template name="trim-newln">
-      <xsl:with-param name="txt" select="substring-after($txt,'&newl;&newl;')" />
-     </xsl:call-template>
-   </xsl:when>
-   <!-- remove more single newlines -->
-   <xsl:when test="$reparagraph='yes'">
-    <xsl:value-of select="normalize-space($txt)" />
-   </xsl:when>
-   <!-- no newlines found, we're done -->
-   <xsl:otherwise>
-    <xsl:value-of select="$txt" />
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
- <!-- insert a number of newlines -->
- <xsl:template name="newlines">
-  <xsl:param name="count" />
-  <xsl:text>&newl;</xsl:text>
-  <xsl:if test="$count>1">
-   <xsl:call-template name="newlines">
-    <xsl:with-param name="count" select="($count)-1" />
-   </xsl:call-template>
-  </xsl:if>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/admin/userdoc-source/Makefile b/admin/userdoc-source/Makefile
deleted file mode 100644
index ffe2d43..0000000
--- a/admin/userdoc-source/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         = a4
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d ../../documentation/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html      to make standalone HTML files"
-	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
-	@echo "  htmlhelp  to make HTML files and a HTML help project"
-	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  changes   to make an overview over all changed/added/deprecated items"
-	@echo "  linkcheck to check all external links for integrity"
-
-clean:
-	-rm -rf ../../documentation
-
-html:
-	mkdir -p ../../documentation ../../documentation/doctrees
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) ../../documentation
-	@echo
-	@echo "Build finished. The HTML pages are in ../../documentation."
-
-pickle:
-	mkdir -p ../../documentation/pickle ../../documentation/doctrees
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) ../../documentation/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files or run"
-	@echo "  sphinx-web ../../documentation/pickle"
-	@echo "to start the sphinx-web server."
-
-web: pickle
-
-htmlhelp:
-	mkdir -p ../../documentation ../../documentation/doctrees
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) ../../documentation
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in ../../documentation."
-
-latex:
-	mkdir -p ../../documentation/latex ../../documentation/doctrees
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) ../../documentation/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in ../../documentation/latex."
-	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
-	      "run these through (pdf)latex."
-
-changes:
-	mkdir -p ../../documentation/changes ../../documentation/doctrees
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) ../../documentation/changes
-	@echo
-	@echo "The overview file is in ../../documentation/changes."
-
-linkcheck:
-	mkdir -p ../../documentation/linkcheck ../../documentation/doctrees
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) ../../documentation/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in ../../documentation/linkcheck/output.txt."
diff --git a/admin/userdoc-source/_static/mathjax-use-tex-fonts.js b/admin/userdoc-source/_static/mathjax-use-tex-fonts.js
deleted file mode 100644
index ae31c3a..0000000
--- a/admin/userdoc-source/_static/mathjax-use-tex-fonts.js
+++ /dev/null
@@ -1,9 +0,0 @@
-MathJax.Hub.Config({
-  showProcessingMessages: false,
-  messageStyle: "none",
-  "HTML-CSS": {
-    availableFonts: ["TeX"], 
-  },
-});
-
-MathJax.Ajax.loadComplete("http://www.xmds.org/_static/mathjax-use-tex-fonts.js");
diff --git a/admin/userdoc-source/advanced_topics.rst b/admin/userdoc-source/advanced_topics.rst
deleted file mode 100644
index aaa51fb..0000000
--- a/admin/userdoc-source/advanced_topics.rst
+++ /dev/null
@@ -1,276 +0,0 @@
-.. _AdvancedTopics:
-
-Advanced Topics
-===============
-
-This section has further details on some important topics.
-
-:ref:`Importing` (importing data into XMDS2, and data formats used in the export)
-
-:ref:`Convolutions` (extra information on the Fourier transforms used in XMDS2, and applications to defining convolutions)
-
-:ref:`DimensionAliases` (dimensions which are declared to be identical, useful for correlation functions)
-
-.. _Importing:
-
-Importing data
---------------
-
-There are many cases where it is advantageous to import previously acquired data into XMDS2. For example, the differential equation you wish to solve may depend on a complicated functional form, which is more easily obtained via an analytical package such as Mathematica or Maple. Furthermore, importing data from another source can be quicker than needlessly performing calculations in XMDS2. In this tutorial, we shall consider an example of importing into XMDS2 a function generated in Mat [...]
-
-Suppose we want to import the following function into XMDS2:
-
-.. math::
-    f(x) = x^2
-
-The first step is to create an hdf5 file, from XMDS2, which specifies the dimensions of the grid for the x dimension. Create and save a new XMDS2 file. For the purposes of this tutorial we shall call it "grid_specifier.xmds" with name "grid_specifier". Within this file, enter the following "dummy" vector - which we shall call "gen_dummy" - which depends on the x dimension:
-
-.. code-block:: xpdeint
-
-    <vector type="real" name="gen_dummy" dimensions="x">
-      <components>dummy</components>
-      <initialisation>
-      <![CDATA[ 
-        dummy = x;
-          ]]>
-      </initialisation>
-    </vector>
-
-What "dummy" is is not actually important. It is only necessary that it is a function of :math:`x`. However, it is important that the domain and lattice for the :math:`x` dimension are identical to those in the XMDS2 you plan to import the function into. We output the following xsil file (in hdf5 format) by placing a breakpoint in the sequence block as follows:
-
-.. code-block:: xpdeint
-
-    <sequence>
-      <breakpoint filename="grid.xsil" format="hdf5">
-          <dependencies>
-            gen_dummy
-          </dependencies>
-      </breakpoint>
-
-In terminal, compile the file "grid_specifier.xmds" in XMDS2 and run the c code as usual. This creates two files - "grid.xsil" and "grid.h5". The file "grid.h5" contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function :math:`f(x)` which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.
-
-In order to read the "grid.h5" data into Mathematica version 6.0, type the following command into terminal:.. code-block::
-
-    xsil2graphics2 -e grid.xsil
-    
-This creates the Mathematica notebook "grid.nb". Open this notebook in Mathematica and evaluate the first set of cells. This has loaded the grid information into Mathematica. For example, suppose you have specified that the :math:`x` dimension has a lattice of 128 points and a domain of (-32, 32). Then calling "x1" in Mathematica should return the following list:
-
-.. code-block:: none
- 
-  {-32., -31.5, -31., -30.5, -30., -29.5, -29., -28.5, -28., -27.5, 
-  -27., -26.5, -26., -25.5, -25., -24.5, -24., -23.5, -23., -22.5, 
-  -22., -21.5, -21., -20.5, -20., -19.5, -19., -18.5, -18., -17.5, 
-  -17., -16.5, -16., -15.5, -15., -14.5, -14., -13.5, -13., -12.5, 
-  -12., -11.5, -11., -10.5, -10., -9.5, -9., -8.5, -8., -7.5, -7., 
-  -6.5, -6., -5.5, -5., -4.5, -4., -3.5, -3., -2.5, -2., -1.5, -1., 
-  -0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5, 
-  7., 7.5, 8., 8.5, 9., 9.5, 10., 10.5, 11., 11.5, 12., 12.5, 13., 
-  13.5, 14., 14.5, 15., 15.5, 16., 16.5, 17., 17.5, 18., 18.5, 19., 
-  19.5, 20., 20.5, 21., 21.5, 22., 22.5, 23., 23.5, 24., 24.5, 25., 
-  25.5, 26., 26.5, 27., 27.5, 28., 28.5, 29., 29.5, 30., 30.5, 31., 
-  31.5}
-
-This is, of course, the list of points which define our grid.
-
-We are now in a position to define the function :math:`f(x)` in Mathematica. Type the following command into a cell in the Mathematica notebook "grid.nb":
-
-.. code-block:: none
-
-  f[x_]:= x^2
-
-At this stage this is an abstract mathematical function as defined in Mathematica. What we need is a list of values for :math:`f(x)` corresponding to the specified grid points. We will call this list "func". This achieved by simply acting the function on the list of grid points "x1":
-
-.. code-block:: none
-
-  func := f[x1]
-
-For the example grid mentioned above, calling "func" gives the following list:
-
-.. code-block:: none
-
-  {1024., 992.25, 961., 930.25, 900., 870.25, 841., 812.25, 784.,
-  756.25, 729., 702.25, 676., 650.25, 625., 600.25, 576., 552.25, 529., 
-  506.25, 484., 462.25, 441., 420.25, 400., 380.25, 361., 342.25, 324., 
-  306.25, 289., 272.25, 256., 240.25, 225., 210.25, 196., 182.25, 169., 
-  156.25, 144., 132.25, 121., 110.25, 100., 90.25, 81., 72.25, 64., 
-  56.25, 49., 42.25, 36., 30.25, 25., 20.25, 16., 12.25, 9., 6.25, 4., 
-  2.25, 1., 0.25, 0., 0.25, 1., 2.25, 4., 6.25, 9., 12.25, 16., 20.25, 
-  25., 30.25, 36., 42.25, 49., 56.25, 64., 72.25, 81., 90.25, 100., 
-  110.25, 121., 132.25, 144., 156.25, 169., 182.25, 196., 210.25, 225., 
-  240.25, 256., 272.25, 289., 306.25, 324., 342.25, 361., 380.25, 400., 
-  420.25, 441., 462.25, 484., 506.25, 529., 552.25, 576., 600.25, 625., 
-  650.25, 676., 702.25, 729., 756.25, 784., 812.25, 841., 870.25, 900., 
-  930.25, 961., 992.25}
-  
-  
-The next step is to export the list "func" as an h5 file that XMDS2 can read. This is done by typing the following command into a Mathematica cell:
-  
-.. code-block:: none
-  
-   SetDirectory[NotebookDirectory[]];
-   Export["func.h5", {func, x1}, {"Datasets", { "function_x", "x"}}]
-   
-In the directory containing the notebook "grid.nb" you should now see the file "func.h5". This file essentially contains the list ``{func, x1}``. However, the hdf5 format stores func and x1 as separate entities called "Datasets". For importation into XMDS2 it is necessary that these datasets are named. This is precisely what the segment ``{"Datasets", { "function_x", "x"}}`` in the above Mathematica command does. The dataset corresponding to the grid x1 needs to be given the name of the  [...]
-
-The final step is to import the file "func.h5" into your primary XMDS2 file. This data will be stored as a vector called "gen_function_x", in component "function_x".
-
-.. code-block:: xpdeint
-
-  <vector type="real" name="gen_function_x" dimensions="x">
-    <components>function_x</components> 
-    <initialisation kind="hdf5">
-      <filename> function_x.h5 </filename>
-    </initialisation>
-  </vector>
-  
-You're now done. Anytime you want to use :math:`f(x)` you can simply refer to "function_x" in the vector "gen_function_x".
-
-The situation is slightly more complicated if the function you wish to import depends on more than one dimension. For example, consider
-
-.. math::
-    g(x,y) = x \sin(y)
-
-As for the single dimensional case, we need to export an hdf5 file from XMDS2 which specifies the dimensions of the grid. As in the one dimensional case, this is done by creating a dummy vector which depends on all the relevant dimensions:
-
-.. code-block:: xpdeint
-
-    <vector type="real" name="gen_dummy" dimensions="x y">
-      <components>dummy</components>
-      <initialisation>
-      <![CDATA[ 
-        dummy = x;
-          ]]>
-      </initialisation>
-    </vector>
-    
-and exporting it as shown above.
-
-After importing the grid data into Mathematica, define the multi-dimensional function which you wish to import into XMDS2:
-
-.. code-block:: none
-
-  g[x_,y_]:= x*Sin[y]
-  
-We need to create a 2x2 array of data which depends upon the imported lists x1 and y1. This can be done by using the Table function:
-
-.. code-block:: none
-
-  func := Table[g[x, p], {x, x1}, {p, p1}]
-  
-This function can be exported as an h5 file,
-
-.. code-block:: none
-  
-  SetDirectory[NotebookDirectory[]];
-  Export["func.h5", {func, x1, y1}, {"Datasets", { "function_x", "x", "y"}}]
-
-and imported into XMDS2 as outlined above.
-
-.. _Convolutions:
-
-Convolutions and Fourier transforms
------------------------------------
-
-When evaluating a numerical Fourier transform, XMDS2 doesn't behave as expected. While many simulations have ranges in their spatial coordinate (here assumed to be x) that range from some negative value :math:`x_\text{min}` to some positive value :math:`x_\text{max}`, the Fourier transform used in XMDS2 treats all spatial coordinates as starting at zero. The result of this is that a phase factor of the form :math:`e^{-i x_\text{min} k}` is applied to the Fourier space functions after all [...]
-
-The standard Fourier transform is
-
-.. math::
-
-	\mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i x k} dx
-
-The XMDS2 Fourier transform is
-
-.. math::
-	\tilde{\mathcal{F}}\left[f(x)\right](k) &= \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i (x+ x_\text{min}) k} dx \\
-	&= e^{-i x_\text{min} k} \mathcal{F}\left[f(x)\right](k)
-
-When the number of forward Fourier transforms and backwards Fourier transforms are unequal a phase factor is required. Some examples of using Fourier transforms in XMDS2 are shown below.
-
-Example 1
-^^^^^^^^^
-
-.. image:: images/FourierTransformEx1.*
-    :align: center
-
-When data is input in Fourier space and output in real space there is one backwards Fourier transform is required. Therefore the Fourier space data must be multiplied by a phase factor before the backwards Fourier transform is applied.
-
-.. math::
-
-	\mathcal{F}^{-1}[F(k)](x) = \tilde{\mathcal{F}}[e^{i x_\text{min} k} F(k)](x)
-
-Example 2
-^^^^^^^^^
-.. image:: images/FourierTransformEx2.*
-    :align: center
-    
-Functions of the form :math:`h(x) = \int f(x') g(x-x') dx'` can be evaluated using the convolution theorem:
-
-.. math::
-
-	\mathcal{F}[h(x)](k) = \mathcal{F}[f(x)](k) \times \mathcal{F}[g(x)](k)
-
-This requires two forward Fourier transforms to get the two functions f and g into Fourier space, and one backwards Fourier transform to get the resulting product back into real space. Thus in Fourier space the product needs to be multiplied by a phase factor :math:`e^{-i x_\text{min} k}`
-
-
-Example 3
-^^^^^^^^^
-.. image:: images/FourierTransformEx3.*
-    :align: center
-    
-Sometimes when the convolution theorem is used one of the forward Fourier transforms is calculated analytically and input in Fourier space. In this case only one forward numerical Fourier transform and one backward numerical Fourier transform is used. The number of forward and backward transforms are equal, so no phase factor is required.
-
-.. _LooseGeometryMatchingMode:
-
-'Loose' ``geometry_matching_mode``
-----------------------------------
-
-.. _DimensionAliases:
-
-Dimension aliases
------------------
-
-Dimension aliases specify that two or more dimensions have exactly the same ``lattice``, ``domain`` and ``transform``.  This can be useful in situations where the problem enforces this, for example when computing correlation functions or representing square matrices.  
-
-Dimension aliases are not just a short-hand for defining an additional dimension, they also permit dimensions to be accessed :ref:`non-locally <ReferencingNonlocal>`, which is essential when computing spatial correlation functions.
-
-Here is how to compute a spatial correlation function :math:`g^{(1)}(x, x') = \psi^*(x) \psi(x')` of the quantity ``psi``:
-
-.. code-block:: xpdeint
-
-  <simulation xmds-version="2">
-    
-    <!-- name, features block -->
-        
-    <geometry>
-      <propagation_dimension> t </propagation_dimension>
-      <transverse_dimensions>
-        <dimension name="x" lattice="1024" domain="(-1.0, 1.0)" aliases="xp" />
-      </transverse_dimensions>
-    </geometry>
-    
-    <vector name="wavefunction" type="complex" >
-      <components> psi </components>
-      <initialisation>
-        <!-- initialisation code -->
-      </initialisation>
-    </vector>
-    
-    <computed_vector name="correlation" dimensions="x xp" type="complex" >
-      <components> g1 </components>
-      <evaluation>
-        <dependencies> wavefunction </dependencies>
-        <![CDATA[
-          g1 = conj(psi(x => x)) * psi(x => xp);
-        ]]>
-      </evaluation>
-    </computed_vector>
-    
-    <!-- integration and sampling code -->
-    
-  </simulation>
-
-In this simulation note that the vector ``wavefunction`` defaults to only having the dimension "x" even though "xp" is also a dimension (implicitly declared through the ``aliases`` attribute).  ``vector``'s without an explicit ``dimensions`` attribute will only have the dimensions that are explicitly listed in the ``transverse_dimensions`` block, i.e. this will not include aliases.
-
-See the example ``groundstate_gaussian.xmds`` for a complete example.
-      
\ No newline at end of file
diff --git a/admin/userdoc-source/conf.py b/admin/userdoc-source/conf.py
deleted file mode 100644
index 712fb4a..0000000
--- a/admin/userdoc-source/conf.py
+++ /dev/null
@@ -1,188 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# XMDS2 documentation build configuration file, created by
-# sphinx-quickstart on Tue Nov 18 15:10:03 2008.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# The contents of this file are pickled, so don't put values in the namespace
-# that aren't pickleable (module imports are okay, they're removed automatically).
-#
-# All configuration values have a default value; values that are commented out
-# serve to show the default value.
-
-import sys, os
-
-# If your extensions are in another directory, add it here. If the directory
-# is relative to the documentation root, use os.path.abspath to make it
-# absolute, like shown here.
-#sys.path.append(os.path.abspath('some/directory'))
-
-# General configuration
-# ---------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.mathjax']
-
-if os.path.exists('_static/MathJax/MathJax.js'):
-    mathjax_path = 'MathJax/MathJax.js?config=TeX-AMS_HTML,mathjax-xmds'
-else:
-    mathjax_path = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js'
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['.templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General substitutions.
-project = u'XMDS2'
-copyright = u'2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson'
-
-# The default replacements for |version| and |release|, also used in various
-# other places throughout the built documents.
-#
-# The short X.Y version.
-version = '2.1'
-# The full version, including alpha/beta/rc tags.
-release = '2.1.4'
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
-#unused_docs = []
-
-# List of directories, relative to source directories, that shouldn't be searched
-# for source files.
-exclude_trees = []
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-# pygments_style = 'sphinx'
-pygments_style = 'friendly_plus'
-
-highlight_language='xmds2'
-
-# Options for HTML output
-# -----------------------
-
-# The style sheet to use for HTML and HTML Help pages. A file of that name
-# must exist either in Sphinx' static/ path, or in one of the custom paths
-# given in html_static_path.
-html_style = 'default.css'
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-html_logo = 'images/xmds_logo.png'
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-html_favicon = 'images/xmds_favicon.ico'
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-#html_sidebars = {'**': ['globaltoc.html', 'localtoc.html','searchbox.html']}
-html_sidebars = {'**': ['localtoc.html','searchbox.html']}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, the reST sources are included in the HTML build as _sources/<name>.
-#html_copy_source = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'xpdeintdoc'
-
-
-# Options for LaTeX output
-# ------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, document class [howto/manual]).
-latex_documents = [
-  ('documentation_toc', 'xmds2.tex', u'XMDS2 Documentation',
-   u'Graham Dennis, Joe Hope and Mattias Johnsson', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-latex_logo = 'images/xmds_logo.pdf'
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
diff --git a/admin/userdoc-source/developer.rst b/admin/userdoc-source/developer.rst
deleted file mode 100644
index 2e77a43..0000000
--- a/admin/userdoc-source/developer.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-Developer Documentation
-=======================
-
-Developers need to know more than users.  For example, they need to know about the test suite, and writing test cases.  They need to know how to perform a developer installation.  They need to know how to edit and compile this documentation.  They need a step-by-step release process.
-
-.. _TestScripts:
-
-Test scripts
-------------
-
-Every time you add a new feature and/or fix a new and exciting bug, it is a great idea to make sure that the new feature works and/or the bug stays fixed.  Fortunately, it is pleasantly easy to add a test case to the testing suite.
-
-1. Write normal XMDS script that behaves as you expect.
-2. Add a ``<testing>`` element to your script.  You can read the description of this element and its contents below, and have a look at other testcases for examples, but the basic structure is simple:.
-
-.. parsed-literal::
-
-      <:ref:`testing <TestingElement>`> 
-        <:ref:`command_line <CommandLineElement>`> <:ref:`/command_line <CommandLineElement>`>
-        <:ref:`arguments <ArgumentsElement>`>
-          <:ref:`argument <ArgumentElement>` />
-          <:ref:`argument <ArgumentElement>` />
-          ...
-        <:ref:`/arguments <ArgumentsElement>`>
-        <:ref:`input_xsil_file <InputXSILFileElement>` />
-        <:ref:`xsil_file <XSILFileElement>`>
-          <:ref:`moment_group <MomentGroupElement>` />
-          <:ref:`moment_group <MomentGroupElement>` />
-          ...
-        <:ref:`/xsil_file <XSILFileElement>`>
-      <:ref:`/testing <TestingElement>`>
-      
-3. Put into the appropriate ``testsuite/`` directory.
-4. run ``./run_tests.py`` This will automatically generate your ``_expected`` files.
-5. Commit the ``.xmds``, ``*_expected.xsil`` file and any ``*_expected*`` data files.
-  
-.. _TestingElement:
-
-Testing element
-~~~~~~~~~~~~~~~
-
-
-
-.. _CommandLineElement:
-
-command_line element
-~~~~~~~~~~~~~~~~~~~~
-
-
-.. _InputXSILFileElement:
-
-input_xsil_file element
-~~~~~~~~~~~~~~~~~~~~~~~
-
-
-.. _XSILFileElement:
-
-xsil_file element
-~~~~~~~~~~~~~~~~~
-
-
-.. _MomentGroupElement:
-
-moment_group element
-~~~~~~~~~~~~~~~~~~~~
-
-
-
-Steps to update ``XMDS`` script validator (XML schema)
-------------------------------------------------------
-
-1. Modify ``xpdeint/support/xpdeint.rnc``. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes.
-2. Run ``make`` in ``xpdeint/support/`` to update ``xpdeint/support/xpdeint.rng``. This is the file which is actually used, which is in RelaxNG format, but RelaxNG compact is easier to read and edit.
-3. Commit both ``xpdeint/support/xpdeint.rnc`` and ``xpdeint/support/xpdeint.rng``.
-
-
-Directory layout
-----------------
-
-XMDS2's code and templates
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All ``.tmpl`` files are Cheetah template files.  These are used to generate C++ code.  These templates are compiled as part of the XMDS2 build process to ``.py`` files of the same name.  Do not edit the generated ``.py`` files, always edit the ``.tmpl`` files and regenerate the corresponding ``.py`` files with ``make``.
-
-* ``xpdeint/``: 
-	* ``Features/``: Code for all ``<feature>`` elements, such as ``<globals>`` and ``<auto_vectorise>``
-		* ``Transforms/``: Code for the Fourier and matrix-based transforms (including MPI variants).
-	* ``Geometry/``: Code for describing the geometry of simulation dimensions and domains.  Includes code for ``Geometry``, ``Field`` and all ``DimensionRepresentations``.
-	* ``Operators/``: Code for all ``<operator>`` elements, including ``IP``, ``EX`` and the temporal derivative operator ``DeltaA``.
-	* ``Segments/``: Code for all elements that can appear in a ``<segments>`` tag.  This includes ``<integrate>``, ``<filter>``, and ``<breakpoint>``.
-		* ``Integrators``: Code for fixed and adaptive integration schemes, and all steppers (e.g. ``RK4``, ``RK45``, ``RK9``, etc.)
-	* ``Stochastic/``: Code for all random number generators and the random variables derived from them.
-		* ``Generators/``: Code for random number generators, includes ``dSFMT``, ``POSIX``, ``Solirte``.
-		* ``RandomVariables/``: Code for the random variables derived from the random number generators.  These are the gaussian, poissonian and uniform random variables.
-	* ``SimulationDrivers/``: Code for all ``<driver>`` elements.  In particular, this is where the location of MPI and multi-path code.
-	* ``Vectors/``: Code for all ``<vector>`` elements, and their initialisation.  This includes normal ``<vector>`` elements as well as ``<computed_vector>`` and ``<noise_vector>`` elements.
-	* ``includes/``: C++ header and sources files used by the generated simulations.
-	* ``support/``: Support files
-		* ``wscript``: ``waf`` build script for configuring and compiling generated simulations
-		* ``xpdeint.rnc``: Compact RelaxNG XML validation for XMDS scripts.  This is the source file for the XML RelaxNG file ``xpdeint.rng``
-		* ``xpdeint.rng``: RelaxNG XML validation for XMDS scripts.  To regenerate this file from ``xpdeint.rnc``, just run ``make`` in this directory.
-	* ``waf/``: Our included version of the Python configuration and build tool ``waf``.
-	* ``waf_extensions/``: ``waf`` tool for compiling Cheetah templates.
-	* ``xsil2graphics2/``: Templates for the output formats supported by ``xsil2graphics2``.
-	* ``wscript``: ``waf`` build script for XMDS2 itself.
-	* ``CodeParser.py``: Minimally parses included C++ code for handling nonlocal dimension access, IP/EX operators and IP operator validation.
-	* ``Configuration.py``: Manages configuration and building of generated simulations.
-	* ``FriendlyPlusStyle.py``: Sphinx plug-in to improve formatting of XMDS scripts in user documentation.
-	* This directory also contains code for the input script parser, code blocks, code indentation, and the root ``_ScriptElement`` class.
-
-
-Support files
-~~~~~~~~~~~~~
-
-* ``admin/``: Documentation source, Linux installer and release scripts.
-	* ``developer-doc-source/``: source for epydoc python class documentation (generated from python code).
-	* ``userdoc-source/``: source for the user documentation (results visible at www.xmds.org and xmds2.readthedocs.org).
-	* ``xpdeint.tmbundle/``: TextMate support bundle for Cheetah templates and XMDS scripts
-* ``bin/``: Executable scripts to be installed as part of XMDS2 (includes ``xmds2`` and ``xsil2graphics2``).
-* ``examples/``: Example XMDS2 input scripts demonstrating most of XMDS2's features.
-* ``testsuite/``: Testsuite of XMDS2 scripts.  Run the testsuite by executing ``./run_tests.py``
\ No newline at end of file
diff --git a/admin/userdoc-source/documentation_toc.rst b/admin/userdoc-source/documentation_toc.rst
deleted file mode 100644
index bfb1f30..0000000
--- a/admin/userdoc-source/documentation_toc.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-.. _Documentation:
-
-Welcome to the documentation for XMDS2!
-=======================================
-
-.. toctree::
-   :maxdepth: 2
-   
-   introduction
-   
-   installation
-
-   tutorial
-   
-   worked_examples
-
-   reference_index
-   
-   advanced_topics
-   
-   faq
-   
-   upgrade
-   
-   optimisation_hints
-   
-   xsil2graphics2
-
-   developer
-
-   licensing
-   
-   news
diff --git a/admin/userdoc-source/faq.rst b/admin/userdoc-source/faq.rst
deleted file mode 100644
index 5ab1d77..0000000
--- a/admin/userdoc-source/faq.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-.. _FAQ:
-
-Frequently Asked Questions
-==========================
-
-XMDS scripts look complicated! How do I start?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you're unfamiliar with XMDS2, writing a script from scratch might seem difficult. In most cases, however, the best approach is to take an existing script and modify it for your needs. At the most basic level, you can simply take a script from the /examples directory that is similar to what you want to do, change the name of the integration variable(s) and replace the line describing the differential equation to use your DE instead. That's all you need to do, and will ensure all the sy [...]
-
-You can then incrementally change things such as the number of output points, what quantities get output, number of grid points, and so on. Many XMDS2 users have never written a script from scratch, and just use their previous scripts and example scripts as a scaffold when they create a script for a new problem.
-
-
-Where can I get help?
-~~~~~~~~~~~~~~~~~~~~~
-
-The documentation on this website is currently incomplete, but it still covers a fair bit and is worth reading. Similarly, the example scripts in the /examples directory cover most of the functionality of XMDS2, so it's worth looking looking through them to see if any of them do something similar to what you're trying to do.
-
-You should also feel free to email questions to the XMDS users' mailing list at xmds-users at lists.sourceforge.net, where the developers and other users can assist you. You can join the mailing list by going to http://sourceforge.net/projects/xmds/ and clicking on "mailing lists." Also, if you look through the mailing list archives, your particular problem may already have been discussed.
-
-
-How should I cite XMDS2?
-~~~~~~~~~~~~~~~~~~~~~~~~
-If you publish work that has involved XMDS2, please cite it as: `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-
-I think I found a bug! Where should I report it?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Please report bugs to the developer mailing list at xmds-devel at lists.sourceforge.net. In your email, please include a description of the problem and attach the XMDS2 script that triggers the bug.
-
-
-How do I put time dependence into my vectors?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Standard vectors can't have time dependence (or, more accurately, depend on the ``propagation_dimension`` variable), but computed vectors can. So, for example, if you have set your ``propagation_dimension`` as "t", you can simply use the variable "t" in your computed vector and it will work. 
-
-Alternatively, you can explicitly use the ``propagation_dimension`` variable in your differential equation inside the ``<operators>`` block.  
-
-
-Can I specify the range of my domain and number of grid points at run-time?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes, you can. In your script, specify the domain and number of grid points as arguments to be passed in at run-time, use those variables in your ``<geometry>`` block rather than explicitly specifying them, and use the ``<validation kind="run-time" />`` feature. See the :ref:`Validation <Validation>` entry in the Reference section for an example.
-
-While the domain can always be specified in this way, specifying the lattice size at run-time is currently only allowed with the following transforms: 'dct', 'dst', 'dft' and 'none' (see :ref:`Transforms <Validation>` in the Reference section).
-
-Also note that for some multi-dimensional spaces using different transforms, XMDS2 will sometimes optimise the code it generates based on the relative sizes of the dimensions. If one or more of the lattices are specified at run-time it is unable to do this and will have to make guesses. In some situations this may result in slightly slower code.
-
-
-When can I use IP operators (and why should I) and when must I use EX operators?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-An :ref:`<operator><OperatorNamesElement>` that specifies named operators to be used in integration equations can have the ``kind="IP"`` or ``kind="EX"`` attribute, standing for 'interaction picture' and 'explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by allowing larger timesteps, but have two important restrictions. [...]
-
-Some explanation is in order.  The IP algorithm applies the operator separately to the rest of the evolution.  The reason this can be so effective is that the separate evolution can be performed exactly.  The solution of the equation :math:`\frac{d \psi}{dt} = L \psi` is :math:`\psi(t+\Delta t) = exp(L \Delta t) \psi(t)` for arbitrarily large timestep :math:`\Delta t`.  For a diagonal linear ``L``, the matrix exponential is straightforward.  Also, when it is constant, then the exponentia [...]
-
-Therefore, the limitations of IP operators themselves means that they can only be applied to to named components of one of the integration vectors, and not functions of those components.  Furthermore, an IP operator acting on a component must only be used in the derivative for that particular component.  Secondly, due to the implementation of IP operators in XMDS2, it is not safe to use them in comments, or in conjunction with declared variables.  It is also not safe to multiply or divid [...]
-
-
-Visual Editors
-~~~~~~~~~~~~~~
-
-In this section goes stuff about how to set up TextMate (or other editors to highlight xpdeint scripts).
diff --git a/admin/userdoc-source/images/FourierTransformEx1.pdf b/admin/userdoc-source/images/FourierTransformEx1.pdf
deleted file mode 100644
index 840f843..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx1.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/FourierTransformEx1.png b/admin/userdoc-source/images/FourierTransformEx1.png
deleted file mode 100644
index 792c790..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx1.png and /dev/null differ
diff --git a/admin/userdoc-source/images/FourierTransformEx2.pdf b/admin/userdoc-source/images/FourierTransformEx2.pdf
deleted file mode 100644
index 1c31b06..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx2.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/FourierTransformEx2.png b/admin/userdoc-source/images/FourierTransformEx2.png
deleted file mode 100644
index 970db9a..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx2.png and /dev/null differ
diff --git a/admin/userdoc-source/images/FourierTransformEx3.pdf b/admin/userdoc-source/images/FourierTransformEx3.pdf
deleted file mode 100644
index b9b49c8..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx3.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/FourierTransformEx3.png b/admin/userdoc-source/images/FourierTransformEx3.png
deleted file mode 100644
index 70ef606..0000000
Binary files a/admin/userdoc-source/images/FourierTransformEx3.png and /dev/null differ
diff --git a/admin/userdoc-source/images/fibre1024.pdf b/admin/userdoc-source/images/fibre1024.pdf
deleted file mode 100644
index c17abb1..0000000
Binary files a/admin/userdoc-source/images/fibre1024.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/fibre1024.png b/admin/userdoc-source/images/fibre1024.png
deleted file mode 100644
index b8a2b64..0000000
Binary files a/admin/userdoc-source/images/fibre1024.png and /dev/null differ
diff --git a/admin/userdoc-source/images/fibreSingle.pdf b/admin/userdoc-source/images/fibreSingle.pdf
deleted file mode 100644
index e0e689c..0000000
Binary files a/admin/userdoc-source/images/fibreSingle.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/fibreSingle.png b/admin/userdoc-source/images/fibreSingle.png
deleted file mode 100644
index 5e756ec..0000000
Binary files a/admin/userdoc-source/images/fibreSingle.png and /dev/null differ
diff --git a/admin/userdoc-source/images/groundstateU2.pdf b/admin/userdoc-source/images/groundstateU2.pdf
deleted file mode 100644
index bb4a54c..0000000
Binary files a/admin/userdoc-source/images/groundstateU2.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/groundstateU2.png b/admin/userdoc-source/images/groundstateU2.png
deleted file mode 100644
index 9a46c04..0000000
Binary files a/admin/userdoc-source/images/groundstateU2.png and /dev/null differ
diff --git a/admin/userdoc-source/images/groundstateU20.pdf b/admin/userdoc-source/images/groundstateU20.pdf
deleted file mode 100644
index c322493..0000000
Binary files a/admin/userdoc-source/images/groundstateU20.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/groundstateU20.png b/admin/userdoc-source/images/groundstateU20.png
deleted file mode 100644
index 4b6e5d2..0000000
Binary files a/admin/userdoc-source/images/groundstateU20.png and /dev/null differ
diff --git a/admin/userdoc-source/images/kubo10000.pdf b/admin/userdoc-source/images/kubo10000.pdf
deleted file mode 100644
index 6ccd468..0000000
Binary files a/admin/userdoc-source/images/kubo10000.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/kubo10000.png b/admin/userdoc-source/images/kubo10000.png
deleted file mode 100644
index 6672c34..0000000
Binary files a/admin/userdoc-source/images/kubo10000.png and /dev/null differ
diff --git a/admin/userdoc-source/images/kuboSingle.pdf b/admin/userdoc-source/images/kuboSingle.pdf
deleted file mode 100644
index 2193e21..0000000
Binary files a/admin/userdoc-source/images/kuboSingle.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/kuboSingle.png b/admin/userdoc-source/images/kuboSingle.png
deleted file mode 100644
index 8426c0c..0000000
Binary files a/admin/userdoc-source/images/kuboSingle.png and /dev/null differ
diff --git a/admin/userdoc-source/images/lorenz.pdf b/admin/userdoc-source/images/lorenz.pdf
deleted file mode 100644
index aa528d1..0000000
Binary files a/admin/userdoc-source/images/lorenz.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/lorenz.png b/admin/userdoc-source/images/lorenz.png
deleted file mode 100644
index 03083fa..0000000
Binary files a/admin/userdoc-source/images/lorenz.png and /dev/null differ
diff --git a/admin/userdoc-source/images/xmds_favicon.ico b/admin/userdoc-source/images/xmds_favicon.ico
deleted file mode 100644
index 4e53c4a..0000000
Binary files a/admin/userdoc-source/images/xmds_favicon.ico and /dev/null differ
diff --git a/admin/userdoc-source/images/xmds_favicon.png b/admin/userdoc-source/images/xmds_favicon.png
deleted file mode 100644
index f4a807e..0000000
Binary files a/admin/userdoc-source/images/xmds_favicon.png and /dev/null differ
diff --git a/admin/userdoc-source/images/xmds_logo.pdf b/admin/userdoc-source/images/xmds_logo.pdf
deleted file mode 100644
index 465ba25..0000000
Binary files a/admin/userdoc-source/images/xmds_logo.pdf and /dev/null differ
diff --git a/admin/userdoc-source/images/xmds_logo.png b/admin/userdoc-source/images/xmds_logo.png
deleted file mode 100644
index cfd7f0a..0000000
Binary files a/admin/userdoc-source/images/xmds_logo.png and /dev/null differ
diff --git a/admin/userdoc-source/index.rst b/admin/userdoc-source/index.rst
deleted file mode 100644
index 23f0b57..0000000
--- a/admin/userdoc-source/index.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. xpdeint documentation master file, created by sphinx-quickstart on Tue Nov 18 15:10:03 2008.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
-Welcome to XMDS2!
-=================
-
-This website provides the documentation for XMDS2 (an all-new version of :ref:`XMDS<XMDSHistory>`), a software package that allows the fast and easy solution of sets of ordinary, partial and stochastic differential equations, using a variety of efficient numerical algorithms.
-
-If you publish work that has involved XMDS2, please cite it as `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-Getting Started
----------------
-
-To get a flavour of what XMDS2 can do, take a look at our :ref:`Quickstart Tutorial<QuickstartTutorial>`, then take a look at our comprehensive  :ref:`documentation<Documentation>`.  Automated installers are available for Linux and Mac OS X, refer to our :ref:`installation instructions<Installation>` for details.
-
-.. include:: news.rst 
\ No newline at end of file
diff --git a/admin/userdoc-source/installation.rst b/admin/userdoc-source/installation.rst
deleted file mode 100644
index 5555cdf..0000000
--- a/admin/userdoc-source/installation.rst
+++ /dev/null
@@ -1,251 +0,0 @@
-.. _Installation:
-
-************
-Installation
-************
-
-**XMDS2** can be installed on any unix-like system including Linux, Tru64, and Mac OS X.  It requires a C++ compiler, python, and several installed packages.  Many of these packages are optional, but a good idea to obtain full functionality.  
-
-Installers
-==========
-
-The easiest way to get started is with an installer.  If we don't have an installer for your system, follow the :ref:`manual installation <ManualInstallation>` instructions.
-
-.. tabularcolumns:: |c|c|c|
-
-.. list-table::
-    :widths: 15, 5, 5
-    :header-rows: 0
-
-    * - Linux (Ubuntu/Debian/Fedora/RedHat)
-
-      - `Download Linux Installer <http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh>`_
-
-      - :ref:`Learn more <linux_installation>`
-
-    * - OS X 10.6/10.7
-
-      - `Download OS X Installer <http://sourceforge.net/projects/xmds/files>`_
-
-      - :ref:`Learn more <mac_installation>`
-        
-    * - Other systems
-
-      - :ref:`Install from source <ManualInstallation>`
-      
-      -
-
-If you have one of the supported operating systems listed above, but you find the installer doesn't work for you, please let us know by emailing xmds-devel <at> lists.sourceforge.net. If you'd like to tweak the linux installer to work on a distribution we haven't tested, we'd love you to do that and let us know!
-
-.. _linux_installation:
-
-Linux installer instructions
-============================
-
-The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh
-
-Once you have downloaded it, make the installer executable and run it by typing the following into a terminal::
-
-  chmod u+x linux_installer.sh
-  ./linux_installer.sh
-
-Alternatively, if you wish to download and run the installer in a single step, you can use the following command::
-
-  /bin/bash -c "$(wget -qO - http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh)"
-
-The linux installer installs all XMDS2 dependencies from your native package manager where possible (``apt-get`` for Ubuntu/Debian, ``yum`` for Fedora/Red Hat) but will download and compile the source code for libraries not available through the package manager. This means you'll need to be connected to the internet when running the installer. The installer should not be run with administrative privileges; it will ask you to enter your admin password at the appropriate point. 
-
-For instructions on how to install XMDS2 on systems where you lack administrative rights, see :ref:`ManualInstallation`.
-
-By default, this installer will install a known stable version of XMDS, which can be updated at any time by navigating to the XMDS directory and typing 'make update'. To install the latest developer version at the beginning, simply run the installer with the ``--develop`` option.
-
-Once XMDS2 has been installed, you can run it from the terminal by typing ``xmds2``. See the :ref:`QuickStartTutorial` for next steps.
-
-
-.. _mac_installation:
-
-Mac OS X Installation
-=====================
-
-Download
---------
-
-Mac OS X 10.6 (Snow Leopard) or later XMDS 2 installer: http://sourceforge.net/projects/xmds/files/
-
-
-
-Using the Mac OS X Installer
-----------------------------
-
-A self-contained installer for Mac OS X 10.6 (Snow Leopard) and later is available from the link above. This installer is only compatible with Intel Macs.  This means that the older PowerPC architecture is *not supported*.  Xcode (Apple's developer tools) is required to use this installer. Xcode is available for free from the Mac App Store for 10.7 or later, and is available on the install disk of earlier Macs as an optional install.  For users of earlier operating systems (10.6.8 or ear [...]
-
-Once you have downloaded the XMDS installer, installation is as simple as dragging it to your Applications folder or any other location.  Click the XMDS application to launch it, and press the "Launch XMDS Terminal" button to open a Terminal window customised to work with XMDS.  The first time you do this, the application will complete the installation process.  This process can take a few minutes, but is only performed once.
-
-The terminal window launched by the XMDS application has environment variables set for using this installation of XMDS.  You can run XMDS in this terminal by typing ``xmds2``.  See the :ref:`QuickStartTutorial` for next steps.
-
-To uninstall XMDS, drag the XMDS application to the trash. XMDS places some files in the directory ``~/Library/XMDS``. Remove this directory to completely remove XMDS from your system.
-
-This package includes binaries for `OpenMPI <http://www.open-mpi.org>`_, `FFTW <http://www.fftw.org>`_, `HDF5 <http://www.hdfgroup.org/HDF5>`_ and `GSL <http://www.gnu.org/software/gsl>`_. These binaries are self-contained and do not overwrite any existing installations.
-
-.. _ManualInstallation:
-
-Manual installation from source
-===============================
-
-This installation guide will take you through a typical full install step by step. A large part of this procedure is obtaining and installing other libraries that XMDS2 requires, before installing XMDS2 itself. 
-
-While the instructions below detail these packages individually, if you have administrative privileges (or can request packages from your administrator) and if you are using an Ubuntu, Debian, Fedora or Red Hat linux distribution, you can install all required and optional dependencies (but not XMDS2 itself) via
-
-Ubuntu / Debian::
-
-  sudo apt-get install build-essential subversion libopenmpi-dev openmpi-bin python-dev python-setuptools python-cheetah python-numpy python-pyparsing python-lxml python-mpmath libhdf5-serial-dev libgsl0-dev python-sphinx python-h5py libatlas-base-dev
-
-Fedora / Red Hat::
-
-  sudo yum install gcc gcc-c++ make automake subversion openmpi-devel python-devel python-setuptools python-cheetah numpy gsl-devel python-sphinx libxml2-devel libxslt-devel atlas-devel hdf5-devel pyparsing pyparsing python-lxml python-mpmath h5py
-
-You will still have to download and build FFTW 3.3 from source (see below) since prebuilt packages with MPI and AVX support are not currently available in the repositories.
-
-Also note that this guide adds extra notes for users wishing to install XMDS2 using the SVN repository.  This requires a few extra steps, but allows you to edit your copy, and/or update your copy very efficiently (with all the usual advantages and disadvantages of using unreleased material).
-
-0. You will need a copy of XMDS2.  
-    The current release can be found at `Sourceforge <http://sourceforge.net/projects/xmds/>`_, and downloaded as a single file.
-    Download this file, and expand it in a directory where you want to keep the program files.
-    
-    * Developer-only instructions: You can instead check out a working copy of the source using SVN. 
-      In a directory where you want to check out the repository, run:
-      ``svn checkout https://svn.code.sf.net/p/xmds/code/trunk/xpdeint .``
-
-      (Only do this once.  To update your copy, type ``svn up`` or ``make update`` in the same directory, and then repeat any developer-only instructions below).
-    
-#. You will need a working C++ compiler.  
-    For Mac OS X, this means that the developer tools (XCode) should be installed.
-    One common free compiler is `gcc <http://gcc.gnu.org/>`_.  It can be downloaded using your favourite package manager.
-    XMDS2 can also use Intel's C++ compiler if you have it. 
-    Intel's compiler typically generates faster code than gcc, but it isn't free.
-
-#. You will need a `python distribution <http://www.python.org/>`_.  
-
-   * Mac OS X: It is pre-installed on Mac OS X 10.5 or later.
-   * Linux: It should be pre-installed. If not, install using your favourite package manager.
-   
-    We require python 2.4 or greater. XMDS2 does not support Python 3.
-   
-
-#. Install setuptools.
-    If you have root (sudo) access, the easy way to install this is by executing
-    ez_setup.py from the repository. Simply type ``sudo python ez_setup.py``
-
-       If you want to install into your home directory without root access, this is more complex:
-       
-       a) First create the path ~/lib/python2.5/site-packages (assuming you installed python version 2.5) and ~/bin
-          Add "export PYTHONPATH=~/lib/python2.5/site-packages:$PYTHONPATH" and "export PATH=~/bin:$PATH" (if necessary)
-          to your .bashrc file (and run ". ~/.bashrc")
-       
-       b) If necessary install setuptools, by executing ez_setup.py from the repository.
-          ``python ez_setup.py --prefix=~``
-          
-    If you use Mac OS X 10.5 or later, or installed the Enthought Python Distribution on Windows, then setuptools is already installed.
-    Though if the next step fails, you may need to upgrade setuptools.  To do that, type ``sudo easy_install -U setuptools``
-
-#. Install HDF5 and FFTW3 (and optionally MPI).
-    .. _hdf5_Installation:
-    
-    #. **HDF5** is a library for reading and writing the `Hierarchical Data Format <http://www.hdfgroup.org/HDF5/>`_.
-         This is a standardised data format which it is suggested that people use in preference to the older 'binary' output (which is 
-         compatible with xmds-1). The advantage of HDF5 is that this data format is understood by a variety of other tools. xsil2graphics2
-         provides support for loading data created in this format into Mathematica and Matlab.
-         
-         XMDS2 only requires the single process version of HDF5, so there is no need to install the MPI version.
-       
-         \* Sidebar: Installing HDF5 from source follows a common pattern, which you may find yourself repeating later:  
-         
-            #. After extracting the source directory, type ``configure`` and then add possible options.
-            
-                (For HDF5, install with the ``--prefix=/usr/local/`` option if you want XMDS2 to find the library automatically.  This is rarely needed for other packages.)
-                
-            #. Once that is finished, type ``make``.  Then wait for that to finish, which will often be longer than you think.
-            
-            #. Finally, type ``sudo make install`` to install it into the appropriate directory.
-        
-    #. **FFTW** is the library XMDS2 uses for Fourier transforms. 
-         This is the transform most people will use in their simulations. If you need
-         support for MPI distributed simulations, you must configure FFTW to use MPI.
-  
-         FFTW is available for free at the `FFTW website <http://www.fftw.org/>`_.
-         To configure and compile it, follow the steps described in the HDF5 sidebar above.  
-         You may wish to add the ``--enable-mpi --disable-fortran`` options to the ``configure`` command.
-
-    #. **MPI** is an API for doing parallel processing.
-         XMDS2 can use MPI to parallelise simulations on multi-processor/multi-core computers, or clusters of computers.
-         Many supercomputing systems come with MPI libraries pre-installed.
-         The `Open MPI <http://www.open-mpi.org/>`_ project has free distributions of this library available.
-		 
-	 If you intend to take advantage of XMDS2's multi-processing features, you must install MPI, and configure FFTW3 to use it.
-
-
-
-#. There are a range of optional installs.  We recommend that you install them all if possible:
-
-    #. A Matrix library like `ATLAS <http://math-atlas.sourceforge.net/>`_, Intel's `MKL <http://software.intel.com/en-us/intel-mkl/>`_ or the `GNU Scientific library (GSL) <http://www.gnu.org/software/gsl/>`_ 
-         These libraries allow efficient implementation of transform spaces other than Fourier space.
-         Mac OS X comes with its own (fast) matrix library.
-    
-    #. **numpy** is a tool that XMDS2 uses for automated testing.
-         It can be installed with ``sudo easy_install numpy``. 
-         
-         Mac OS X 10.5 and later come with numpy.
-         
-    #. **lxml** is used to validate the syntax of scripts passed to XMDS2. 
-         If you have root access, this can be installed with the command ``sudo easy_install lxml``
-
-         You will need to have 'libxml2' and 'libxslt' installed (via your choice of package manager) to install lxml.  
-         Sufficient versions are preinstalled on Mac OS X 10.6.
-
-         If you don't have root access or want to install into your home directory, use:
-            ``easy_install --prefix=~ lxml``
-
-    #. **h5py** is needed for checking the results of XMDS2 tests that generate HDF5 output.
-           h5py requires numpy version 1.0.3 or later. 
-           
-           Upgrading `h5py <http://h5py.alfven.org/>`_ on Mac OS X is best done with the source of the package, as the easy_install option can get confused with multiple numpy versions.
-           (Mac OS X Snow Leopard comes with version 1.2.1). 
-           After downloading the source, execute ``python ./setup.py build`` in the source directory, and then ``python ./setup.py install`` to install it.  
-
-#. Install XMDS2 into your python path by running (in the xmds-2.1.4/ directory):
-    ``sudo ./setup.py develop``
-
-    If you want to install it into your home directory, type ``./setup.py develop --prefix=~``
-    
-    This step requires access to the net, as it downloads any dependent packages.  If you are behind a firewall, you may need to set your HTTP_PROXY environment variable in order to do this.
-
-    * Developer only instructions: 
-        The Cheetah templates (\*.tmpl) must be compiled into python.
-        To do this, run ``make`` in the xmds-2.1.4/ directory.
-
-    * Developer-only instructions: 
-        If you have 'numpy' installed, test XMDS2 by typing ``./run_tests.py`` in the xmds-2.1.4/ directory.
-        The package 'numpy' is one of the optional packages, with installation instructions below.
-       
-    * Developer-only instructions: 
-        To build the user documentation, you first need to install sphinx, either via your package manager or:
-        ``sudo easy_install Sphinx``
-
-        Then, to build the documentation, in the xmds-2.1.4/admin/userdoc-source/ directory run: ``make html``
-
-        If this results in an error, you may need to run ``sudo ./setup.py develop``
-
-        The generated html documentation will then be found at xmds-2.1.4/documentation/index.html
-		
-#. Configure XMDS2 by typing ``xmds2 --reconfigure``.  If XMDS2 is unable to find a library, you can tell XMDS2 where these libraries are located by adding ``include`` and ``lib`` search paths using the ``--include-path`` and ``--lib-path`` options.  For example, if FFTW3 is installed in ``/apps/fftw3`` with headers in ``/apps/fftw3/include/`` and the libraries in ``/apps/fftw3/lib``, (re)configure XMDS2 by typing:
-
-	* ``xmds2 --reconfigure --include-path /apps/fftw3/include --lib-path /apps/fftw3/lib``.
-	
-	If you need to use additional compiler or link flags for XMDS2 to use certain libraries, set the ``CXXFLAGS`` or ``LINKFLAGS`` environment variables before calling ``xmds2 --reconfigure``.  For example, to pass the compiler flag ``-pedantic`` and the link flag ``-lm``, use:
-	
-	* ``CXXFLAGS="-pedantic" LINKFLAGS="-lm" xmds2 --reconfigure``.
-
-**Congratulations!** You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the "xmds-2.1.4/examples" directory, and follow the worked examples in the :ref:`QuickStartTutorial` and :ref:`WorkedExamples`.
-
-
-
diff --git a/admin/userdoc-source/introduction.rst b/admin/userdoc-source/introduction.rst
deleted file mode 100644
index d1a3169..0000000
--- a/admin/userdoc-source/introduction.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-Introduction
-============
-
-Welcome to **XMDS2** (codenamed `xpdeint`), which is an all-new version of :ref:`XMDS<XMDSHistory>`.  Prepare for fast, easily-extended simulations with minimal code error.
-
-**Description:**   The purpose of XMDS2 is to simplify the process of creating simulations that solve systems of initial-value first-order partial and ordinary differential equations. Instead of going through the error-prone process of writing by hand thousands of lines of code, XMDS2 enables many problems to be described in a simple XML format. From this XML description XMDS2 writes a C++ simulation that solves the problem using fast algorithms. Anecdotally, the code generated by XMDS2  [...]
-
-XMDS2 can be used to simulate almost any set of (coupled) (partial) (stochastic) differential equations in any number of dimensions.  It can input and output data in a range of data formats, produce programs that can take command-line arguments, and produce parallelised code suitable for either modern computer architectures or distributed clusters.
-
-If this is your first time with XMDS, then an ideal place to start is the :ref:`QuickStartTutorial`, where we will show you how to write a basic simulation.  :ref:`Installation` instructions should get you up and running and able to start playing with the large library of examples provided. The impatient will probably have good luck browsing the examples library included with the source, and the :ref:`WorkedExamples` in this documentation for something that looks like their intended simulation.
-
-If you are upgrading from **XMDS version 1.x**, then after following the installation instructions (:ref:`Installation`), you might want to have a quick read of the note for upgraders (:ref:`UpgradeFromXMDS1`).  The syntax of the XML scripts has changed, but hopefully you will find the new scripts very intuitive.
-
-Detailed advice on input/output issues, and ways to code more complicated simulations can be found in :ref:`AdvancedTopics`.
-
-XMDS2 should be cited as `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-.. _XMDSHistory:
-
-**History:**   **XMDS** was created in 1997 by Peter Drummond and Greg Collecutt, who conceived of the idea of using an XML-based code generator to simplify the process of integrating systems of equations with arbitrary dimension [#f1]_.  The first version was written in C, and featured a very flexible, strongly convergent stochastic algorithm: the :ref:`semi-implicit algorithm<SI>` [#f2]_.  Released under a public licence, it began to receive attention across several research groups.  O [...]
-    
-In 2003, the increased scope of the package prompted a complete rewrite by Greg Collecutt (using C++), which lead to **XMDS 1.0**.  It was placed on sourceforge, and over a dozen developers contributed from 2003-2007 to help XMDS address a wider range of problems with a range of modern algorithms and support for parallel supercomputing.  The documentation and installation method was improved enabling the software to be used in a wider context, and XMDS gained many users from across the w [...]
-    
-In 2008 a second complete rewrite was undertaken, largely by Graham Dennis (using Cheetah templates in python), leading to the current version **XMDS2**.  This restructuring of the internal treatment of XML elements and the generated code allowed a new range of extensions to be explored.  These included possibilities such as integrating multiple fields with different dimensionality, a more general set of differential equations that can be solved efficiently, and multiple choices of trans [...]
-
-
-.. rubric:: Footnotes
-
-.. [#f1] G.R.Collecutt and P.D.Drummond, `Xmds: eXtensible multi-dimensional simulator`, Comput. Phys. Commun. **142**, 219 (2001).
-
-.. [#f2] M.J.Werner and P.D.Drummond, `Robust algorithms for solving stochastic partial differential equations`, J. Comput. Phys. **132**, 312 (1997).
\ No newline at end of file
diff --git a/admin/userdoc-source/licensing.rst b/admin/userdoc-source/licensing.rst
deleted file mode 100644
index 5eae5ee..0000000
--- a/admin/userdoc-source/licensing.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. _Licensing:
-
-Licensing
-=========
-
-XMDS2 is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install. You can also find it here: http://www.gnu.org/licenses/
-
-We encourage people to submit patches to us that extend XMDS2's functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license.
-
-
diff --git a/admin/userdoc-source/news.rst b/admin/userdoc-source/news.rst
deleted file mode 100644
index 78d9e78..0000000
--- a/admin/userdoc-source/news.rst
+++ /dev/null
@@ -1,100 +0,0 @@
-.. _News:
-
-News
------
-
-XMDS 2.1.4 "Well if this isn't nice, I don't know what is" (September 27, 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.4 update contains many new improvements and bugfixes:
-
-* *xsil2graphics2* now supports all output formats for MATLAB, Octave and Python.  The scripts generated for MATLAB/Octave are compatible with both.
-* Fix a bug when :ref:`nonlocally<ReferencingNonlocal>` referencing a :ref:`dimension alias<DimensionAliases>` with subsampling in *sampling_group* blocks or in some situations when MPI is used.  This bug caused incorrect elements of the vector to be accessed.
-* Correct the Fourier basis for dimensions using Hermite-Gauss transforms.  Previously 'kx' was effectively behaving as '-kx'.
-* Improve the performance of 'nx' <--> 'kx' Hermite-Gauss transforms.
-* Stochastic error checking with runtime noise generation now works correctly.  Previously different random numbers were generated for the full-step paths and the half-step paths.
-* Documentation updates.
-
-XMDS 2.1.3 "Happy Mollusc" (June 7, 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.3 update is a bugfix release that includes the following improvements:
-
-* XMDS will work when MPI isn't installed (but only for single-process simulations).
-* Support for GCC 4.8
-* The number of paths used by the multi-path driver can now be specified at run-time (using *<validation kind="run-time">*)
-* Other bug fixes
-
-XMDS 2.1.2 "Happy Mollusc" (October 15, 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.2 update has many improvements:
-
-* Named filters.  You can now specify a name for a filter block and call it like a function if you need to execute it conditionally.  See the documentation for the *<filter>* block for more information.
-* New *chunked_output* feature.  XMDS can now output simulation results as it goes, reducing the memory requirement for simulations that generate significant amounts of output.  See the documentation for more details.
-* Improved OpenMP support
-* The EX operator is now faster in the common case (but you should still prefer IP when possible)
-* If seeds are not provided for a *noise_vector*, they are now generated at simulation run-time, so different executions will give different results.  The generated noises can still be found in the output .xsil files enabling results to be reproduced if desired.
-* Advanced feature: Dimensions can be accessed non-locally with the index of the lattice point.  This removes the need in hacks to manually access XMDS's underlying C arrays.  This is an advanced feature and requires a little knowledge of XMDS's internal grid representation.  See the advanced topics documentation for further details.
-* Fixed adaptive integrator order when noises were used in vector initialisation
-* Fix the Spherical Bessel basis.  There were errors in the definition of this basis which made it previously unreliable.
-* Other bug fixes
-
-XMDS 2.1 "Happy Mollusc" (June 14, 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-XMDS 2.1 is a significant upgrade with many improvements and bug fixes since 2.0. We also now have installers for Linux and Mac OS X, so you no longer have to build XMDS from source! See :ref:`here<Installation>` for details about the installers.
-
-Existing users should note that this release introduces a more concise syntax for moment groups.  You can now use::
-
-    <sampling_group initial_sample="yes" basis="x y z">
-        ...
-    </sampling_group>
-
-Instead of::
-
-    <group>
-        <sampling initial_sample="yes" basis="x y z">
-            ...
-        </sampling>
-    </group>
-
-Another syntax change is that the initial basis of a vector should be specified with *initial_basis* instead of *initial_space*.
-
-In both cases, although the old syntax is not described in the documentation, it is still supported, so existing scripts will work without any changes.
-
-
-Other changes in XMDS 2.1 include:
-
-* The *lattice* attribute for dimensions can now be specified at run-time.  Previously only the minimum and maximum values of the domain could be specified at run-time.  See :ref:`here<Validation>` for details.
-* *noise_vectors* can now be used in non-uniform dimensions (e.g. dimensions using the Bessel transform for cylindrical symmetry).
-* "loose" *geometry_matching_mode* for HDF5 vector initialisation.  This enables extending the simulation grid from one simulation to the next, or coarsening or refining a grid when importing.
-* *vectors* can now be initialised by integrating over dimensions of other vectors.  *computed_vectors* always supported this, now *vectors* do too.
-* Update to latest version of waf, which is used for compiling simulations and detecting FFTW, HDF5, etc. This should lead to fewer waf-related problems.
-* Bug fixes.
-
-
-XMDS 2.0 "Shiny!" (September 13, 2010)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-XMDS 2.0 is a major upgrade which has been rewritten from the ground up to make it easier for us to apply new features. And there are many. XMDS 2.0 is faster and far more versatile than previous versions, allowing the efficient integration of almost any initial value problem on regular domains.
-
-The feature list includes:
-
-* Quantities of different dimensionalities. So you can have a 1D potential and a 3D wavefunction.
-* Integrate more than one vector (in more than one geometry), so you can now simultaneously integrate a PDE and a coupled ODE (or coupled PDEs of different dimensions).
-* Non-Fourier transformations including the Bessel basis, Spherical Bessel basis and the Hermite-Gauss (harmonic oscillator) basis.
-* The ability to have more than one kind of noise (gaussian, poissonian, etc) in a simulation.
-* Integer-valued dimensions with non-local access. You can have an array of variables and access different elements of that array.
-* Significantly better error reporting. When errors are found when compiling the script they will almost always be reported with the corresponding line of your script, instead of the generated source.
-* *IP*/*EX* operators are separate from the integration algorithm, so you can have both *IP* and *EX* operators in a single integrate block. Also, *EX* operators can act on arbitrary code, not just vector components. (e.g. *L[phi*phi]*).
-* Cross propagation in the increasing direction of a given dimension or in the decreasing dimension. And you can have more than one cross-propagator in a given integrator (going in different directions or dimensions).
-* Faster Gaussian noises.
-* The ability to calculate spatial correlation functions.
-* OpenMP support.
-* MPI support.
-* Output moment groups use less memory when there isn't a *post_processing* element.
-* Generated source is indented correctly.
-* An *xmds1*-like script file format.
-* *xmds1*-like generated source.
-* All of the integrators from *xmds1* (*SI*, *RK4*, *ARK45*, *RK9*, *ARK89*).
diff --git a/admin/userdoc-source/optimisation_hints.rst b/admin/userdoc-source/optimisation_hints.rst
deleted file mode 100644
index 912214d..0000000
--- a/admin/userdoc-source/optimisation_hints.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-Optimisation Hints
-===================
-
-There are a variety of things you can do to make your simulations run faster.
-
-Geometry and transform-based tricks
------------------------------------
-
-Simpler simulation geometries
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Consider symmetry, can you use ``dct`` transforms or ``bessel`` transforms? Do you really need that many points? How big does your grid need to be? Could absorbing boundary conditions help?
-
-Tricks for Bessel and Hermite-Gauss transforms
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Dimensions using matrix transforms should be first for performance reasons.  Unless you're using MPI, in which case XMDS can work it out for the first two dimensions.  Ideally, XMDS would sort it out in all cases, but it's not that smart yet.
-
-Reduce code complexity
-----------------------
-Avoid transcendental functions like :math:`\sin(x)` or :math:`\exp(x)` in inner loops. Not all operations are made equal, use multiplication over division.
-
-Use the Interaction Picture (IP) operator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Just do it. Only use the EX operator when you have to. If you must use the EX operator, consider making it ``constant="no"``. It uses less memory.
-When you use the IP operator, make sure you know what it's doing.  Do not pre- or post-multiply that term in your equations.
-
-When using the IP operator, check if your operator is purely real or purely imaginary.  If real, (e.g. ``L = -0.5*kx * kx;``), then add the attribute ``type="real"`` to the ``<operator kind="ip">`` tag.  If purely imaginary, use ``type="imaginary"``.  This optimisation saves performing the part of the complex exponential that is unnecessary.
-
-Consider writing the evolution in spectral basis
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Evolution equations do not need to be written in the position basis.  If your equations are diagonal in the spectral basis, then it makes more sense to compute the time derivative terms in that basis.  For example, if you have the system
-
-.. math::
-    \frac{d\psi_1(x)}{dt} &= i \frac{\hbar}{2M} \frac{d^2\psi_1(x)}{dx^2} - i \Omega \psi_2(x)\\
-    \frac{d\psi_2(x)}{dt} &= i \frac{\hbar}{2M} \frac{d^2\psi_2(x)}{dx^2} - i \Omega \psi_1(x)
-
-then this is diagonal in the Fourier basis where it takes the form
-
-.. math::
-    \frac{d\psi_1(k_x)}{dt} &= -i \frac{\hbar k_x^2}{2M} \psi_1(k_x) - i \Omega \psi_2(k_x)\\
-    \frac{d\psi_2(k_x)}{dt} &= -i \frac{\hbar k_x^2}{2M} \psi_2(k_x) - i \Omega \psi_1(k_x)
-
-
-The first term in each evolution equation can be solved exactly with an IP operator, and the second term is diagonal in Fourier space.  This can be written in XMDS as:
-
-.. code-block:: xpdeint
-
-    <operators>
-      <integration_vectors basis="kx">wavefunction</integration_vectors>
-      <operator kind="ip" type="imaginary" >
-        <operator_names>Lxx</operator_names>
-        <![CDATA[
-          Lxx = -i*0.5*hbar_M*(kx*kx);
-        ]]>
-      </operator>
-      <![CDATA[
-
-        dpsi0_dt = Lxx[psi0] - i*Omega*psi1;
-        dpsi1_dt = Lxx[psi1] - i*Omega*psi0;
-          
-      ]]>
-    </operators>
-
-Although the ``dpsi0_dt`` code reads the same in position and Fourier space, it is the ``basis=kx`` attribute on ``<integration_vectors>`` that causes the evolution code to be executed in Fourier space.  
-
-A final optimisation is to cause the integration code itself to operate in Fourier space.  By default, all time stepping (i.e. :math:`f(t + \Delta t) = f(t) + f'(t) \Delta t` for forward-Euler integration) occurs in the position space.  As the derivative terms can be computed in Fourier space, it is faster to also to the time stepping in Fourier space too.  This then means that no Fourier transforms will be needed at all during this integrate block (except as needed by sampling).  To cau [...]
-
-The fully optimised code then reads:
-
-.. code-block:: xpdeint
-
-    <integrate algorithm="ARK45" interval="1" tolerance="1e-6" home_space="k">
-      <samples> 10 </samples>
-      <operators>
-        <integration_vectors basis="kx">wavefunction</integration_vectors>
-        <operator kind="ip" type="imaginary" >
-          <operator_names>Lxx</operator_names>
-          <![CDATA[
-            Lxx = -i*0.5*hbar_M*(kx*kx);
-          ]]>
-        </operator>
-        <![CDATA[
-
-          dpsi0_dt = Lxx[psi0] - i*Omega*psi1;
-          dpsi1_dt = Lxx[psi1] - i*Omega*psi0;
-          
-        ]]>
-      </operators>
-    </integrate>
-
-This code will not use any Fourier transforms during an ordinary time-stepping, and will be much faster than if the code were written without the ``home_space`` and ``basis`` attributes.
-
-Don't recalculate things you don't have to
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Use ``computed_vectors`` appropriately.
-
-
-Compiler and library tricks
----------------------------
-
-Faster compiler
-^^^^^^^^^^^^^^^
-If you're using an Intel CPU, then you should consider using their compiler, icc. They made the silicon, and they also made a compiler that understands how their chips work significantly better than the more-portable GCC.
-
-Faster libraries
-^^^^^^^^^^^^^^^^
-Intel MKL is faster than ATLAS, which is faster than GSL CBLAS. If you have a Mac, then Apple's vecLib is plenty fast.
-
-Auto-vectorisation
-^^^^^^^^^^^^^^^^^^
-Auto-vectorisation is a compiler feature that makes compilers generate more efficient code that can execute the same operation on multiple pieces of data simultaneously. To use this feature, you need to add the following to the ``<features>`` block at the start of your simulation:
-
-.. code-block:: xpdeint
-    
-    <auto_vectorise />
-
-This will make xpdeint generate code that is more friendly to compiler's auto-vectorisation features so that more code can be vectorised. It will also add the appropriate compiler options to turn on your compiler's auto-vectorisation features. For auto-vectorisation to increase the speed of your simulations, you will need a compiler that supports it such as gcc 4.2 or later, or Intel's C compiler, ``icc``.
-
-OpenMP
-^^^^^^
-`OpenMP <http://openmp.org>`_ is a set of compiler directives to make it easier to use threads (different execution contexts) in programs. Using threads in your simulation does occur some overhead, so for the speedup to outweigh the overhead, you must have a reasonably large simulation grid. To add these compiler directives to the generated simulations, add the tag ``<openmp />`` in the ``<features>`` block. This can be used in combination with the auto-vectorisation feature above. Note  [...]
-
-If you are using the OpenMP feature and are using `FFTW <http://www.fftw.org>`_-based transforms (Discrete Fourier/Cosine/Sine Transforms), you should consider using threads with your FFT's by adding the following to the ``<features>`` block at the start of your simulation:
-
-.. code-block:: xpdeint
-    
-    <fftw threads="2" />
-
-Replace the number of threads in the above code by the number of threads that you want to use.
-
-Parallelisation with MPI
-^^^^^^^^^^^^^^^^^^^^^^^^
-Some simulations are so large or take so much time that it is not reasonable to run them on a single CPU on a single machine. Fortunately, the `Message Passing Interface <http://www.mpi-forum.org/>`_ was developed to enable different computers working on the same program to exchange data. You will need a MPI package installed to be abel to use this feature with your simulations. One popular implementation of MPI is `OpenMPI <http://www.open-mpi.org>`_.
-
-
-Atom-optics-specific hints
---------------------------
-
-Separate out imaginary-time calculation code
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When doing simulations that require the calculation of the groundstate (typically via the imaginary time algorithm), typically the groundstate itself does not need to be changed frequently as it is usually the dynamics of the simulation that have the interesting physics. In this case, you can save having to re-calculate groundstate every time by having one script (call it ``groundstate.xmds``) that saves the calculated groundstate to a file using a breakpoint, and a second simulation tha [...]
-
-The file format used in this example is `HDF5 <http://www.hdfgroup.org/HDF5/>`_, and you will need the HDF5 libraries installed to use this example. The alternative is to use the deprecated ``binary`` format, however to load ``binary`` format data ``xmds``, the predecessor to ``xpdeint`` must be installed. Anyone who has done this before will tell you that installing it isn't a pleasant experience, and so HDF5 is the recommended file format.
-
-If your wavefunction vector is called ``'wavefunction'``, then to save the groundstate to the file ``groundstate_break.h5`` in the HDF5 format, put the following code immediately after the integrate block that calculates your groundstate:
-
-.. code-block:: xpdeint
-
-    <breakpoint filename="groundstate_break" format="hdf5">
-      <dependencies>wavefunction</dependencies>
-    </breakpoint>
-
-In addition to the ``groundstate_break.h5`` file, an XSIL wrapper ``groundstate_break.xsil`` will also be created for use with :ref:`xsil2graphics2`.
-
-To load this groundstate into your evolution script, the declaration of your ``'wavefunction'`` vector in your evolution script should look something like
-
-.. code-block:: xpdeint
-
-    <vector name="wavefunction">
-      <components>phi1 phi2</components>
-      <initialisation kind="hdf5">
-        <filename>groundstate_break.h5</filename>
-      </initialisation>
-    </vector>
-
-Note that the groundstate-finder doesn't need to have all of the components that the evolution script needs. For example, if you are considering the evolution of a two-component BEC where only one component has a population in the groundstate, then your groundstate script can contain only the ``phi1`` component, while your evolution script can contain both the ``phi1`` component and the ``phi2`` component. Note that the geometry of the script generating the groundstate and the evolution  [...]
-
-Use an energy or momentum offset
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This is just the interaction picture with a constant term in the Hamiltonian. If your state is going to rotate like :math:`e^{i(\omega + \delta\omega)t}`, then transform your equations to remove the :math:`e^{i \omega t}` term. Likewise for spatial rotations, if one mode will be moving on average with momentum :math:`\hbar k`, then transform your equations to remove that term. This way, you may be able to reduce the density of points you need in that dimension. Warning: don't forget to c [...]
diff --git a/admin/userdoc-source/reference_elements.rst b/admin/userdoc-source/reference_elements.rst
deleted file mode 100644
index 056d2a5..0000000
--- a/admin/userdoc-source/reference_elements.rst
+++ /dev/null
@@ -1,1339 +0,0 @@
-.. raw:: html
-
-  <style> .attributes-code {color:#0000BB; font-family:'monospace'; font-style:italic} </style>
-
-.. raw:: html
-
-  <style> .attributes-standard {color:#0000BB; font-family:'monospace'; font-style:italic; font-size:smaller} </style>
-
-.. raw:: html
-
-  <style> .smaller-font {font-size:smaller} </style>
-
-.. role:: attributes-code
-.. role:: attributes-standard
-.. role:: smaller-font
-
-.. _ReferenceElements:
-
-*********************
-XMDS2 script elements
-*********************
-
-This section outlines all the elements and options available in an XMDS2 script.  This is very much a **work in progress**, beginning with placeholders in most cases, as we have prioritised the tutorials for new users.  One of the most productive ways that non-developer veterans can contribute to the project is to help develop this documentation.
-
-
-
-
-.. _SimulationElement:
-
-Simulation element
-==================
-
-The ``<simulation>`` element is the single top level element in an XMDS2 simulation, and contains all the other elements.  All XMDS scripts must contain exactly one simulation element, and it must have the ``xmds-version="2"`` attribute defined.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <!-- Rest of simulation goes here -->
-    </simulation>
-
-
-
-
-.. _NameElement:
-
-Name element
-============
-
-The name of your simulation. This element is optional, but recommended. If it is set, it will be the name of the executable file generated from this script. It will also be the name of the output file (with an appropriate extension) if the ``filename`` attribute is not given a value in the ``<output>`` element.
-
-Example syntax::
-
-    <name> funky_solver </name>
-
-
-.. _AuthorElement:
-
-Author element
-==============
-
-The author(s) of this script. This element is optional, but can be useful if you need to find the person who has written an incomprehensible script and thinks comments are for the weak.
-
-Example syntax::
-
-    <author> Ima Mollusc </author>
-
-
-.. _DescriptionElement:
-
-Description element
-===================
-
-A description of what the simulation does. Optional, but recommended, in case you (or someone else) has to revist the script at some distant point in the future.
-
-Example syntax::
-
-    <description>
-      Calculate the 3D ground state of a Rubidium BEC in a harmonic magnetic trap assuming
-      cylindrical symmetry about the z axis and reflection symmetry about z=0.
-      This permits us to use the cylindrical Bessel functions to expand the solution transverse
-      to z and a cosine series to expand the solution along z.
-    </description>
-
-
-
-.. _FeaturesElement:
-
-Features Elements
-=================
-
-
-Features elements are where simulation-wide options are specified. The ``<features>`` element wraps one or more elements describing features. There are many possible feature elements. Currently, a full list of the features supported is:
-
-    * :ref:`arguments <ArgumentsElement>`
-    * :ref:`auto_vectorise <Autovectorise>`
-    * :ref:`benchmark <Benchmark>`
-    * :ref:`bing <Bing>`
-    * :ref:`cflags <CFlags>`
-    * :ref:`chunked_output <ChunkedOutput>`
-    * :ref:`diagnostics <Diagnostics>`
-    * :ref:`error_check <ErrorCheck>`
-    * :ref:`halt_non_finite <HaltNonFinite>`
-    * :ref:`fftw <FFTW>`
-    * :ref:`globals <Globals>`
-    * :ref:`OpenMP <OpenMP>`
-    * :ref:`precision <Precision>`
-    * :ref:`validation <Validation>`
-
-Example syntax::
-
-    <simulation xmds-version="2">
-      <features>
-        <bing />
-        <precision> double </precision>
-        ...
-      </features>
-    </simulation>
-
-
-.. _ArgumentsElement:
-
-Arguments Element
------------------
-
-The ``<arguments>`` element is optional, and allows defining variables that can be passed to the simulation at run time. These variables are then globally accessible throughout the simulation script. Each of the variables must be defined in an ``<argument>`` element (see below). The variables can then be passed to the simulation executable as options on the command line. For example, one could define the variables ``size``, ``number``, and ``pulse_shape`` ::
-
-    <name> arguments_test </name>
-    <features>
-      <arguments>
-        <argument name="size" type="real" default_value="20.0"/>
-        <argument name="number" type="integer" default_value="7"/>
-        <argument name="pulse_shape" type="string" default_value="gaussian"/>
-      </arguments>
-    </features>
-
-When ``XMDS2`` is run on this script the executable ``arguments_test`` is created. The values of ``size``, ``number``, and ``pulse_shape`` can then be set to whatever is desired at runtime via
-
-::
-
-  ./arguments_test --size=1.3 --number=2 --pulse_shape=lorentzian
-
-It is also possible to include an optional ``CDATA`` block inside the ``<arguments>`` block. This code will run after the arguments have been initialised with the values passed from the command line. This code block could be used, for example, to sanity check the parameters passed in, or for assigning values to global variables based on those parameters.  Any references to variables defined in an ``<argument>`` element should be made here rather than in the :ref:`Globals<globals>` elemen [...]
-
-    <features>
-      <globals>
-        <![CDATA[
-          real atom_kick;
-        ]]>
-      <globals>
-      <arguments>
-        <argument name="bragg_order" type="integer" default_value="2"/>
-        <![CDATA[
-          atom_kick = bragg_order * 2*M_PI / 780e-9;
-        ]]>
-      </arguments>
-    </features>
-
-.. _ArgumentElement:
-
-Argument element
-~~~~~~~~~~~~~~~~
-
-
-Each ``<argument>`` element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: ``name``, ``type``, and ``default_value``. ``name`` is the name by which you can refer to that variable later in the script, as well as the name of the command line parameter. ``type`` defines the data type of the variable, and ``default_value`` is the value to which the variable is set if it is not given a value on the command line.
-
-
-.. _AutoVectorise:
-
-Auto_vectorise element
-----------------------
-
-The ``<auto_vectorise />`` feature attempts to activate automatic vectorisation for large loops, if it is available in the compiler.  This should make some simulations go faster.
-
-
-.. _Benchmark:
-
-Benchmark
----------
-
-The ``<benchmark />`` feature includes a timing routine in the generated code, so that it is possible to see how long the simulations take to run.
-
-
-.. _Bing:
-
-Bing
-----
-
-The ``<bing />`` feature causes the simulation to make an invigorating sound when the simulation finishes executing.
-
-
-.. _CFlags:
-
-C Flags
--------
-
-The ``<cflags>`` feature allows extra flags to be passed to the compiler.  This can be useful for optimisation, and also using specific external libraries.  The extra options to be passed are defined with a 'CDATA' block.  The compile options can be made visible by running XMDS2 either with the "-v" (verbose) option, or the "-g" (debug) option.
-
-Example syntax::
-
-    <cflags>
-        <![CDATA[
-            -O4
-        ]]>
-    </cflags>
-
-
-.. _ChunkedOutput:
-
-Chunked Output
---------------
-
-By default, XMDS2 keeps the contents of all output moment groups in memory until the end of the simulation when they are written to the output file.  This can be a problem if your simulation creates a very large amount of output.  ``<chunked_output />`` causes the simulation to save the output data in chunks as the simulation progresses.  For some simulations this can significantly reduce the amount of memory required.  The amount of data in a chunk can be specified with the ``size`` att [...]
-
-Limitations (XMDS will give you an error if you violate any of these):
-
-* This feature cannot be used with the ASCII output file format due to limitations in the file format.
-* This feature cannot be used with the ``multi-path`` drivers because all sampling data is required to compute the mean and standard error statistics.
-* Neither is this feature compatible with the ``error_check`` feature as that relies on all sampling data being available to compute the error.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <chunked_output size="5MB" />
-        </features>
-    </simulation>
-
-.. _Diagnostics:
-
-Diagnostics
------------
-
-The ``<diagnostics />`` feature causes a simulation to output more information as it executes.  This should be useful when a simulation is dying / giving bad results to help diagnose the cause.  Currently, it largely outputs step error information.
-
-
-
-.. _ErrorCheck:
-
-Error Check
------------
-
-
-It's often important to know whether you've got errors.  This feature runs each integration twice: once with the specified error tolerance or defined lattice spacing in the propagation dimension, and then again with half the lattice spacing, or an equivalently lower error tolerance.  Each component of the output then shows the difference between these two integrations as an estimate of the error.  This feature is particularly useful when integrating stochastic equations, as it treats the [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <error_check />
-        </features>
-    </simulation>
-
-
-.. _HaltNonFinite:
-
-Halt_Non_Finite
----------------
-
-The ``<halt_non_finite />`` feature is used to stop computations from continuing to run after the vectors stop having numerical values.  This can occur when a number is too large to represent numerically, or when an illegal operation occurs.  Processing variables with non-numerical values is usually much slower than normal processing, and the results are meaningless.  Of course, there is a small cost to introducing a run-time check, so this feature is optional.
-
-
-.. _FFTW:
-
-fftw element
-------------
-
-The ``<fftw \>`` feature can be used to pass options to the `Fast Fourier Transform library <http://fftw.org>`_ used by XMDS.  This library tests algorithms on each architecture to determine the fastest method of solving each problem.  Typically this costs very little overhead, as the results of all previous tests are stored in the directory "~/.xmds/wisdom".  The level of detail for the search can be specified using the ``plan`` attribute, which can take values of ``"estimate"``, ``"mea [...]
-
-Example syntax::
-
-    <fftw plan="patient" threads="3" />
-
-
-.. _Globals:
-
-Globals
--------
-
-The globals feature places the contents of a 'CDATA' block near the top of the generated program.  Amongst other things, this is useful for defining variables that are then accessible throughout the entire program.
-
-Example syntax::
-
-    <globals>
-      <![CDATA[
-        const real omegaz = 2*M_PI*20;
-        long Nparticles = 50000;
-
-        /* offset constants */
-        real frequency = omegaz/2/M_PI;
-      ]]>
-    </globals>
-
-
-.. _OpenMP:
-
-OpenMP
-------
-
-The ``<openmp />`` feature instructs compatible compilers to parallelise key loops using the `OpenMP API <http://www.openmp.org>`_ standard.  By default the simulation will use all available CPUs.  The number of threads used can be restricted by specifying the number of threads in the script with ``<openmp threads="2"/>``, or by setting the ``OMP_NUM_THREADS`` environment variable at run-time like so::
-
-	OMP_NUM_THREADS=2 ./simulation_name
-
-
-.. _Precision:
-
-Precision
------------
-
-This specifies the precision of the XMDS2 ``real`` and ``complex`` datatypes, as well as the precision used when computing transforms. Currently two values are accepted: ``single`` and ``double``. If this feature isn't specified, XMDS2 defaults to using double precision for its variables and internal calculations.
-
-Single precision has approximately 7.2 decimal digits of accuracy, with a minimum value of 1.4×10\ :superscript:`-45` and a maximum of 3.8×10\ :superscript:`34`. Double precision has approximately 16 decimal digits of accuracy, a minimum value of 4.9×10\ :superscript:`-324` and a maximum value of 1.8×10\ :superscript:`308`.
-
-Using single precision can be attractive, as it can be more than twice as fast, depending on whether a simulation is CPU bound, memory bandwidth bound, MPI bound or bottlenecked elsewhere, although in some situations you may see no speed-up at all. Caution should be exercised, however. Keep in mind how many timesteps your simulation requires, and take note of the tolerance you have set per step, to see if the result will lie within your acceptable total error - seven digit precision isn' [...]
-
-Also note that when using an adaptive step integrator, setting a tolerance close to limits of the precision can lead to very slow performance.
-
-A further limitation is that not all the combinations of random number generators and probability distributions that are supported in double precision are supported in single precision. For example, the ``solirte`` generator does not support single precision gaussian distributions. ``dsfmt``, however, is one of the fastest generators, and does support single precision.
-
-WARNING: Single precision mode has not been tested anywhere near as thoroughly as the default double precision mode, and there is a higher chance you will run into bugs.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <precision> single </precision>
-        </features>
-    </simulation>
-
-
-.. _Validation:
-
-Validation
-----------
-
-XMDS2 makes a large number of checks in the code generation process to verify that the values for all parameters are safe choices.  Sometimes we wish to allow these parameters to be specified by variables.  This opens up many possibilities, but requires that any safety checks for parameters be performed during the execution of the program itself.  The ``<validation>`` feature activates that option, with allowable attributes being "run-time", "compile-time" and "none".
-
-As an example, one may wish to define the number of grid points and the range of the grid at run-time rather than explicitly define them in the XMDS2 script. To accomplish this, one could do the following::
-
-    <name> validation_test </name>
-    <features>
-      <validation kind="run-time" />
-      <arguments>
-        <argument name="xmin" type="real" default_value="-1.0"/>
-        <argument name="xmax" type="real" default_value="1.0"/>
-        <argument name="numGridPoints" type="integer" default_value="128"/>
-      </arguments>
-    </features>
-
-    <geometry>
-      <propagation_dimension> t </propagation_dimension>
-      <transverse_dimensions>
-        <dimension name="x" lattice="numGridPoints"  domain="(xmin, xmax)" />
-      </transverse_dimensions>
-   </geometry>
-
-and then run the resulting executable with::
-
-  ./validation_test --xmin=-2.0 --xmax=2.0 --numGridPoints=64
-
-This approach means that when XMDS2 is parsing the script it is unable to tell, for example, if the number of sampling points requested is less than or equal to the lattice size. Consequently it will create an executable with "numGridPoints" as an internal variable, and make the check at run-time, when it knows the value of "numGridPoints" rather than at compile time, when it doesn't.
-
-.. _DriverElement:
-
-Driver Element
-==============
-
-The driver element controls the overall management of the simulation, including how many paths of a stochastic simulation are to be averaged, and whether or not it is to be run using distributed memory parallelisation.  If it is not included, then the simulation is performed once without using MPI parallelisation.  If it is included, it must have a ``name`` attribute.
-
-The ``name`` attribute can have values of "none" (which is equivalent to the default option of not specifying a driver), "distributed-mpi", "multi-path" or "mpi-multi-path".
-
-Choosing the ``name="distributed-mpi"`` option allows a single integration over multiple processors.  The resulting executable can then be run according to your particular implementation of MPI.  The FFTW library only allows MPI processing of multidimensional vectors, as otherwise shared memory parallel processing requires too much inter-process communication to be efficient.  Maximally efficient parallelisation occurs where evolution is entirely local in one transverse dimension (see :r [...]
-
-The ``name="multi-path"`` option is used for stochastic simulations, which are typically run multiple times and averaged.  It requires a ``paths`` attribute with the number of iterations of the integration to be averaged.  The output will report the averages of the desired samples, and the standard error in those averages.  
-The ``name="mpi-multi-path"`` option integrates separate paths on different processors, which is typically a highly efficient process.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <driver name="distributed-mpi" />
-            <!-- or -->
-        <driver name="multi-path" paths="10" />
-            <!-- or -->
-        <driver name="mpi-multi-path" paths="1000" />
-    </simulation>
-
-.. _GeometryElement:
-
-Geometry Element
-================
-
-.. _PropagationDimensionElement:
-
-The ``<geometry>`` element describes the dimensions used in your simulation, and is required.  The only required element inside is the ``<propagation_dimension>`` element, which defines the name of the dimension along which your simulation will integrate.  Nothing else about this dimension is specified, as requirements for the lattice along the integration dimension is specified by the ``<integrate>`` blocks themselves, as described in section :ref:`IntegrateElement`.
-
-.. _TransverseDimensionsElement:
-
-.. _DimensionElement:
-
-If there are other dimensions in your problem, they are called "transverse dimensions", and are described in the ``<transverse_dimensions>`` element.  Each dimension is then described in its own ``<dimension>`` element.  A transverse dimension must have a unique name defined by a ``name`` attribute.  If it is not specified, the type of dimension will default to "real", otherwise it can be specified with the ``type`` attribute.  Allowable types (other than "real") are "long", "int", and " [...]
-
-Each transverse dimension must specify how many points or modes it requires, and the range over which it is defined.  This is done by the ``lattice`` and ``domain`` attributes respectively.  The ``lattice`` attribute is an integer, and is optional for integer dimensions, where it can be defined implicitly by the domain.  The ``domain`` attribute is specified as a pair of numbers (e.g. ``domain="(-17,3)"``) defining the minimum and maximum of the grid.
-
-Any dimension can have a number of aliases.  These act exactly like copies of that dimension, but must be included explicitly in the definition of subsequent vectors (i.e. they are not included in the default list of dimensions for a new vector).  The list of aliases for a dimension are included in an ``aliases`` attribute.  They are useful for non-local reference of variables.  See ``groundstate_gaussian.xmds`` and ``2DMultistateSE.xmds`` as examples.
-
-Integrals over a dimension can be multiplied by a common prefactor, which is specified using the ``volume_prefactor`` attribute.  For example, this allows the automatic inclusion of a factor of two due to a reflection symmetry by adding the attribute ``volume_prefactor="2"``.  In very specific cases, you may wish to refer to volume elements explicitly.  This will lead to grid-dependent behaviour, which is sometimes required in certain stochastic field simulations, for example.  In this c [...]
-    
-If you are using the ``distributed-mpi`` driver to parallelise the simulation, place the dimension you wish to split over multiple processors first.  The most efficient parallelisation would involve distributing a dimension with only local evolution, as the different memory blocks would not need to communicate.  Nonlocal evolution that is local in Fourier space is the second preference, as the Fourier transform can also be successfully parallelised with minimum communication.  
-
-.. _Transforms:
-
-Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or "dft"), but others can be specified with the ``transform`` attribute.  The other options are "none", "dst", "dct", "bessel", "spherical-bessel" and "hermite-gauss".  Using the right transform can dramatically improve the speed o [...]
-
-An advanced feature discussed further in :ref:`DimensionAliases` are dimension aliases, which are specified by the ``aliases`` attribute.  This feature is useful for example, when calculating correlation functions.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <!-- A real-valued dimension from -1.5 to 1.5 -->
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" />
-                
-                <!-- An integer-valued dimension with the 6 values -2, -1, 0, 1, 2, 3 -->
-                <dimension name="j"               domain="(-2,3)" type="integer" />
-                
-                <!-- A real-valued dimension using the bessel transform for a radial coordinate -->
-                <dimension name="r" lattice="64" domain="(0, 5)"  transform="bessel" volume_prefactor="2.0*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-.. _dft_Transform:
-
-The "dft" transform
--------------------
-
-The "dft" transform is performed using the the normal discrete Fourier transform, which means that it enforces periodic boundary conditions on vectors defined on that dimension.  Another implication is that it can only be used with complex-valued vectors.  The discrete Fourier transform is almost exactly the same as a standard Fourier transform.  The standard Fourier transform is
-
-.. math::
-
-    \mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k x} dx
-
-The discrete Fourier transform has no information about the domain of the lattice, so the XMDS2 transform is equivalent to
-
-.. math::
-    \tilde{\mathcal{F}}\left[f(x)\right](k) &= \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k (x+ x_\text{min})} dx \\
-    &= e^{-i x_\text{min} k} \mathcal{F}\left[f(x)\right](k)
-
-The standard usage in an XMDS simulation involves moving to Fourier space, applying a transformation, and then moving back.  For this purpose, the two transformations are entirely equivalent as the extra phase factor cancels.  However, when fields are explicitly defined in Fourier space, care must be taken to include this phase factor explicitly.  See section :ref:`Convolutions` in the Advanced Topics section.
-
-When a dimension uses the "dft" transform, then the Fourier space variable is defined as the name of the dimension prefixed with a "k".  For example, the dimensions "x", "y", "z" and "tau" will be referenced in Fourier space as "kx","ky", "kz" and "ktau".  
-
-Fourier transforms allow easy calculation of derivatives, as the n\ :sup:`th` derivative of a field is proportional to the n\ :sup:`th` moment of the field in Fourier space:
-
-.. math::
-    \mathcal{F}\left[\frac{\partial^n f(x)}{\partial x^n}\right](k_x) = \left(i \;k_x\right)^n \mathcal{F}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial}{\partial x}` as an ``IP`` or ``EX`` operator as ``L = i*kx;`` (see :ref:`OperatorsElement` for more details).
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <!-- transform="dft" is the default, omitting it wouldn't change anything -->
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" transform="dft" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-The "dct" transform
--------------------
-
-The "dct" (discrete cosine transform) is a Fourier-based transform that implies different boundary conditions for associated vectors.  XMDS uses the type-II DCT, often called "the DCT", and its inverse, which is also called the type-III DCT.  This transform assumes that any vector using this dimension is both periodic, and also even around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can there [...]
-
-As the DCT transform can be defined on real data rather only complex data, it can also be superior to DFT-based spectral methods for simulations of real-valued fields where boundary conditions are artificial.
-
-XMDS labels the cosine transform space variables the same as for :ref:`Fourier transforms<dft_Transform>` and all the even derivatives can be calculated the same way.  Odd moments of the cosine-space variables are in fact *not* related to the corresponding odd derivatives by an inverse cosine transform.
-
-Discrete cosine transforms allow easy calculation of even-order derivatives, as the 2n\ :sup:`th` derivative of a field is proportional to the 2n\ :sup:`th` moment of the field in DCT-space:
-
-.. math::
-    \mathcal{F}_\text{DCT}\left[\frac{\partial^{2n} f(x)}{\partial x^{2n}}\right](k_x) = (-k_x^2)^{n}\; \mathcal{F}_\text{DCT}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial^2}{\partial x^2}` as an ``IP`` or ``EX`` operator as ``L = -kx*kx;`` (see :ref:`OperatorsElement` for more details).
-
-For problems where you are defining the simulation domain over only half of the physical domain to take advantage of reflection symmetry, consider using ``volume_prefactor="2.0"`` so that all volume integrals are over the entire physical domain, not just the simulation domain. i.e. integrals would be over -1 to 1 instead of 0 to 1 if the domain was specified as ``domain="(0,1)"``.
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" transform="dct" />
-                    <!-- Or to cause volume integrals to be multiplied by 2 -->
-                <dimension name="y" lattice="128" domain="(0, 1)" transform="dct" volume_prefactor="2.0" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-The "dst" transform
--------------------
-
-The "dst" (discrete sine transform) is a counterpart to the DCT transform.  XMDS uses the type-II DST and its inverse, which is also called the type-III DST.  This transform assumes that fields are periodic in this dimension, but also that they are also odd around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can therefore be of any shape where all the even derivatives are zero at each boundary.  
-
-The DST transform can be defined on real-valued vectors.  As odd-valued functions are zero at the boundaries, this is a natural transform to use when implementing zero Dirichlet boundary conditions.
-
-XMDS labels the sine transform space variables the same as for :ref:`Fourier transforms<dft_Transform>` and all the even derivatives can be calculated the same way.  Odd moments of the sine-space variables are in fact *not* related to the corresponding odd derivatives by an inverse sine transform.
-
-Discrete sine transforms allow easy calculation of even-order derivatives, as the 2n\ :sup:`th` derivative of a field is proportional to the 2n\ :sup:`th` moment of the field in DST-space:
-
-.. math::
-    \mathcal{F}_\text{DST}\left[\frac{\partial^{2n} f(x)}{\partial x^{2n}}\right](k_x) = (-k_x^2)^{n}\; \mathcal{F}_\text{DST}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial^2}{\partial x^2}` as an ``IP`` or ``EX`` operator as ``L = -kx*kx;`` (see :ref:`OperatorsElement` for more details).
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(0, 1.5)" transform="dst" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-.. _BesselTransform:
-
-The "bessel" transform
-----------------------
-
-Just as the Fourier basis is useful for finding derivatives in Euclidean geometry, the basis of Bessel functions is useful for finding certain common operators in cylindrical co-ordinates.  In particular, we use the Bessel functions of the first kind, :math:`J_m(u)`.  The relevant transform is the Hankel transform:
-
-.. math::
-    F_m(k) = \mathcal{H}_m \left[f\right](k) = \int_0^\infty r f(r) J_m(k r) dr
-    
-which has the inverse transform:
-
-.. math::
-    f(r) = \mathcal{H}^{-1}_m \left[F_m\right](r) = \int_0^\infty k F_m(k) J_m(k r) dk
-    
-This transform pair has the useful property that the Laplacian in cylindrical co-ordinates is diagonal in this basis:
-
-.. math::
-    \nabla^2 \left(f(r) e^{i m \theta}\right) &= \left(\frac{\partial^2 f}{\partial r^2} +\frac{1}{r}\frac{\partial f}{\partial r} -\frac{m^2}{r^2} f \right) e^{i m \theta} = \left\{\mathcal{H}^{-1}_m \left[(-k^2) F_m(k)\right](r) \right\} e^{i m \theta}
-    
-XMDS labels the variables in the transformed space with a prefix of 'k', just as for :ref:`Fourier transforms<dft_Transform>`.  The order :math:`m` of the transform is defined by the ``order`` attribute in the ``<dimension>`` element, which must be assigned as a non-negative integer.  If the order is not specified, it defaults to zero which corresponds to the solution being independent of the angular coordinate :math:`\theta`.  
-
-It can often be useful to have a different sampling in normal space and Hankel space.  Reducing the number of modes in either space dramatically speeds simulations.  To set the number of lattice points in Hankel space to be different to the number of lattice points for the field in its original space, use the attribute ``spectral_lattice``.  The Bessel space lattice is chosen such that the boundary condition at the edge of the domain is zero.  This ensures that all of the Bessel modes ar [...]
-
-Hankel transforms allow easy calculation of the Laplacian of fields with cylindrical symmetry.  Applying the operator ``L = -kr*kr`` in Hankel space is therefore equivalent to applying the operator
-
-.. math::
-    \mathcal{L} = \left(\frac{\partial^2}{\partial r^2} +\frac{1}{r}\frac{\partial}{\partial r} -\frac{m^2}{r^2} \right)
-    
-in coordinate space.
-
-In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For example, in cylindrical co-ordinates with a radial co-ordinate 'r', integrals over this dimension have a volume element :math:`r dr`.  When performing integrals along a dimension specified by the "bessel" transform, the factor of the radius is included implicitly.  If you are using a geometry with some symmetry, it is common to have prefactors in your integration.  For example, for a two-dimensional volume in cy [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" domain="(0, 3)" transform="bessel" volume_prefactor="2*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-The "spherical-bessel" transform
---------------------------------
-
-When working in spherical coordinates, it is often useful to use the spherical Bessel functions :math:`j_l(x)=\sqrt{\frac{\pi}{2x}}J_{l+\frac{1}{2}}(x)` as a basis.  These are eigenfunctions of the radial component of Laplace's equation in spherical coordinates:
-
-.. math::
-    \nabla^2 \left[j_l(k r)\; Y^m_l(\theta, \phi)\right] &= \left[\frac{\partial^2 }{\partial r^2} +\frac{2}{r}\frac{\partial }{\partial r} -\frac{l(l+1)}{r^2}\right] j_l(k r) \; Y^m_l(\theta, \phi) = -k^2 j_l(k r)\; Y^m_l(\theta, \phi)
-
-Just as the Bessel basis above, the transformed dimensions are prefixed with a 'k', and it is possible (and usually wise) to use the ``spectral_lattice`` attribute to specify a different lattice size in the transformed space.  Also, the spacing of these lattices are again chosen in a non-uniform manner to Gaussian quadrature methods for spectrally accurate transforms.  Finally, the ``order`` attribute can be used to specify the order :math:`l` of the spherical Bessel functions used.  
-
-If we denote the transformation to and from this basis by :math:`\mathcal{SH}`, then we can write the useful property:
-
-.. math::
-    \frac{\partial^2 f}{\partial r^2} +\frac{2}{r}\frac{\partial f}{\partial r} -\frac{l (l+1)}{r^2} = \mathcal{SH}^{-1}_l \left[(-k^2) F_l(k)\right](r)
-
-Spherical Bessel transforms allow easy calculation of the Laplacian of fields with spherical symmetry. Applying the operator ``L = -kr*kr`` in Spherical Bessel space is therefore equivalent to applying the operator
-
-.. math::
-    \mathcal{L} = \left( \frac{\partial^2}{\partial r^2} +\frac{2}{r}\frac{\partial}{\partial r} -\frac{l (l+1)}{r^2} \right)
-    
-in coordinate space.  
-
-In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For example, in spherical co-ordinates with a radial co-ordinate 'r', integrals over this dimension have a volume element :math:`r^2 dr`.  When performing integrals along a dimension specified by the "spherical-bessel" transform, the factor of the square of the radius is included implicitly.  If you are using a geometry with some symmetry, it is common to have prefactors in your integration.  For example, for a thre [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" domain="(0, 3)" transform="spherical-bessel" volume_prefactor="4*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-The "hermite-gauss" transform
------------------------------
-
-The "hermite-gauss" transform allows transformations to and from the basis of Hermite functions :math:`\psi_n(x)`:
-
-.. math::
-    \psi_n(x) = \left(2^n n! \sigma \sqrt{\pi}\right)^{-1/2} e^{-x^2/2\sigma^2} H_n(\sigma x)
-    
-where the functions :math:`H_n(x)` are the Hermite polynomials:
-
-.. math::
-    H_n(x) &= (-1)^n e^{x^2} \frac{d^n}{dx^n} \left(e^{-x^2}\right)
-    
-which are eigenfunctions of the Schroedinger equation for a harmonic oscillator:
-
-.. math::
-    - \frac{\hbar^2}{2 m} \frac{\partial^2 \psi_n}{\partial x^2} + \frac{1}{2} m \omega^2 x^2 \psi_n(x) = \hbar \omega\left(n+\frac{1}{2}\right) \psi_n(x),
-
-with :math:`\sigma = \sqrt{\frac{\hbar}{m \omega}}`.
-    
-This transform is different to the others in that it requires a ``length_scale`` attribute rather than a ``domain`` attribute, as the range of the lattice will depend on the number of basis functions used. The ``length_scale`` attribute defines the scale of the domain as the standard deviation :math:`\sigma` of the lowest order Hermite function :math:`\psi_0(x)`:
-
-.. math::
-    \psi_0(x) = (\sigma^2 \pi)^{-1/4} e^{-x^2/2 \sigma^2}
-
-When a dimension uses the "hermite-gauss" transform, then the variable indexing the basis functions is defined as the name of the dimension prefixed with an "n".  For example, when referencing the basis function indices for the dimensions "x", "y", "z" and "tau", use the variable "nx", "ny", "nz" and "ntau".  
-
-Applying the operator ``L = nx + 0.5`` in Hermite space is therefore equivalent to applying the operator
-
-.. math::
-   \mathcal{L} = \left(- \frac{\sigma^2}{2}\frac{\partial^2}{\partial x^2} + \frac{1}{2 \sigma^2} x^2 \right)
-    
-in coordinate space.  
-
-The Hermite-Gauss transform permits one to work in energy-space for the harmonic oscillator.  The normal Fourier transform of "hermite-gauss" dimensions can also be referenced using the dimension name prefixed with a "k".  See the examples ``hermitegauss_transform.xmds`` and ``hermitegauss_groundstate.xmds`` for examples.
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" length_scale="1.0" transform="hermite-gauss" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-
-.. _VectorElement:
-
-Vector Element
-==============
-
-Vectors are arrays of data, defined over any subset of the transverse dimensions defined in your :ref:`GeometryElement`.  These dimensions are listed in the attribute ``dimensions``, which can be an empty string if you wish the vector to not be defined on any dimensions.  If you do not include a ``dimensions`` attribute then the vector defaults to being a function of all transverse dimensions, not including any aliases.  Vectors are used to store static or dynamic variables, but you do n [...]
-
-Each ``<vector>`` element has a unique name, defined by a ``name`` attribute.  It is either complex-valued (the default) or real-valued, which can be specified using the ``type="real"`` attribute.
-
-.. _ComponentsElement:
-
-A vector contains a list of variables, each defined by name in the ``<components>`` element.  The name of each component is the name used to reference it later in the simulation.
-
-Vectors are initialised at the beginning of a simulation, either from code or from an input file.  The basis choice for this initialisation defaults to the normal space as defined in the ``<geometry>`` element, but any transverse dimension can be initialised in their transform basis by specifying them in an ``initial_basis`` attribute.  The ``initial_basis`` attribute lists dimensions either by their name as defined by the ``<geometry>`` element, or by their transformed name.  For exampl [...]
-
-.. _InitialisationElement:
-
-When initialising the vector within the XMDS script, the appropriate code is placed in a 'CDATA' block inside an ``<initialisation>`` element.  This code is in standard C-syntax, and should reference the components of the vector by name.  XMDS defines a few useful :ref:`shorthand macros<XMDSCSyntax>` for this C-code.  If you wish to initialise all the components of the vector as zeros, then it suffices simply to add the attribute ``kind="zero"`` or to omit the ``<initialisation>`` elemen [...]
-    
-.. _ReferencingNonlocal:
-
-While the default XMDS behaviour is to reference all variables locally, any vector can be referenced non-locally.  The notation for referencing the value of a vector 'phi' with a dimension 'j' at a value of 'j=jk' is ``phi(j => jk)``.  Multiple non-local dimensions are addressed by adding the references in a list, e.g. ``phi(j => jk, x => y)``.  See ``2DMultistateSE.xmds`` for an example.
-
-Dimensions can only be accessed non-locally if one of the following conditions is true:
-
-* The dimension is an ``integer`` dimension,
-* The dimension is accessed with an :ref:`alias <DimensionAliases>` of that dimension. For example, ``phi(x => y)`` if the dimension ``x`` has ``y`` as an alias, or vice-versa.
-* The dimension is a Fourier transform dimension (``dft``), used in the spectral basis (i.e. ``kx`` for an ``x`` dimension) and it is accessed with the negative of that dimension.  For example ``phi(kx => -kx)``.
-* The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a dimension with a transform of ``dft``, ``dct``, ``dst`` or ``none``), the dimension is symmetric about zero and it is accessed with the negative of the dimension name.  For example ``phi(x => -x)`` for a dimension with domain of ``(-1.2, 1.2)``.
-* The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a dimension with a transform of ``dft``, ``dct``, ``dst`` or ``none``), and it is accessed with the lower limit of that dimension.  For example, ``phi(x => -1.2)`` for a dimension with a domain of ``(-1.2, 1.2)``.  Note that the dimension must be accessed with the exact characters used in the definition of the domain.  For the previous example ``phi(x => -1.20)`` does not satisfy this condition.
-* **Advanced behaviour**: The value of a variable at an arbitrary point can be accessed via the integer index for that dimension. For example ``phi(x_index => 3)`` accesses the value of ``phi`` at the grid point with index 3.  As ``x_index`` is zero-based, this will be the *fourth* grid point.  It is highly recommended that the :ref:`diagnostics <Diagnostics>` feature be used when writing simulations using this feature.  Once the simulation has been tested, ``<diagnostics>`` can be turne [...]
-
-
-Note that a dimension cannot be accessed non-locally in ``distributed-mpi`` simulations if the simulation is distributed across that dimension.
-
-.. _FilenameElement:
-
-If you wish to initialise from a file, then you can choose to initialise from an hdf5 file using ``kind="hdf5"`` in the ``<initialisation>`` element, and then supply the name of the input file with the ``filename`` element.  This is a standard data format which can be generated from XMDS, or from another program.  An example for generating a file in another program for input into XMDS is detailed in the Advanced topic: :ref:`Importing`.
-
-When initialising from a file, the default is to require the lattice of the transverse dimensions to exactly match the lattice defined by XMDS.  There is an option to import data defined on a subset or superset of the lattice points.  Obviously, the dimensionality of the imported field still has to be correct.  This option is activated by defining the attribute ``geometry_matching_mode="loose"``.  The default option is defined as ``geometry_matching_mode="strict"``.  A requirement of the [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" initial_basis="x" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x) * cis(40 * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A zero-dimensional real vector with components u and v -->
-        <vector name="zero_dim" dimensions="" type="real">
-            <components>
-                u v
-            </components>
-            <initialisation kind="hdf5">
-                <filename>data.h5</filename>
-            </initialisation>
-        </vector>
-    </simulation>
-
-
-
-.. _Dependencies:
-
-The dependencies element
-------------------------
-
-Often a vector, computed vector, filter, integration operator or output group will reference the values in one or more other vectors, computed vectors or noise vectors.  These dependencies are defined via a ``<dependencies>`` element, which lists the names of the vectors.  The components of those vectors will then be available for use in the 'CDATA' block, and can be referenced by their name.  
-
-For a vector, the basis of the dependent vectors, and therefore the basis of the dimensions available in the 'CDATA' block, are defined by the ``initial_basis`` of the vector.  For a ``<computed_vector>``, ``<filter>`` ``<integration_vector>``, or moment group vector, the basis of the dependencies can be specified by a ``basis`` attribute in the ``<dependencies>`` element.  For example, ``basis="x ny kz"``.
-
-Any transverse dimensions that appear in the ``<dependencies>`` element that do not appear in the ``dimensions`` attribute of the vector are integrated out.  For integer dimensions, this is simply an implicit sum over the dimension.  For real-valued dimensions, this is an implicit integral over the range of that dimension.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-                <dimension name="y" lattice="10" domain="(-3, 2)" transform="dct" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" dimensions="x" initial_basis="x" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <!-- 
-                    The initialisation of the vector 'wavefunction' depends on information
-                    in the 'two_dim' vector.  The vector two_dim is DCT-transformed into the
-                    (x, ky) basis, and the ky dimension is implicitly integrated over in the
-                    following initialisation code
-                  -->
-                <dependencies basis="x ky">two_dim</dependencies>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x + v) * cis(u * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A two-dimensional real vector with components u and v -->
-        <vector name="two_dim" type="real">
-            <components>
-                u v
-            </components>
-            <initialisation kind="hdf5">
-                <filename>data.h5</filename>
-            </initialisation>
-        </vector>
-    </simulation>
-
-
-
-.. _ComputedVectorElement:
-
-Computed Vector Element
-=======================
-
-.. _EvaluationElement:
-
-Computed vectors are arrays of data much like normal ``<vector>`` elements, but they are always calculated as they are referenced, so they cannot be initialised from file.  It is defined with a ``<computed_vector>`` element, which has a ``name`` attribute, optional ``dimensions`` and ``type`` attributes, and a ``<components>`` element, just like a ``<vector>`` element.  Instead of an <:ref:`initialisation<InitialisationElement>`> element, it has an ``<evaluation>`` element that serves th [...]
-
-As it is not being stored, a ``<computed_vector>`` does not have or require an ``initial_basis`` attribute, as it will be transformed into an appropriate basis for the element that references it.  The basis for its evaluation will be determined entirely by the ``basis`` attribute of the ``<dependencies>`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x) * cis(40 * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A zero-dimensional real computed vector with components Ncalc -->
-        <computed_vector name="zero_dim" dimensions="" type="real">
-            <components>
-                Ncalc
-            </components>
-            <evaluation>
-                <dependencies>wavefunction</dependencies>
-                <![CDATA[
-                    // Implicitly integrating over the dimension 'x'
-                    Ncalc = mod2(phi);
-                ]]>
-            </evaluation>
-        </computed_vector>
-    </simulation>
-
-
-
-.. _NoiseVectorElement:
-
-Noise Vector Element
-====================
-
-Noise vectors are used like computed vectors, but when they are evaluated they generate arrays of random numbers of various kinds.  They do not depend on other vectors, and are not initialised by code.  They are defined by a ``<noise_vector>`` element, which has a ``name`` attribute, and optional ``dimensions``, ``initial_basis`` and ``type`` attributes, which work identically as for normal vectors.  
-
-The choice of pseudo-random number generator (RNG) can be specified with the ``method`` attribute, which has options "posix" (the default), "mkl", "solirte" and "dsfmt".  It is only possible to use any particular method if that library is available.  Although "posix" is the default, it is also the slowest, and produces the lowest quality random numbers (although this is typically not a problem).  "mkl" refers to the Intel Math Kernel Library, and is only available if installed.  "solirte [...]
-
-The random number generators can be provided with a seed using the ``seed`` attribute, which should typically consist of a list of three integers.  All RNGs require positive integers as seeds.  It is possible to use the :ref:`<validation kind="run-time"/><Validation>` feature to use passed variables as seeds.  It is advantageous to use fixed seeds rather than timer-based seeds, as the :ref:`<error_check><ErrorCheck>` element can test for strong convergence if the same seeds are used for  [...]
-
-The different types of noise vectors are defined by a mandatory ``kind`` attribute, which must take the value of 'gauss', 'gaussian', 'wiener', 'poissonian','jump' or 'uniform'.  
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- 
-            A one-dimensional complex wiener noise vector.
-            This noise is appropriate for using in the complex
-            random-walk equation of motion:
-                dz_dt = eta;
-        -->
-        <noise_vector name="noise" kind="wiener">
-            <components>
-                eta
-            </components>
-        </vector>
-    </simulation>
-
-
-.. _uniformNoise:
-
-Uniform noise
--------------
-
-Uniform noises defined over any transverse dimensions are simply uniformly distributed random numbers between zero and one.  This noise is an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If it were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="drivingNoise" dimensions="x" kind="uniform" type="complex" method="dsfmt" seed="314 159 276">
-          <components>Eta</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _gaussianNoise:
-
-Gaussian noise
---------------
-
-Noise generated with the "gaussian" method is gaussian distributed with zero mean.  For a real-valued noise vector, the variance at each point is the inverse of the volume element of the transverse dimensions in the vector.  This volume element for a single transverse dimension is that used to perform integrals over that dimension.  For example, it would include a factor of :math:`r^2` for a dimension "r" defined with a ``spherical-bessel`` transform.  It can be non-uniform for dimension [...]
-
-This lattice-dependent variance is typical in most applications of partial differential equations with stochastic initial conditions, as the physical quantity is the variance of the field over some finite volume, which does not change if the variance at each lattice site varies as described above.
-
-For complex-valued noise vector, the real and imaginary parts of the noise are independent, and each have half the variance of a real-valued noise.  This means that the modulus squared of a complex-valued noise vector has the same variance as a real-valued noise vector at each point.
-
-Gaussian noise vectors are an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialNoise" dimensions="x" kind="gauss" type="real" method="posix" seed="314 159 276">
-          <components>fuzz</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _wienerNoise:
-
-Wiener noise
-------------
-
-Noise generated with the "wiener" method is gaussian distributed with zero mean and the same variance as the static "gaussian" noise defined above, multiplied by a factor of the lattice step in the propagation dimension.  This means that these noise vectors can be used to define Wiener noises for standard stochastic ordinary or partial differential equations.  Most integrators in XMDS effectively interpret these noises as Stratonovich increments.
-
-As a dynamic noise, a Wiener process is not well-defined except in an ``integrate`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="diffusion" dimensions="x" kind="wiener" type="real" method="solirte" seed="314 159 276">
-          <components>dW</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _poissionianNoise:
-
-Poissonian noise
-----------------
-
-A noise vector using the "poissonian" method generates a random variable from a Poissonian distribution.  While the the Poisson distribution is integer-valued, the variable will be cast as a real number.  The rate of the Poissonian distribution is defined by the ``mean`` or ``mean-density`` attributes.  These are are synonyms, and must be defined as positive real numbers.  For Poissonian noises defined over real-valued transverse dimensions, the rate is given by the product of this ``mea [...]
-
-Poissonian noise vectors are an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialDistribution" dimensions="x" kind="poissonian" type="real" mean-density="2.7" method="solirte" seed="314 159 276">
-          <components>Pdist</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _jumpNoise:
-
-Jump noise
-----------
-
-A noise vector using the "jump" method is the dynamic version of the poissonian noise method, and must have the ``mean-rate`` attribute specified as a positive real number.  The variable at each point is chosen from a Poissonian distribution with a mean equal to the product of three variables: the ``mean-rate`` attribute; the volume of the element as defined by its transverse dimensions (including their ``volume_prefactor`` attributes); and the step size in the propagation dimension.  No [...]
-
-It is common to wish to vary the mean rate of a jump process, which means that the ``mean-rate`` attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the :ref:`<validation><Validation>` feature with either the ``kind="none"`` or ``kind="run-time"`` attributes.
-
-As a dynamic noise, a jump process is not well-defined except in an ``integrate`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialDistribution" dimensions="" kind="jump" type="real" mean-rate="2.7" method="solirte" seed="314 159 276">
-          <components>dN</components>
-        </noise_vector>
-    </simulation>
-
-
-
-.. _SequenceElement:
-
-Sequence Element
-================
-
-All processing of vectors happens in sequence elements.  Each simulation must have exactly one main sequence element, but it can then contain any number of nested sequence elements.  A sequence element can contain any number of ``<sequence>``, :ref:`<filter><FilterElement>`, :ref:`<integrate><IntegrateElement>` and/or :ref:`<breakpoint><BreakpointElement>` elements, which are executed in the order they are written.  A sequence can be repeated a number of times by using the ``cycles`` att [...]
-    
-Example syntax::
-
-    <simulation xmds-version="2">
-        <sequence cycles="2">
-            <sequence>  ... </sequence>
-            <filter> ... </filter>
-            <integrate> ...</integrate>
-        </sequence>
-    </simulation>    
-
-.. _FilterElement:
-
-Filter element
-==============
-
-A ``<filter>`` element can be placed inside a ``<sequence>`` element or an :ref:`<integrate><IntegrateElement>` element.  It contains a 'CDATA' block and an optional :ref:`<dependencies><Dependencies>` element, which may give access to variables in other ``<vector>``, ``<computed_vector>`` or ``<noise_vector>`` elements.  The code inside the 'CDATA' block is executed over the combined tensor product space of the dependencies, or simply once if there is no dependencies element.  This elem [...]
-    
-Sometimes it is desirable to apply a filter conditionally.  The most efficient way of doing this is to call the function from the piece of code that contains the conditional statement (likely another ``<filter>`` element) rather than embed the conditional function in the filter itself, as the latter method can involve the conditional statement being evaluated multiple times over the transverse dimensions.  For this reason, it is possible to give a filter a ``name`` attribute, and the fil [...]
-    
-One of the common uses of a filter element is to apply discontinuous changes to the vectors and variables of the simulation.
-
-Example syntax::
-
-    <sequence>
-        <filter>
-          <![CDATA[
-            printf("Hello world from the first filter segment!  This filter rather wastefully calls the second one.\n");
-            fname();
-          ]]>
-        </filter>
-
-        <filter name="fname">
-           <dependencies>normalisation wavefunction</dependencies>
-           <![CDATA[
-             phi *= sqrt(Nparticles/Ncalc);
-           ]]>
-        </filter>
-    </sequence>
-
-
-.. _IntegrateElement:
-
-Integrate element
-=================
-
-The ``<integrate>`` element is at the heart of most XMDS simulations.  It is used to integrate a set of (potentially stochastic) first-order differential equations for one or more of the vectors defined using the ``<vector>`` element along the propagation dimension.  At the beginning of the simulation, the value of the propagation dimension is set to zero, and the vectors are initialised as defined in the :ref:`<vector><VectorElement>` element.  As successive sequence elements change the [...]
-    
-The length of the integration is defined by the ``interval`` attribute, which must be a positive real number.  An ``<integrate>`` element must have an ``algorithm`` attribute defined, which defines the integration method.  Current methods include :ref:`SI <SI>`, :ref:`SIC <SI>`, :ref:`RK4 <RK4>`, :ref:`RK9 <RK4>`, :ref:`ARK45 <ARK45>`, and :ref:`ARK89 <ARK45>`.  Fixed step algorithms require a ``steps`` attribute, which must be a positive integer that defines the number of (evenly spaced [...]
-
-.. _SamplesElement:
-
-The optional ``<samples>`` element is used to track the evolution of one or more vectors or variables during an integration.  This element must contain a non-negative integer for each :ref:`<sampling_group><SamplingGroupElement>` element defined in the simulation's :ref:`<output><OutputElement>` element.  The list of integers then defines the number of times that the moments defined in those groups will be sampled.  For a fixed step algorithm, each non-zero number of samples must be a fa [...]
-    
-The vectors to be integrated and the form of the differential equations are defined in the :ref:`<operators><OperatorsElement>` element (or elements).  Filters to be applied each step can be defined with optional :ref:`<filters><FiltersElement>` elements.  
-    
-Computed vectors can be defined with the ``<computed_vector>`` element.  These act exactly like a globally defined :ref:`ComputedVectorElement`, but are only available within the single ``<integrate>`` element.
-
-Example syntax::
-
-    <integrate algorithm="ARK89" interval="1e-4" steps="10000" tolerance="1e-8">
-      <samples>20</samples>
-      <filters>
-        <filter>
-          <dependencies>wavefunction normalisation</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);   // Correct normalisation of the wavefunction
-          ]]>
-        </filter>
-      </filters>
-      <operators>
-        <operator kind="ip" constant="yes">
-          <operator_names>T</operator_names>
-          <![CDATA[
-            T = -0.5*hbar/M*ky*ky;
-          ]]>
-        </operator>
-        <dependencies>potential</dependencies>
-        <![CDATA[
-          dphi_dt = T[phi] - (V1 + Uint/hbar*mod2(phi))*phi;
-        ]]>
-        <integration_vectors>wavefunction</integration_vectors>
-      </operators>
-    </integrate>
-
-.. _OperatorsElement:
-
-Operators and operator elements
--------------------------------
-
-An :ref:`<integrate><IntegrateElement>` element must contain one or more ``<operators>`` elements, which define both which vectors are to be integrated, and their derivative in the propagation dimension.  When all vectors to be integrated have the same dimensionality, they can all be defined within a single ``<operators>`` element, and when vectors with different dimension are to be integrated, each set of vectors with the same dimensionality should be placed in separate ``<operators>``  [...]
-    
-.. _IntegrationVectorsElement:
-
-Within each ``<operators>`` element, the vectors that are to be integrated are listed by name in the ``<integration_vectors>`` element, and the differential equations are written in a 'CDATA' block.   The derivative of each component of the integration vectors must be defined along the propagation dimension.  For example, if the integration vectors have components 'phi' and 'beta', and the propagation dimension is labelled 'tau', then the 'CDATA' block must define the variables 'dphi_dta [...]
-    
-When noise vectors are referenced, equations with Wiener noises should be written as though the equations are in differential form, as described in the worked examples :ref:`Kubo` and :ref:`Fibre`.  Jump-based Poisson noises will also be written in an equivalent form, as modelled by the example ``photodetector.xmds``.
-    
-By default, the name of each component references the local value of the vector, but :ref:`nonlocal variables<ReferencingNonlocal>` can be accessed using the standard syntax.  However, typically the most common (and most efficient) method of referencing nonlocal variables is to reference variables that are local in the :ref:`transformed space<Transforms>` for a given transverse dimension.  This is done using ``<operator>`` elements.
-    
-.. _OperatorElement:
-
-There are three kinds of ``<operator>`` elements.  The first is denoted with a ``kind="functions"`` attribute, and contains a 'CDATA' block that will be executed in the order that it is defined.  This is useful when you wish to calculate functions that do not depend on the transverse dimensions.  Defining these along with the main equations of motion causes them to be recalculated separately for each point.  The second kind of ``<operator>`` element is used to define an operation in a tr [...]
-
-Example syntax::
-
-    <operator kind="functions">
-      <![CDATA[
-      f = cos(t);
-      ]]>
-    </operator>
-    
-.. _OperatorNamesElement:
-
-The second kind of operator element defines a list of operators in an ``<operator_names>`` element.  The basis of these operators defaults to the transform space unless a different basis is specified using the ``basis`` attribute.  These operators must then be defined in a 'CDATA' block, using any :ref:`dependencies<Dependencies>` as normal.  If the operators constant across the integration, then the attribute ``constant="yes"`` should be set, otherwise the ``constant="no"`` attribute en [...]
-
-Operators of this second kind have the ``kind="IP"`` or ``kind="EX"`` attribute, standing for 'interaction picture' and 'explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by allowing larger timesteps, but have two important restrictions.  **Use of IP operators without understanding these restrictions can lead to incorre [...]
-
-Example syntax::
-
-    <operator kind="ex" constant="yes">
-      <operator_names>T</operator_names>
-      <![CDATA[
-        T = -0.5*hbar/M*ky*ky;
-      ]]>
-    </operator>
-
-The third kind of operator element is used to define an integration along a transverse dimension.  This kind of evolution is called "cross-propagation", and is described briefly in the examples 'tla.xmds', 'tla_sic.xmds' and 'sine_cross.xmds'.  This class of equations have a subset of vectors that have an initial condition on one side of a transverse dimension, and a differential equation defined in that dimension, and as such, this kind of operator element has much of the structure of a [...]
-    
-An operator element with the ``kind="cross_propagation"`` attribute must specify the transverse dimension along which the integration would proceed with the ``propagation_dimension`` attribute.  It must also specify its own :ref:`<integration_vectors><IntegrationVectorsElement>` element, its own ``<operators>`` elements (of the second kind), and may define an optional :ref:`<dependencies><Dependencies>` element.  The algorithm to be used for the transverse integration is specified by the [...]
-    
-.. _BoundaryConditionElement:
-
-The boundary conditions are specified by a ``<boundary_conditions>`` element, which requires the ``kind="left"`` or ``kind="right"`` attribute to specify on which side of the grid that the boundary conditions are specified.  The boundary conditions for the ``<integration_vectors>`` are then specified in a 'CDATA' block, which may refer to vectors in an optional :ref:`<dependencies><Dependencies>` element that can be contained in the ``<boundary_conditions>`` element.
-
-Example syntax::
-
-    <operator kind="cross_propagation" algorithm="RK4" propagation_dimension="t">
-      <integration_vectors>cross</integration_vectors>
-      <dependencies>constants</dependencies>
-      <boundary_condition kind="left">
-        <![CDATA[
-          v = 1.0;
-          w = 1.0;
-        ]]>
-      </boundary_condition>
-  
-      <operator kind="ip" constant="yes">
-        <operator_names>L</operator_names>
-        <![CDATA[
-          L = i;
-        ]]>
-      </operator>
-  
-      <![CDATA[
-        dv_dt = i*v;
-        dw_dt = L[w]; 
-      ]]>
-    </operator>
-
-
-.. _Algorithms:
-
-Algorithms
-----------
-
-The stability, efficiency and even convergence of a numerical integration can depend on the method.  Due to the varying properties of different sets of equations, it is impossible to define the best method for all equations, so XMDS provides an option to use different algorithms.  These include fixed step algorithms, which divide the integration region into equal steps, and adaptive stepsize algorithms, which attempt to estimate the error in the simulation in order to choose an appropria [...]
-
-For the purposes of the descriptions below, we will assume that we are considering the following set of coupled differential equations for the vector of variables :math:`\mathbf{x}(t)`:
-
-.. math::
-
-    \frac{d x_j}{dt} = f_j(\mathbf{x}(t),t)
-
-.. _SI:
-
-SI and SIC algorithms
-~~~~~~~~~~~~~~~~~~~~~
-
-The SI algorithm is a semi-implicit fixed-step algorithm that finds the increment of the vector by solving
-
-.. math::
-
-    x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t+\frac{\Delta t}{2}),t+\frac{\Delta t}{2}\right) \;\Delta t
-
-using a simple iteration to find the values of the vector at the midpoint of the step self-consistently.  The number of iterations can be set using the ``iterations`` attribute, and it defaults to ``iterations="3"``.  The choice of ``iterations="1"`` is therefore fully equivalent to the Euler algorithm, where
-
-.. math::
-
-    x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t),t\right) \;\Delta t.
-
-The Euler algorithm is the only safe algorithm for direct integration of :ref:`jump-based Poisson processes<jumpNoise>`.  Efficient numerical solution of those types of equations is best done via a process of triggered filters, which will be described in the :ref:`AdvancedTopics` section.  Integrating using the Euler algorithm computes the Ito integral, as opposed to the Stratonovich integral, which all the other algorithms compute.
-    
-When SI integration is used in conjunction with SI cross-propagation, a slight variant of the SI algorithm can be employed where the integration in both directions is contained within the iteration process.  This is activated by using ``algorithm="SIC"`` rather than ``algorithm="SI"``.
-
-The SI algorithm is correct to second order in the step-size for deterministic equations, and first order in the step-size for Stratonovich stochastic equations with Wiener noises.  This makes it the highest order stochastic algorithm in XMDS, although there are many sets of equations that integrate more efficiently with lower order algorithms.  When called with the ``iterations="1"`` option (the Euler algorithm), it is correct to first order in the step-size for deterministic equations, [...]
-
-
-.. _RK4:
-
-Runge-Kutta algorithms
-~~~~~~~~~~~~~~~~~~~~~~
-
-Runge-Kutta algorithms are the workhorse of numerical integration, and XMDS employs two fixed step versions: ``algorithm="RK4"``, which is correct to fourth-order in the step size, and ``algorithm="RK9"``, which is correct to ninth order in the step size.  It must be strongly noted that a higher order of convergence does not automatically mean a superior algorithm.  RK9 requires several times the memory of the RK4 algorithm, and each step requires significantly more computation.
-
-All Runge-Kutta algorithms are convergent for Stratonovich stochastic equations at the order of the square root of the step-size.  This 'half-order' convergence may seem very weak, but for some classes of stochastic equation this improves up to one half of the deterministic order of convergence.  Also, the convergence of some stochastic equations is limited by the 'deterministic part', which can be improved dramatically by using a higher order Runge-Kutta method.
-
-
-.. _ARK45:
-
-Adaptive Runge-Kutta algorithms
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Fixed step integrators can encounter two issues.  First, as the equations or parameters of a simulation are changed, the minimum number of steps required to integrate it may change.  This means that the convergence must be re-tested multiple times for each set of parameters, as overestimating the number of steps required to perform an integration to a specified error tolerance can be very inefficient. Second, even if the minimum acceptable number of steps required is known for a given si [...]
-algorithms get around this problem by testing the convergence during the integration, and adjusting the step-size until it reaches some target tolerance.
-
-XMDS employs two adaptive step-size algorithms based on 'embedded Runge-Kutta' methods.  These are Runge-Kutta methods that can output multiple variables that have different convergence.  The difference between the higher-order and the lower-order solutions gives an estimate of the error in each step, which can then be used to estimate an appropriate size for the next step.  We use ``algorthim="ARK45"``, which contains fourth and fifth order solutions, and ``algorthim=ARK89``, which cont [...]
-
-All adaptive stepsize algorithms require a ``tolerance`` attribute, which must be a positive real number that defines the allowable error per step.  It is also possible to specify a ``max_iterations`` attribute, which is a positive integer that stops the integrator from trying too many times to find an acceptable stepsize.  The integrator will abort with an error if the number of attempts for a single step exceeds the maximum specified with this attribute.
-
-As all Runge-Kutta solutions have equal order of convergence for stochastic equations, *if the step-size is limited by the stochastic term then the step-size estimation is entirely unreliable*.  Adaptive Runge-Kutta algorithms are therefore not appropriate for stochastic equations.
-
-
-.. _FiltersElement:
-
-Filters element
----------------
-
-:ref:`Filter elements<FilterElement>` are used inside :ref:`sequence elements<SequenceElement>` to execute arbitrary code, or make discontinuous changes in the vectors.  Sometimes it is desirable to perform a filter element at the beginning or end of each step in an integration.  This can be done by placing ``<filter>`` elements in a ``<filters>`` element within the ``<integrate>`` element.  The ``<filters>`` element specifies whether the filters are to be executed at the end of each ste [...]
-is then executed in the order found in the ``<filters>`` element.
-
-Example syntax::
-
-    <integrate algorithm="ARK45" interval="100000.0" steps="10000000" tolerance="1e-8">
-      <samples>5000 100</samples>
-      <filters where="step end">
-        <filter>
-            <dependencies>vector1 vector2</dependencies>
-            <![CDATA[
-                x = 1;
-                y *= ynorm;
-                ]]>
-        </filter>
-      </filters>
-
-      <operators>
-        <integration_vectors>vector1</integration_vectors>
-        <![CDATA[
-        dx_dt = alpha;
-        dy_dt = beta*y;
-        ]]>
-      </operators>
-    </integrate>
-
-
-.. _BreakpointElement:
-
-Breakpoint element
-==================
-
-The ``<breakpoint>`` element is used to output the full state of one or more vectors.  Unlike sampled output, it executes immediately rather than at the end of a program, and can therefore be used to examine the current state of an ongoing simulation.  The vectors to be output are defined via a :ref:`<dependencies><Dependencies>` element, and the basis is chosen by the ``basis`` attribute supplied to that ``<dependencies>`` element, as usual.  A single ``<breakpoint>`` element must only  [...]
-
-Example syntax::
-
-    <breakpoint filename="groundstate_break.xsil" format="hdf5">
-      <dependencies basis="ky">wavefunction</dependencies>
-    </breakpoint>
-
-.. _OutputElement:
-
-Output element
-==============
-
-The ``<output>`` element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different ``<sampling_group>`` element inside the output element.  The ``<output>`` element may contain any number of ``<sampling_group>`` elements.  The format of the outp [...]
-
-The ``<samples>`` inside ``<integrate>`` elements defines a string of integers, with exactly one for each ``<sampling_group>`` element.  During that integration, the variables described in each ``<sampling_group>`` element will be sampled and stored that number of times.  
-
-
-.. _SamplingGroupElement:
-
-Sampling Group Element
-----------------------
-
-A ``<sampling_group>`` element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a ``<moments>`` element, just like the ``<components>`` element of a vector.  They are defined with a ':ref:`CDATA<XMDSCSyntax>`' block, accessing any components of vectors and computed vectors that are defined in a :ref:`<dependencies><Dependencies>` element, also just like a vector.  :ref:`Computed ve [...]
-    
-The basis of the output is specified by the ``basis`` attribute.  This overrides any basis specification in the ``<dependencies>`` element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding a number in parentheses after that dimension in the basis string, e.g. ``basis="x y(32) kz(64)"``.  If the number is zero, then that [...]
-    
-The ``initial_sample`` attribute, which must be "yes" or "no", determines whether the moment group will be sampled before any integration occurs.
-
-Example syntax::
-
-    <output format="hdf5" filename="SimOutput.xsil">
-      <sampling_group basis="x y" initial_sample="yes">
-        <computed_vector name="filter3" dimensions="" type="complex">
-          <components>sparemomentagain</components>
-          <evaluation>
-            <dependencies basis="kx ky">integrated_u main</dependencies>
-            <![CDATA[
-              sparemomentagain = mod2(u);
-            ]]>
-          </evaluation>
-        </computed_vector>
-        <operator kind="ex" constant="no">
-          <operator_names>L</operator_names>
-          <![CDATA[
-            L = -T*kx*kx/mu;
-          ]]>
-        </operator>
-        <moments>amp ke</moments>
-        <dependencies>main filter1</dependencies>
-        <![CDATA[
-          amp = mod2(u + moment);
-          ke = mod2(L[u]);
-        ]]>
-      </sampling_group>
-
-      <sampling_group basis="kx(0) ky(64)" initial_sample="yes">
-        <moments>Dens_P </moments>
-        <dependencies>fields </dependencies>
-        <![CDATA[
-          Dens_P = mod2(psi);
-        ]]>
-      </sampling_group>
-    </output>
-
-
-.. _XMDSCSyntax:
-
-XMDS-specific C syntax
-======================
-
-Sampling complex numbers can be written more efficiently using:
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        _SAMPLE_COMPLEX(W);
-      ]]>
-
-which is short for
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        WR = W.Re();
-        WI = W.Im();
-      ]]>
-
-Various properties of dimensions are available.  For example, for a dimension called ``x``:
-
-* The number of points is accessible with the variable ``_lattice_x``,
-* The minimum range of that dimension is ``_min_x``,
-* The maximum range of that dimension is ``_max_x``,
-* The step size of a dimension is ``dx``, and if it is constant, also available using ``_dx``, but note that the latter does not include the effect of any ``volumePrefix`` you may have set!
diff --git a/admin/userdoc-source/reference_index.rst b/admin/userdoc-source/reference_index.rst
deleted file mode 100644
index bc1fd43..0000000
--- a/admin/userdoc-source/reference_index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Reference section
-=================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-   
-   reference_installation_and_configuration
- 
-   reference_usefulXMLSyntax
-
-   reference_schema
-
-   reference_elements
diff --git a/admin/userdoc-source/reference_installation_and_configuration.rst b/admin/userdoc-source/reference_installation_and_configuration.rst
deleted file mode 100644
index ad55368..0000000
--- a/admin/userdoc-source/reference_installation_and_configuration.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-.. _ReferenceConfigurationInstallationRuntime:
-
-Configuration, installation and runtime options
-===============================================
-
-Running the 'xmds2' program with the option '--help', gives several options that can change its behaviour at runtime.  These include:
-  * '-o' or '--output', which overrides the name of the output file to be generated
-  * '-n' or '--no-compile', which generates the C code for the simulation, but does not try to compile it
-  * '-v' or '--verbose', which gives verbose output about compilation flags.
-  * '-g' or '--debug', which compiles the simulation in debug mode (compilation errors refer to lines in the source, not the .xmds file). This option implies '-v'. This option is mostly useful when debugging XMDS code generation.
-  * '--waf-verbose', which makes ``waf`` be very verbose when configuring XMDS or compiling simulations.  This option is intended for developer use only to aid in diagnosing problems with ``waf``.
-
-It also has commands to configure XMDS2 and recheck the installation.  If your program requires extra paths to compile, you can configure XMDS2 to include those paths by default.  Simply use the command
-
-.. code-block:: bash
-
-    $ xmds2 --configure --include-path /path/to/include --lib-path /path/to/lib 
-
-Alternatively, you can set the ``CXXFLAGS`` or ``LINKFLAGS`` environment variables before calling ``xmds2 --reconfigure``.  For example, to pass the compiler flag ``-pedantic`` and the link flag ``-lm`` using the bash shell, use:
-
-.. code-block:: bash
-
-    $ export CXXFLAGS="-pedantic"
-    $ export LINKFLAGS="-lm" 
-    $ xmds2 --reconfigure``
-    
-This method can also be used to change the default compilers for standard and parallel processing, using the CXX and MPICXX flags respectively.
-
-Running XMDS2 with the '--configure' option also searches for packages that have been installed since you last installed or configured XMDS2.  If you wish to run 'xmds2 --configure' with the same extra options as last time, simply use the command:
-
-.. code-block:: bash
-
-    $ xmds2 --reconfigure
-
-A detailed log of the checks is saved in the file '~/.xmds/waf_configure/config.log'.  This can be used to identify issues with packages that XMDS2 is not recognised, but you think that you have successfully installed on your system.
-
-
-
diff --git a/admin/userdoc-source/reference_schema.rst b/admin/userdoc-source/reference_schema.rst
deleted file mode 100644
index 88b3421..0000000
--- a/admin/userdoc-source/reference_schema.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-.. _ReferenceSchema:
-
-****************
-XMDS2 XML Schema
-****************
-
-
-There are many, many XML tags that can make up an XMDS2 script. Most of them are optional, or have default values if not specified. It is, however, useful to know which elements are possible, and their position and relationship to other elements in the script. Shown below is the full XML tree for XMDS2, which shows all possible elements and their position in the tree. An ellipsis (...) outside an element indicates the element above can be repeated indefinitely, and an ellipsis inside an  [...]
-
-The syntax <element /> can be used for lowest-level elements that have attributes but no content, and are shorthand for <element> </element>. This shorthand notation can also be used for elements which can only contain the content "yes" or "no"; in this case the presence of <element /> is equivalent to <element> yes </element>, and the absence of such an element is equivalent to <element> no </element>
-
-The possible attributes and attribute values for each element are not shown; see the individual entries in the Reference section for details.
-
-
-.. parsed-literal::
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <:ref:`simulation <SimulationElement>` xmds-version="2">
-      <:ref:`name <NameElement>`> <:ref:`/name <NameElement>`>
-      <:ref:`author <AuthorElement>`> <:ref:`author <AuthorElement>`>
-      <:ref:`description <DescriptionElement>`> <:ref:`/description <DescriptionElement>`>
-      
-      <:ref:`features <FeaturesElement>`>
-        <:ref:`arguments <ArgumentsElement>`>
-          <:ref:`argument <ArgumentElement>` />
-          <:ref:`argument <ArgumentElement>` />
-          ...
-        <:ref:`/arguments <ArgumentsElement>`>
-        <:ref:`auto_vectorise <AutoVectorise>` />
-        <:ref:`benchmark <Benchmark>` />
-        <:ref:`bing <Bing>` />
-        <:ref:`cflags <CFlags>`> <:ref:`/cflags <CFlags>`>
-        <:ref:`chunked_output <ChunkedOutput>` />
-        <:ref:`diagnostics <Diagnostics>` />
-        <:ref:`error_check <ErrorCheck>` />
-        <:ref:`halt_non_finite <HaltNonFinite>` />
-        <:ref:`fftw <FFTW>` />
-        <:ref:`globals <Globals>`> <:ref:`/globals <Globals>`>
-        <:ref:`openmp <OpenMP>` />
-        <:ref:`precision <Precision>`> <:ref:`/precision <Precision>`>
-        <:ref:`validation <Validation>` />
-      <:ref:`/features <FeaturesElement>`>
-
-      <:ref:`driver <DriverElement>` />
-  
-      <:ref:`geometry <GeometryElement>`>
-        <:ref:`propagation_dimension <PropagationDimensionElement>`> <:ref:`/propagation_dimension <PropagationDimensionElement>`>
-        <:ref:`transverse_dimensions <TransverseDimensionsElement>`>
-          <:ref:`dimension <DimensionElement>` />
-          <:ref:`dimension <DimensionElement>` />
-          ...
-        <:ref:`/transverse_dimensions <TransverseDimensionsElement>`>
-      <:ref:`/geometry <GeometryElement>`>
-  
-      <:ref:`vector <VectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-        <:ref:`initialisation <InitialisationElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <:ref:`filename <FilenameElement>`>
-          <![:ref:`CDATA <InitialisationElement>` [
-          ]]>
-        <:ref:`/initialisation <InitialisationElement>`>
-      <:ref:`/vector <VectorElement>`>
-
-      <:ref:`vector <VectorElement>`> ... <:ref:`/vector <VectorElement>`>
-      <:ref:`vector <VectorElement>`> ... <:ref:`/vector <VectorElement>`>
-      ...
-
-      <:ref:`computed_vector <ComputedVectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-        <:ref:`evaluation <EvaluationElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <![:ref:`CDATA <InitialisationElement>` [
-          ]]>
-        <:ref:`/evaluation <EvaluationElement>`>
-      <:ref:`/computed_vector <ComputedVectorElement>`>
-
-      <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-      <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-      ...
-
-      <:ref:`noise_vector <NoiseVectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-      <:ref:`/noise_vector <NoiseVectorElement>`>
-
-      <:ref:`noise_vector <NoiseVectorElement>`> ... <:ref:`/noise_vector <NoiseVectorElement>`>
-      <:ref:`noise_vector <NoiseVectorElement>`> ... <:ref:`/noise_vector <NoiseVectorElement>`>
-      ...
-
-      <:ref:`sequence <SequenceElement>`>
-
-        <:ref:`filter <FilterElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <![:ref:`CDATA <XMDSCSyntax>` [
-          ]]>
-        <:ref:`/filter <FilterElement>`>
-
-        <:ref:`integrate <IntegrateElement>`>
-          <:ref:`samples <SamplesElement>`> <:ref:`/samples <SamplesElement>`>
-
-          <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-
-          <:ref:`filters <FiltersElement>`>
-            <:ref:`filter <FilterElement>`> ... <:ref:`/filter <FilterElement>`>
-            <:ref:`filter <FilterElement>`> ... <:ref:`/filter <FilterElement>`>
-            ...
-          <:ref:`/filters <FiltersElement>`>
-      
-          <:ref:`operators <OperatorsElement>`>
-
-            <:ref:`operator <OperatorElement>`>
-              <:ref:`boundary_condition <BoundaryConditionElement>`>
-                <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-                <![:ref:`CDATA <XMDSCSyntax>` [
-                ]]>
-              <:ref:`/boundary_condition <BoundaryConditionElement>`>
-              <:ref:`operator_names <OperatorNamesElement>`> <:ref:`/operator_names <OperatorNamesElement>`>
-              <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-              <![:ref:`CDATA <XMDSCSyntax>` [
-              ]]>
-            <:ref:`/operator <OperatorElement>`>
-
-            <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>
-            <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>
-            ...
-
-            <:ref:`integration_vectors <IntegrationVectorsElement>`> <:ref:`/integration_vectors <IntegrationVectorsElement>`>
-            <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-            <![:ref:`CDATA <XMDSCSyntax>` [
-            ]]>
-
-          <:ref:`/operators <OperatorsElement>`>
-
-        <:ref:`/integrate <IntegrateElement>`>
-    
-        <:ref:`breakpoint <BreakpointElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-        <:ref:`/breakpoint <BreakpointElement>`>
-
-      <:ref:`/sequence <SequenceElement>`>
-  
-      <:ref:`output <OutputElement>`>
-        <:ref:`sampling_group <SamplingGroupElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <:ref:`moments <SamplingGroupElement>`> <:ref:`/moments <SamplingGroupElement>`>
-          <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>       
-          <![:ref:`CDATA <XMDSCSyntax>` [
-          ]]>
-        <:ref:`/sampling_group <SamplingGroupElement>`>
-
-        <:ref:`sampling_group <SamplingGroupElement>`> ... <:ref:`/sampling_group <SamplingGroupElement>`>
-        <:ref:`sampling_group <SamplingGroupElement>`> ... <:ref:`/sampling_group <SamplingGroupElement>`>
-        ...
-
-      <:ref:`/output <OutputElement>`>
-
-    <:ref:`/simulation <SimulationElement>`>
diff --git a/admin/userdoc-source/reference_usefulXMLSyntax.rst b/admin/userdoc-source/reference_usefulXMLSyntax.rst
deleted file mode 100644
index faf663d..0000000
--- a/admin/userdoc-source/reference_usefulXMLSyntax.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. _ReferenceUsefulXMLSyntax:
-
-Useful XML Syntax
-=================
-
-Standard XML placeholders can be used to simplify some scripts.  For example, the following (abbreviated) code ensures that the limits of a domain are symmetric.
-
-.. code-block:: xmds2
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <!DOCTYPE simulation [
-    <!ENTITY Npts    "64">
-    <!ENTITY L      "3.0e-5">
-    ]>
-      <simulation xmds-version="2">
-      
-        . . .
-        
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-              <dimension name="x" lattice="&Npts;"  domain="(-&L;, &L;)" />
-            </transverse_dimensions>
-         </geometry>
diff --git a/admin/userdoc-source/support/preview.sty b/admin/userdoc-source/support/preview.sty
deleted file mode 100644
index 7a59afa..0000000
--- a/admin/userdoc-source/support/preview.sty
+++ /dev/null
@@ -1,381 +0,0 @@
-%%
-%% This is file `preview.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% preview.dtx  (with options: `style')
-%% preview.dtx  (with options: `style,active')
-%% 
-%% IMPORTANT NOTICE:
-%% 
-%% For the copyright see the source file.
-%% 
-%% Any modified versions of this file must be renamed
-%% with new filenames distinct from preview.sty.
-%% 
-%% For distribution of the original source see the terms
-%% for copying and modification in the file preview.dtx preview.dtx.
-%% 
-%% This generated file may be distributed as long as the
-%% original source files, as listed above, are part of the
-%% same distribution. (The sources need not necessarily be
-%% in the same archive or directory.)
-%%    The preview style for extracting previews from LaTeX documents.
-%%    Developed as part of AUCTeX <URL:http://www.gnu.org/software/auctex>.
-\NeedsTeXFormat{LaTeX2e} \def\reserved at a #1#2$#3:
-#4${\xdef#1{\reserved at c #2#4 $}} \def\reserved at c #1 #2${#1}
-\begingroup \catcode`\_=12
-\reserved at a\pr at version $Name: release_11_85 $ \ifx\pr at version\@empty
-\reserved at a\pr at version CVS-$Revision: 1.124 $ \endgroup \else
-  \def\next release_{} \lccode`\_=`.
-  \edef\next{\lowercase{\endgroup
-    \def\noexpand\pr at version{\expandafter\next\pr at version}}} \next \fi
-\reserved at a\next $Date: 2008/02/03 14:53:31 $
-\edef\next{\noexpand\ProvidesPackage{preview}%
-  [\next\space \pr at version\space (AUCTeX/preview-latex)]}
-\next
-\let\ifPreview\iffalse
-\let\preview at delay=\@gobble
-\let\pr at advise=\@gobbletwo
-\long\def\pr at advise@ship#1#2#3{}
-\def\pr at loadcfg#1{\InputIfFileExists{#1.cfg}{}{}}
-\DeclareOption{noconfig}{\let\pr at loadcfg=\@gobble}
-\long\def\pr at addto@front#1#2{%
-  \toks@{#2}\toks@\expandafter{\the\expandafter\toks@#1}%
-  \xdef#1{\the\toks@}}
-\DeclareOption{active}{%
-  \let\ifPreview\iftrue
-  \def\pr at advise#1{%
-    \expandafter\pr at adviseii\csname pr@\string#1\endcsname#1}%
-  \long\def\pr at advise@ship#1#2#3{\pr at advise#1{\pr at protect@ship{#2}{#3}}}%
-  \let\preview at delay\@firstofone}
-\long\def\pr at adviseii#1#2#3{\preview at delay{%
-  \ifx#1\relax \let#1#2\fi
-  \toks@{#3#1}%
-  \ifx\@undefined\protected \else \protected\fi
-  \long\edef#2{\the\toks@}}}
-\DeclareOption{delayed}{%
-  \ifPreview \def\preview at delay{\AtBeginDocument}\fi
-}
-\newif\ifpr at fixbb
-\pr at fixbbfalse
-\DeclareOption{psfixbb}{\ifPreview%
-  \pr at fixbbtrue
-  \newbox\pr at markerbox
-  \setbox\pr at markerbox\hbox{\special{psfile=/dev/null}}\fi
-}
-\let\pr at graphicstype=\z@
-\DeclareOption{dvips}{%
-  \let\pr at graphicstype\@ne
-  \preview at delay{\AtBeginDvi{%
-      \special{!/preview at version(\pr at version)def}
-      \special{!userdict begin/preview-bop-level 0 def%
-      /bop-hook{/preview-bop-level dup load dup 0 le{/isls false def%
-          /vsize 792 def/hsize 612 def}if 1 add store}bind def%
-      /eop-hook{/preview-bop-level dup load dup 0 gt{1 sub}if
-        store}bind def end}}}}
-\DeclareOption{pdftex}{%
-  \let\pr at graphicstype\tw@}
-\begingroup
-\catcode`\*=11
-\@firstofone{\endgroup
-\DeclareOption{displaymath}{%
-  \preview at delay{\toks@{%
-      \pr at startbox{\noindent$$%
-        \aftergroup\pr at endbox\@gobbletwo}{$$}\@firstofone}%
-    \everydisplay\expandafter{\the\expandafter\toks@
-      \expandafter{\the\everydisplay}}}%
-  \pr at advise@ship\equation{\begingroup\aftergroup\pr at endbox
-    \def\dt at ptrue{\m at ne=\m at ne}\noindent}%
-    {\endgroup}%
-  \pr at advise@ship\equation*{\begingroup\aftergroup\pr at endbox
-    \def\dt at ptrue{\m at ne=\m at ne}\noindent}%
-    {\endgroup}%
-  \PreviewOpen[][\def\dt at ptrue{\m at ne=\m at ne}\noindent#1]\[%
-  \PreviewClose\]%
-  \PreviewEnvironment[][\noindent#1]{eqnarray}%
-  \PreviewEnvironment[][\noindent#1]{eqnarray*}%
-  \PreviewEnvironment{displaymath}%
-}}
-\begingroup
-\def\next#1#2{%
-  \endgroup
-  \DeclareOption{textmath}{%
-    \PreviewEnvironment{math}%
-    \preview at delay{\ifx#1\@undefined \let#1=$%$
-      \fi\catcode`\$=\active
-      \ifx\xyreuncatcodes\@undefined\else
-        \edef\next{\catcode`@=\the\catcode`@\relax}%
-        \makeatother\expandafter\xyreuncatcodes\next\fi}%
-    \pr at advise@ship\(\pr at endaftergroup{}% \)
-    \pr at advise@ship#1{\@firstoftwo{\let#1=#2%
-        \futurelet\reserved at a\pr at textmathcheck}}{}}%
-  \def\pr at textmathcheck{\expandafter\pr at endaftergroup
-    \ifx\reserved at a#1{#2#2}\expandafter\@gobbletwo\fi#2}}
-\lccode`\~=`\$
-\lowercase{\expandafter\next\expandafter~}%
-  \csname pr@\string$%$
-  \endcsname
-\DeclareOption{graphics}{%
-  \PreviewMacro[*[[!]{\includegraphics}%]]
-}
-\def\pr at floatfix#1#2{\ifx#1#2%
-  \ifx#1\@undefined\else
-  \PackageWarningNoLine{preview}{%
-Your document class has a bad definition^^J
-of \string#1, most likely^^J
-\string\let\string#1=\string#2^^J
-which has now been changed to^^J
-\string\def\string#1{\string#2}^^J
-because otherwise subsequent changes to \string#2^^J
-(like done by several packages changing float behaviour)^^J
-can't take effect on \string#1.^^J
-Please complain to your document class author}%
-  \def#1{#2}\fi\fi}
-\begingroup
-\def\next#1#2{\endgroup
-  \DeclareOption{floats}{%
-    \pr at floatfix\endfigure\end at float
-    \pr at floatfix\endtable\end at float
-    \pr at floatfix#1\end at dblfloat
-    \pr at floatfix#2\end at dblfloat
-    \PreviewSnarfEnvironment[![]{@float}%]
-    \PreviewSnarfEnvironment[![]{@dblfloat}%]
-  }}
-\expandafter\next\csname endfigure*\expandafter\endcsname
-  \csname endtable*\endcsname
-\DeclareOption{sections}{%
-  \PreviewMacro[!!!!!!*[[!]{\@startsection}%]]
-  \PreviewMacro[*[[!]{\chapter}%]]
-}
-\DeclareOption*
-   {\InputIfFileExists{pr\CurrentOption.def}{}{\OptionNotUsed}}
-\def\PreviewMacro{\@ifstar\pr at starmacro\pr at macro}
-\long\def\pr at domacro#1#2{%
-   \long\def\next##1{#2}%
-   \pr at callafter\next#1]\pr at endparse}
-\newcommand\pr at macro[1][]{%
-   \toks@{\pr at domacro{#1}}%
-   \long\edef\next[##1]##2{%
-    \noexpand\pr at advise@ship{##2}{\the\toks@{##1\noexpand\pr at endbox}}{}}%
-   \@ifnextchar[\next\pr at macroii}
-\def\pr at macroii{\next[##1]}
-\long\def\pr at endmacro#1{#1\pr at endbox}
-\long\def\pr at protect@domacro#1#2{\pr at protect{%
-    \long\def\next##1{#2}%
-    \pr at callafter\next#1]\pr at endparse}}
-\newcommand\pr at starmacro[1][]{\toks@{\pr at protect@domacro{#1}}%
-    \long\edef\next[##1]##2{%
-      \noexpand\pr at advise##2{\the\toks@{##1}}}%
-    \@ifnextchar[\next{\next[]}}
-\def\PreviewOpen{\@ifstar\pr at starmacro\pr at open}
-\newcommand\pr at open[1][]{%
-   \toks@{\pr at domacro{#1}}%
-   \long\edef\next[##1]##2{%
-     \noexpand\pr at advise##2{\begingroup
-     \noexpand\pr at protect@ship
-        {\the\toks@{\begingroup\aftergroup\noexpand\pr at endbox##1}}%
-        {\endgroup}}}%
-   \@ifnextchar[\next\pr at macroii}
-\def\PreviewClose{\@ifstar\pr at starmacro\pr at close}
-\newcommand\pr at close[1][]{%
-  \toks@{\pr at domacro{#1}}%
-  \long\edef\next[##1]##2{%
-   \noexpand\pr at advise{##2}{\the\toks@{##1\endgroup}}}%
-   \@ifnextchar[\next\pr at macroii}
-\def\PreviewEnvironment{\@ifstar\pr at starenv\pr at env}
-\newcommand\pr at starenv[1][]{\toks@{\pr at starmacro[{#1}]}%
-  \long\edef\next##1##2{%
-    \the\toks@[{##2}]##1}%
-  \begingroup\pr at starenvii}
-\newcommand\pr at starenvii[2][]{\endgroup
-  \expandafter\next\csname#2\endcsname{#1}%
-  \expandafter\pr at starmacro\csname end#2\endcsname}
-\newcommand\pr at env[1][]{%
-   \toks@{\pr at domacro{#1}}%
-   \long\edef\next[##1]##2{%
-   \noexpand\expandafter\noexpand\pr at advise@ship
-     \noexpand\csname##2\noexpand\endcsname{\the\toks@
-      {\begingroup\aftergroup\noexpand\pr at endbox##1}}{\endgroup}}%
-   \@ifnextchar[\next\pr at macroii %]
- }
-\newcommand{\PreviewSnarfEnvironment}[2][]{%
-  \expandafter\pr at advise
-   \csname #2\endcsname{\pr at snarfafter{#1}}%
- \expandafter\pr at advise
-   \csname end#2\endcsname{\pr at endsnarf}}
-\let\pr at ship@start\@empty
-\let\pr at ship@end\@empty
-\newenvironment{preview}{\ignorespaces}{\ifhmode\unskip\fi}
-\newenvironment{nopreview}{\ignorespaces}{\ifhmode\unskip\fi}
-\ProcessOptions\relax
-\ifPreview\else\expandafter\endinput\fi
-%%    The preview style for extracting previews from LaTeX documents.
-%%    Developed as part of AUCTeX <URL:http://www.gnu.org/software/auctex>.
-\newif\ifpr at outer
-\pr at outertrue
-\newcount\pr at snippet
-\global\pr at snippet=1
-\def\pr at protect{\ifx\protect\@typeset at protect
-  \ifpr at outer \expandafter\expandafter\expandafter
-     \@secondoftwo\fi\fi\@gobble}
-\def\pr at protect@ship{\pr at protect{\@firstoftwo\pr at startbox}%
-   \@gobbletwo}
-\def\pr at insert{\begingroup\afterassignment\pr at insertii\count@}
-\def\pr at insertii{\endgroup\setbox\pr at box\vbox}
-\def\pr at mark{{\afterassignment}\toks@}
-\def\pr at marks{{\aftergroup\pr at mark\afterassignment}\count@}
-\newbox\pr at box
-\long\def\pr at startbox#1#2{%
-  \ifpr at outer
-    \toks@{#2}%
-    \edef\pr at cleanup{\the\toks@}%
-    \setbox\pr at box\vbox\bgroup
-    \break
-    \pr at outerfalse\@arrayparboxrestore
-    \let\insert\pr at insert
-    \let\mark\pr at mark
-    \let\marks\pr at marks
-    \expandafter\expandafter\expandafter
-    \pr at ship@start
-    \expandafter\@firstofone
-  \else
-     \expandafter \@gobble
-  \fi{#1}}
-\def\pr at endbox{%
-   \let\reserved at a\relax
-   \ifvmode \edef\reserved at a{\the\everypar}%
-      \ifx\reserved at a\@empty\else
-            \dimen@\prevdepth
-            \noindent\par
-            \setbox\z@\lastbox\unskip\unpenalty
-            \prevdepth\dimen@
-            \setbox\z@\hbox\bgroup\penalty-\maxdimen\unhbox\z@
-              \ifnum\lastpenalty=-\maxdimen\egroup
-              \else\egroup\box\z@ \fi\fi\fi
-   \ifhmode \par\unskip\setbox\z@\lastbox
-     \nointerlineskip\hbox{\unhbox\z@\/}%
-   \else \unskip\unpenalty\unskip \fi
-   \egroup
-   \setbox\pr at box\vbox{%
-       \baselineskip\z at skip \lineskip\z at skip \lineskiplimit\z@
-       \@begindvi
-       \nointerlineskip
-       \splittopskip\z at skip\setbox\z@\vsplit\pr at box to\z@
-       \unvbox\z@
-       \nointerlineskip
-       %\color at setgroup
-       \box\pr at box
-       %\color at endgroup
-     }%
-   \pr at ship@end
-   {\let\protect\noexpand
-   \voffset=-\ht\pr at box
-   \hoffset=\z@
-   \c at page=\pr at snippet
-   \pr at shipout
-   \ifpr at fixbb\hbox{%
-     \dimen@\wd\pr at box
-     \@tempdima\ht\pr at box
-     \@tempdimb\dp\pr at box
-     \box\pr at box
-     \llap{\raise\@tempdima\copy\pr at markerbox\kern\dimen@}%
-     \lower\@tempdimb\copy\pr at markerbox}%
-   \else \box\pr at box \fi}%
-   \global\advance\pr at snippet\@ne
-   \pr at cleanup
-}
-\let\pr at shipout=\shipout
-\def\shipout{\deadcycles\z@\bgroup\setbox\z@\box\voidb at x
-  \afterassignment\pr at shipoutegroup\setbox\z@}
-\def\pr at shipoutegroup{\ifvoid\z@ \expandafter\aftergroup\fi \egroup}
-\def\pr at parseit#1{\csname pr at parse#1\endcsname}
-\let\pr at endparse=\@percentchar
-\def\next#1{%
-\def\pr at callafter{%
-  \afterassignment\pr at parseit
-  \let#1= }}
-\expandafter\next\csname pr at parse\pr at endparse\endcsname
-\long\expandafter\def\csname pr at parse*\endcsname#1\pr at endparse#2{%
-  \begingroup\toks@{#1\pr at endparse{#2}}%
-  \edef\next##1{\endgroup##1\the\toks@}%
-  \@ifstar{\next{\pr at parse@*}}{\next\pr at parseit}}
-\long\expandafter\def\csname pr at parse[\endcsname#1\pr at endparse#2{%
-  \begingroup\toks@{#1\pr at endparse{#2}}%
-  \edef\next##1{\endgroup##1\the\toks@}%
-  \@ifnextchar[{\next\pr at bracket}{\next\pr at parseit}}
-\long\def\pr at bracket#1\pr at endparse#2[#3]{%
-   \pr at parseit#1\pr at endparse{#2[{#3}]}}
-\expandafter\let\csname pr at parse]\endcsname=\pr at parseit
-\long\def\pr at parse#1\pr at endparse#2#3{%
-  \pr at parseit#1\pr at endparse{#2{#3}}}
-\expandafter\let\csname pr at parse!\endcsname=\pr at parse
-\long\expandafter\def\csname pr at parse?\endcsname#1#2\pr at endparse#3{%
-  \begingroup\toks@{#2\pr at endparse{#3}}%
-  \@ifnextchar#1{\pr at parsecond\@firstoftwo}%
-                {\pr at parsecond\@secondoftwo}}
-\def\pr at parsecond#1{\expandafter\endgroup
-  \expandafter\expandafter\expandafter\pr at parseit
-  \expandafter#1\the\toks@}
- \long\def\pr at parse@#1#2\pr at endparse#3{%
-   \pr at parseit #2\pr at endparse{#3#1}}
-\long\expandafter\def\csname pr at parse-\endcsname
-  #1\pr at endparse#2{\begingroup
-  \toks@{\endgroup\pr at parseit #1\pr at endparse{#2}}%
-  {\aftergroup\the\aftergroup\toks@ \afterassignment}%
-  \let\next= }
-\long\expandafter\def\csname pr at parse:\endcsname
-  #1#2#3\pr at endparse#4{\begingroup
-    \toks@{\endgroup \pr at parseit#3\pr at endparse{#4}}%
-    \long\def\next#1{#2}%
-    \the\expandafter\toks@\next}
-\long\expandafter\def\csname pr at parse#\endcsname
-  #1#2#3\pr at endparse#4{\begingroup
-    \toks@{#4}%
-    \long\edef\next##1{\toks@{\the\toks@##1}}%
-    \toks@{\endgroup \pr at parseit#3\pr at endparse}%
-    \long\def\reserved at a#1{{#2}}%
-    \the\expandafter\next\reserved at a}
-\def\pr at endaftergroup#1{#1\aftergroup\pr at endbox}
-\let\pr at endsnarf\relax
-\long\def\pr at snarfafter#1{\ifpr at outer
-     \pr at ship@start
-     \let\pr at ship@start\relax
-     \let\pr at endsnarf\endgroup
-   \else
-     \let\pr at endsnarf\relax
-   \fi
-  \pr at protect{\pr at callafter\pr at startsnarf#1]\pr at endparse}}
-\def\pr at startsnarf#1{#1\begingroup
-   \pr at startbox{\begingroup\aftergroup\pr at endbox}{\endgroup}%
-   \ignorespaces}
-\renewenvironment{preview}{\begingroup
-   \pr at startbox{\begingroup\aftergroup\pr at endbox}%
-               {\endgroup}%
-   \ignorespaces}%
-   {\ifhmode\unskip\fi\endgroup}
-\renewenvironment{nopreview}{\pr at outerfalse\ignorespaces}%
-  {\ifhmode\unskip\fi}
-\newtoks\pr at output
-\pr at output\output
-\output{%
-  \pr at outerfalse
-  \let\@begindvi\@empty
-  \the\pr at output}
-\let\output\pr at output
-\def\pr at typeinfos{\typeout{Preview: Fontsize \f at size pt}%
-  \ifnum\mag=\@m\else\typeout{Preview: Magnification \number\mag}\fi
-  \ifx\pdfoutput\@undefined \else
-    \ifx\pdfoutput\relax \else
-      \ifnum\pdfoutput>\z@
-        \typeout{Preview: PDFoutput 1}%
-      \fi
-    \fi
-  \fi
-}
-\AtBeginDocument{\pr at typeinfos}
-\pr at loadcfg{prdefault}
-\endinput
-%%
-%% End of file `preview.sty'.
diff --git a/admin/userdoc-source/tutorial.rst b/admin/userdoc-source/tutorial.rst
deleted file mode 100644
index ff5d1fd..0000000
--- a/admin/userdoc-source/tutorial.rst
+++ /dev/null
@@ -1,258 +0,0 @@
-.. _QuickStartTutorial:
-
-Quickstart Tutorial
-===================
-
-In this tutorial, we will create an XMDS2 script to solve the Lorenz Attractor, an example of a dynamical system that exhibits chaos. The equations describing this problem are 
-
-.. math::
-    \frac{dx}{dt} &= \sigma (y - x)\\
-    \frac{dy}{dt} &= x (\rho - z) - y\\
-    \frac{dz}{dt} &= xy - \beta z
-
-where we will solve with the parameters :math:`\sigma=10`, :math:`\rho=28`, :math:`\beta = \frac{8}{3}` and the initial condition :math:`x(0) = y(0) = z(0) = 1`.
-
-Below is a script that solves this problem (it's also saved as examples/lorenz.xmds in your XMDS2 directory). Don't worry if it doesn't make sense yet, soon we'll break it down into easily digestible parts.
-
-.. code-block:: xpdeint
-    
-    <?xml version="1.0" encoding="UTF-8"?>
-    <simulation xmds-version="2">
-      <name>lorenz</name>
-      
-      <!-- While not strictly necessary, the following two tags are handy. -->
-      <author>Graham Dennis</author>
-      <description>
-        The Lorenz Attractor, an example of chaos.
-      </description>
-      
-      <!-- 
-      This element defines some constants.  It can be used for other 
-      features as well, but we will go into that in more detail later.
-      -->
-      <features>
-        <globals>
-            <![CDATA[
-            real sigma = 10.0;
-            real b = 8.0/3.0;
-            real r = 28.0;
-            ]]>
-         </globals>
-       </features>
-       
-      <!-- 
-      This part defines all of the dimensions used in the problem,
-      in this case, only the dimension of 'time' is needed.
-      -->
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-      
-      <!-- A 'vector' describes the variables that we will be evolving. -->
-      <vector name="position" type="real">
-        <components>
-          x y z
-        </components>
-        <initialisation>
-          <![CDATA[
-          x = y = z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-      
-      <sequence>
-        <!--
-        Here we define what differential equations need to be solved
-        and what algorithm we want to use.
-        -->
-        <integrate algorithm="ARK89" interval="20.0" tolerance="1e-7">
-          <samples>5000</samples>
-          <operators>
-            <integration_vectors>position</integration_vectors>
-            <![CDATA[
-            dx_dt = sigma*(y-x);
-            dy_dt = r*x - y - x*z;
-            dz_dt = x*y - b*z;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-      
-      <!-- This part defines what data will be saved in the output file -->
-      <output format="hdf5" filename="lorenz.xsil">
-        <sampling_group initial_sample="yes">
-          <moments>xR yR zR</moments>
-          <dependencies>position</dependencies>
-          <![CDATA[
-            xR = x;
-            yR = y;
-            zR = z;
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-You can compile and run this script with **XMDS2**. To compile the script, just pass the name of the script as an argument to **XMDS2**.
-
-    .. code-block:: none
-
-        $ xmds2 lorenz.xmds
-        xmds2 version 2.1 "Happy Mollusc" (r2680)
-        Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                            and the xmds team
-        Generating source code...
-        ... done
-        Compiling simulation...
-        ... done. Type './lorenz' to run.
-
-Now we can execute the generated program 'lorenz'.
-
-    .. code-block:: none
-
-        $ ./lorenz 
-        Sampled field (for moment group #1) at t = 0.000000e+00
-        Sampled field (for moment group #1) at t = 4.000000e-03
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 8.000000e-03
-        Current timestep: 4.000000e-03
-
-        ... many lines omitted ...
-
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 1.999600e+01
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 2.000000e+01
-        Current timestep: 4.000000e-03
-        Segment 1: minimum timestep: 9.997900e-06 maximum timestep: 4.000000e-03
-          Attempted 7386 steps, 0.00% steps failed.
-        Generating output for lorenz
-
-The program generated by **XMDS2** has now integrated your equations and produced two files.  The first is the XML file "lorenz.xsil", which contains the all the information used to generate the simulation (including the XMDS2 code) and the metadata description of the output.  The second file is named "lorenz.h5", which is a `HDF5 <http://www.hdfgroup.org/HDF5>`_ file containing all of the output data.   You can analysing these files yourself, or import them into your favourite visualisa [...]
-
-    .. code-block:: none
-
-        $ xsil2graphics2 -e lorenz.xsil 
-        xsil2graphics2 from xmds2 version 2.1 "Happy Mollusc" (r2680)
-        Generating output for Mathematica 6+.
-        Writing import script for 'lorenz.xsil' to 'lorenz.nb'.
-
-This has now generated the file 'lorenz.nb', which is a Mathematica notebook that loads the output data of the simulation.  Loading it into Mathematica allows us to plot the points {xR1, yR1, zR1}:
-
-    .. code-block:: none
-
-        ll = Transpose[{xR1, yR1, zR1}];
-        ListPointPlot3D[ll]
-
-.. image:: images/lorenz.*
-    :align: center
-
-...and we see the lobes of the strange attractor.  Now let us examine the code that produced this simulation.
-
-First, we have the top level description of the code.
-
-.. code-block:: xpdeint
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <simulation xmds-version="2">
-      <name>lorenz</name>
-      
-      <!-- While not strictly necessary, the following two tags are handy. -->
-      <author>Graham Dennis</author>
-      <description>
-        The Lorenz Attractor, an example of chaos.
-      </description>
-
-One of the advantages of an XML format is that these tags are almost entirely self-explanatory.  XMDS2 files follow full XML syntax, so elements can be commented out using the ``<!--`` and ``-->`` brackets, and we have an example of that here. 
-
-The first line, ``<?xml ...>``, just specifies the encoding and XML version. It is optional, but its presence helps some text editors perform the correct syntax highlighting.
-
-The ``<simulation>`` element is mandatory, and encloses the entire simulation script.
-
-The ``<name>`` element is optional, but recommended. It defines the name of the executable program that will be generated, as well as the default name of the output data files (although this can be over-ridden in the ``<output>`` element if desired). If ``<name>`` is not present, it will default to the filename of the script.
-
-The next element we have used can be skipped entirely if you wish to use the default set of features and you don't want to define any global constants for your simulation.  
-
-.. code-block:: xpdeint
-    
-      <features>
-        <globals>
-            <![CDATA[
-            real sigma = 10.0;
-            real b = 8.0/3.0;
-            real r = 28.0;
-            ]]>
-         </globals>
-       </features>
-
-The ``<features>`` element can be used to choose a large number of features that will be discussed later, but here we have only used it to define a ``<globals>`` element.  This element contains a block of text with ``<![CDATA[`` at the start and ``]]>`` at the end.  These 'CDATA' blocks  are used in several places in an XMDS script, and define a block of text that will be pasted directly into the generated C-code.  They must therefore be formatted in legal C-syntax, and any legal C-synta [...]
-
-The next element is the essential ``<geometry>`` element.
-
-.. code-block:: xpdeint
-    
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-
-This element is used to define all the dimensions in the problem.  We only require the time dimension, which we are labelling 't', so this is a trivial example.  We will discuss transverse dimensions in more detail in the next worked example (:ref:`NonLinearSchrodingerEquation`), where we deal with the integration of a partial differential equation rather than ordinary differential equations.
-
-Next, we have the ``<vector>`` element.
-
-.. code-block:: xpdeint
-    
-      <vector name="position" type="real">
-        <components>
-          x y z
-        </components>
-        <initialisation>
-          <![CDATA[
-          x = y = z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-We can define multiple vectors, but here we only need the variables that we wish to integrate.  We named this vector "position", as it defines the position in phase space.  These variables are real-valued (as opposed to, say, complex numbers), so we define ``type="real"``.  The ``<components>`` element defines the names of the elements of this vector, which we have called 'x', 'y' and 'z'.  Finally, we provide the initial values of the variables in a CDATA block within the ``<initialisat [...]
-
-Now we come to the heart of the simulation, where we define the evolution of our vector.  This evolution is held in the ``<sequence>`` element, which contains an ordered sequence of actions upon any defined vectors.  Vectors can be altered with a ``<filter>`` element, or integrated in the propagation dimension with an ``<integrate>`` element.
-
-.. code-block:: xpdeint
-    
-      <sequence>
-        <integrate algorithm="ARK89" interval="20.0" tolerance="1e-7">
-          <samples>5000</samples>
-          <operators>
-            <integration_vectors>position</integration_vectors>
-            <![CDATA[
-            dx_dt = sigma*(y-x);
-            dy_dt = r*x - y - x*z;
-            dz_dt = x*y - b*z;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-Here our sequence consists of a single ``<integrate>`` element.  It contains several important pieces of information.  At the heart, the ``<operators>`` element contains the equations of motion as described above, written in a very human-readable fashion.  It also contains an ``<integration_vectors>`` element, which defines which vectors are used in this integrate block.  We have only one vector defined in this simulation, so it is a trivial choice here.  
-
-All integrate blocks must define which algorithm is to be used - in this case the 8th (embedded 9th) order adaptive Runge-Kutta method, called "ARK89".  The details of different algorithms will be described later (FIXME: Link!), but for now all we need to know is that this algorithm requires a tolerance, and that smaller means more accurate, so we'll make it :math:`10^{-7}` by setting ``tolerance="1.0e-7"``.  Finally, any integration will proceed a certain length in the propagation dimen [...]
-
-The ``<samples>`` element says that the values of the output groups will be sampled 5000 times during this interval.  The nature of the output is defined in the last element in the simulation: the ``<output>`` element.
-
-.. code-block:: xpdeint
-    
-  <output format="hdf5" filename="lorenz.xsil">
-    <sampling_group initial_sample="yes">
-      <moments>xR yR zR</moments>
-      <dependencies>position</dependencies>
-      <![CDATA[
-        xR = x;
-        yR = y;
-        zR = z;
-      ]]>
-    </sampling_group>
-  </output>
-
-The two top-level arguments in the ``<output>`` element are "format" and "filename".  Here we define the output filename, although it would have defaulted to this value.  We also choose the format to be HDF5, which is why the simulation resulted in the binary file "lorenz.h5" as well as "lorenz.xsil".  If we had instead said ``format="ascii"``, then all of the output data would have been written in text form in "lorenz.xsil".
-
-The ``<output>`` element can contain any non-zero number of ``<sampling_group>`` elements, which specify the entire output of the program.  They allow for subsampling, integration of some or all of the transverse dimensions, and/or conversion of some dimensions into Fourier space, but these will be described in more detail in the following examples.  We have a ``<dependencies>`` element that specifies which vectors are needed for this output.  We specify the list of output variables with [...]
-
-And that's it.  This is quite a large framework to integrate three coupled ordinary differential equations, but the advantage of using XMDS2 is that vastly more complicated simulations can be performed without increasing the length or complexity of the XMDS2 script significantly.  The :ref:`WorkedExamples` section will provide more complicated examples with stochastic equations and partial differential equations.  If you are moved to solve your own problem using XMDS2, then perhaps the m [...]
diff --git a/admin/userdoc-source/upgrade.rst b/admin/userdoc-source/upgrade.rst
deleted file mode 100644
index 23af03c..0000000
--- a/admin/userdoc-source/upgrade.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. _UpgradeFromXMDS1:
-
-Upgrading From XMDS 1.X
-=======================
-
-While **XMDS2** is a complete rewrite of the **XMDS** project, much of the syntax has remained very similar.  That said, your code will have to be rewritten as an XMDS2 program.  We recommend that you work through the :ref:`QuickStartTutorial` and perhaps the :ref:`WorkedExamples` sections, and then you should be good to go.
-
-The main news when switching to XMDS2 is the long list of new things you can do.  If it's an initial value problem, XMDS2 has a good chance of being able to solve it.
-
-We have made the decision to call the executables "xmds2" and "xsil2graphics2" so that you can keep using your old installation in parallel with the new version.
\ No newline at end of file
diff --git a/admin/userdoc-source/worked_examples.rst b/admin/userdoc-source/worked_examples.rst
deleted file mode 100644
index 243e668..0000000
--- a/admin/userdoc-source/worked_examples.rst
+++ /dev/null
@@ -1,1359 +0,0 @@
-.. _WorkedExamples:
-
-Worked Examples
-===============
-
-One of the best ways to learn XMDS2 is to see several illustrative examples.  Here are a set of example scripts and explanations of the code, which will be a good way to get started.  As an instructional aid, they are meant to be read sequentially, but the adventurous could try starting with one that looked like a simulation they wanted to run, and adapt for their own purposes.
-
-   :ref:`NonLinearSchrodingerEquation` (partial differential equation)
-   
-   :ref:`Kubo` (stochastic differential equations)
-
-   :ref:`Fibre` (stochastic partial differential equation using parallel processing)
-
-   :ref:`IntegerDimensionExample` (integer dimensions)
-
-   :ref:`WignerArguments` (two dimensional PDE using parallel processing, passing arguments in at run time)
-
-   :ref:`GroundStateBEC` (PDE with continual renormalisation - computed vectors, filters, breakpoints)
-
-   :ref:`HermiteGaussGroundStateBEC` (Hermite-Gaussian basis)
-   
-   :ref:`2DMultistateSE` (combined integer and continuous dimensions with matrix multiplication, aliases)
-
-All of these scripts are available in the included "examples" folder, along with more examples that demonstrate other tricks.  Together, they provide starting points for a huge range of different simulations.
-
-.. _NonLinearSchrodingerEquation:
-
-The nonlinear Schrödinger equation
-----------------------------------
-
-This worked example will show a range of new features that can be used in an **XMDS2** script, and we will also examine our first partial differential equation.  We will take the one dimensional nonlinear Schrödinger equation, which is a common nonlinear wave equation.  The equation describing this problem is:
-
-.. math::
-    \frac{\partial \phi}{\partial \xi} = \frac{i}{2}\frac{\partial^2 \phi}{\partial \tau^2} - \Gamma(\tau)\phi+i|\phi|^2 \phi
-
-where :math:`\phi` is a complex-valued field, and :math:`\Gamma(\tau)` is a :math:`\tau`-dependent damping term.  Let us look at an XMDS2 script that integrates this equation, and then examine it in detail.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>nlse</name>
-
-      <author>Joe Hope</author>
-      <description>
-        The nonlinear Schrodinger equation in one dimension, 
-        which is a simple partial differential equation.  
-        We introduce several new features in this script.
-      </description>
-
-      <features>
-          <benchmark />
-          <bing />
-          <fftw plan="patient" />
-          <openmp />
-          <auto_vectorise />
-          <globals>
-              <![CDATA[
-              const double energy = 4;
-              const double vel = 0.3;
-              const double hwhm = 1.0;
-              ]]>
-           </globals>
-         </features>
-
-      <geometry>
-          <propagation_dimension> xi </propagation_dimension>
-          <transverse_dimensions>
-            <dimension name="tau" lattice="128"  domain="(-6, 6)" />
-          </transverse_dimensions>
-       </geometry>
-
-      <vector name="wavefunction" type="complex" dimensions="tau">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-          const double w0 = hwhm*sqrt(2/log(2));
-          const double amp = sqrt(energy/w0/sqrt(M_PI/2));
-          phi = amp*exp(-tau*tau/w0/w0)*exp(i*vel*tau);
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="dampingVector" type="real">
-        <components> Gamma </components>
-        <initialisation>
-          <![CDATA[
-          Gamma=1.0*(1-exp(-pow(tau*tau/4.0/4.0,10)));
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK45" interval="20.0" tolerance="1e-7">
-          <samples>10 100 10</samples>
-          <operators>
-            <integration_vectors>wavefunction</integration_vectors>
-            <operator kind="ex" constant="yes">
-              <operator_names>Ltt</operator_names>
-              <![CDATA[
-                Ltt = -i*ktau*ktau*0.5;
-              ]]>
-            </operator>
-            <![CDATA[
-            dphi_dxi = Ltt[phi] - phi*Gamma + i*mod2(phi)*phi;
-            ]]>
-            <dependencies>dampingVector</dependencies>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="tau" initial_sample="yes">
-          <moments>density</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            density = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group basis="tau(0)" initial_sample="yes">
-          <moments>normalisation</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            normalisation = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group basis="ktau(32)" initial_sample="yes">
-          <moments>densityK</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            densityK = mod2(phi);
-          ]]>
-        </sampling_group>
-
-      </output>
-    </simulation>
-
-Let us examine the new items in the ``<features>`` element that we have demonstrated here.  The existence of the ``<benchmark>`` element causes the simulation to be timed.  The ``<bing>`` element causes the computer to make a sound upon the conclusion of the simulation.  The ``<fftw>`` element is used to pass options to the `FFTW libraries for fast Fourier transforms <http://fftw.org>`_, which are needed to do spectral derivatives for the partial differential equation.  Here we used the  [...]
-
-Finally, we use two tags to make the simulation run faster.  The ``<auto_vectorise>`` element switches on several loop optimisations that exist in later versions of the GCC compiler.  The ``<openmp>`` element turns on threaded parallel processing using the OpenMP standard where possible.  These options are not activated by default as they only exist on certain compilers.  If your code compiles with them on, then they are recommended.
-
-Let us examine the ``<geometry>`` element.
-
-.. code-block:: xpdeint
-
-      <geometry>
-          <propagation_dimension> xi </propagation_dimension>
-          <transverse_dimensions>
-            <dimension name="tau" lattice="128"  domain="(-6, 6)" />
-          </transverse_dimensions>
-       </geometry>
-
-This is the first example that includes a transverse dimension.  We have only one dimension, and we have labelled it "tau".  It is a continuous dimension, but only defined on a grid containing 128 points (defined with the lattice variable), and on a domain from -6 to 6.  The default is that transforms in continuous dimensions are fast Fourier transforms, which means that this dimension is effectively defined on a loop, and the "tau=-6" and "tau=6" positions are in fact the same.  Other t [...]
-
-Two vector elements have been defined in this simulation.  One defines the complex-valued wavefunction "phi" that we wish to evolve.  We define the transverse dimensions over which this vector is defined by the ``dimensions`` tag in the description.  By default, it is defined over all of the transverse dimensions in the ``<geometry>`` element, so even though we have omitted this tag for the second vector, it also assumes that the vector is defined over all of tau.  
-
-The second vector element contains the component "Gamma" which is a function of the transverse variable tau, as specified in the equation of motion for the field.  This second vector could have been avoided in two ways.  First, the function could have been written explicitly in the integrate block where it is required, but calculating it once and then recalling it from memory is far more efficient.  Second, it could have been included in the "wavefunction" vector as another component, bu [...]
-
-The ``<integrate>`` element for a partial differential equation has some new features:
-
-.. code-block:: xpdeint
-
-        <integrate algorithm="ARK45" interval="20.0" tolerance="1e-7">
-          <samples>10 100 10</samples>
-          <operators>
-            <integration_vectors>wavefunction</integration_vectors>
-            <operator kind="ex" constant="yes">
-              <operator_names>Ltt</operator_names>
-              <![CDATA[
-                Ltt = -i*ktau*ktau*0.5;
-              ]]>
-            </operator>
-            <![CDATA[
-            dphi_dxi = Ltt[phi] - phi*Gamma + i*mod2(phi)*phi;
-            ]]>
-            <dependencies>dampingVector</dependencies>
-          </operators>
-        </integrate>
-
-There are some trivial changes from the tutorial script, such as the fact that we are using the ARK45 algorithm rather than ARK89.  Higher order algorithms are often better, but not always.  Also, since this script has multiple output groups, we have to specify how many times each of these output groups are sampled in the ``<samples>`` element, so there are three numbers there.  Besides the vectors that are to be integrated, we also specify that we want to use the vector "dampingVector"  [...]
-
-The equation of motion as written in the CDATA block looks almost identical to our desired equation of motion, except for the term based on the second derivative, which introduces an important new concept.  Inside the ``<operators>`` element, we can define any number of operators.  Operators are used to define functions in the transformed space of each dimension, which in this case is Fourier space.  The derivative of a function is equivalent to multiplying by :math:`i*k` in Fourier spac [...]
-
-Operators can be explicit (``kind="ex"``) or in the interaction picture (``kind="ip"``).  The interaction picture can be more efficient, but it restricts the possible syntax of the equation of motion.  Safe utilisation of interaction picture operators will be described later, but for now let us emphasise that **explicit operators should be used** unless the user is clear what they are doing.  That said, **XMDS2** will generate an error if the user tries to use interaction picture operato [...]
-
-The output of a partial differential equation offers more possibilities than an ordinary differential equation, and we examine some in this example.
-
-For vectors with transverse dimensions, we can sample functions of the vectors on the full lattice or a subset of the points.  In the ``<sampling_group>`` element, we must add a string called "basis" that determines the space in which each transverse dimension is to be sampled, optionally followed by the number of points to be sampled in parentheses.  If the number of points is not specified, it will default to a complete sampling of all points in that dimension.  If a non-zero number of [...]
-
-.. code-block:: xpdeint
-
-      <sampling_group basis="tau" initial_sample="yes">
-        <moments>density</moments>
-        <dependencies>wavefunction</dependencies>
-        <![CDATA[
-          density = mod2(phi);
-        ]]>
-      </sampling_group>
-
-The first output group samples the mod square of the vector "phi" over the full lattice of 128 points.
-
-If the lattice parameter is set to zero points, then the corresponding dimension is integrated.
-
-.. code-block:: xpdeint
-
-       <sampling_group basis="tau(0)" initial_sample="yes">
-         <moments>normalisation</moments>
-         <dependencies>wavefunction</dependencies>
-         <![CDATA[
-           normalisation = mod2(phi);
-         ]]>
-       </sampling_group>
-
-This second output group samples the normalisation of the wavefunction :math:`\int d\tau |\phi(\tau)|^2` over the domain of :math:`\tau`.  This output requires only a single real number per sample, so in the integrate element we have chosen to sample it many more times than the vectors themselves.
-
-Finally, functions of the vectors can be sampled with their dimensions in Fourier space.
-
-.. code-block:: xpdeint
-
-        <sampling_group basis="ktau(32)" initial_sample="yes">
-          <moments>densityK</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            densityK = mod2(phi);
-          ]]>
-        </sampling_group>
-
-The final output group above samples the mod square of the Fourier-space wavefunction phi on a sample of 32 points.
-
-
-.. _Kubo:
-
-Kubo Oscillator
----------------
-
-This example demonstrates the integration of a stochastic differential equation.  We examine the Kubo oscillator, which is a complex variable whose phase is evolving according to a Wiener noise.  In a suitable rotating frame, the equation of motion for the variable is
-
-.. math::
-    \frac{dz}{dt} = i z \;\eta
-
-where :math:`\eta(t)` is the Wiener differential, and we interpret this as a Stratonovich equation.  In other common notation, this is sometimes written:
-
-.. math::
-    dz = i z \;\circ dW
-
-Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich euqations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>kubo</name>
-      <author>Graham Dennis and Joe Hope</author>
-      <description>
-        Example Kubo oscillator simulation
-      </description>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-  
-      <driver name="multi-path" paths="10000" />
-  
-      <features>
-        <error_check />
-        <benchmark />
-      </features>
-
-      <noise_vector name="drivingNoise" dimensions="" kind="wiener" type="real" method="dsfmt" seed="314 159 276">
-        <components>eta</components>
-      </noise_vector>
-  
-      <vector name="main" type="complex">
-        <components> z </components>
-        <initialisation>
-          <![CDATA[
-            z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <sequence>
-        <integrate algorithm="SI" interval="10" steps="1000">
-          <samples>100</samples>
-          <operators>
-            <integration_vectors>main</integration_vectors>
-            <dependencies>drivingNoise</dependencies>
-            <![CDATA[
-              dz_dt = i*z*eta;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group initial_sample="yes">
-          <moments>zR zI</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            zR = z.Re();
-            zI = z.Im();
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The first new item in this script is the ``<driver>`` element.  This element enables us to change top level management of the simulation.  Without this element, XMDS2 will integrate the stochastic equation as described.  With this element and the option ``name="multi-path"``, it will integrate it multiple times, using different random numbers each time.  The output will then contain the mean values and standard errors of your output variables.  The number of integrations included in the  [...]
-
-In the ``<features>`` element we have included the ``<error_check>`` element.  This performs the integration first with the specified number of steps (or with the specified tolerance), and then with twice the number of steps (or equivalently reduced tolerance).  The output then includes the difference between the output variables on the coarse and the fine grids as the 'error' in the output variables.  This error is particularly useful for stochastic integrations, where algorithms with a [...]
-
-We define the stochastic elements in a simulation with the ``<noise_vector>`` element.  
-
-.. code-block:: xpdeint
-
-    <noise_vector name="drivingNoise" dimensions="" kind="wiener" type="real" method="dsfmt" seed="314 159 276">
-     <components>eta</components>
-    </noise_vector>
-  
-This defines a vector that is used like any other, but it will be randomly generated with particular statistics and characteristics rather than initialised.  The name, dimensions and type tags are defined just as for normal vectors.  The names of the components are also defined in the same way.  The noise is defined as a Wiener noise here (``kind = "wiener"``), which is a zero-mean Gaussian random noise with an average variance equal to the discretisation volume (here it is just the step [...]
-
-We may also define a noise method to choose a non-default pseudo random number generator, and a seed for the random number generator.  Using a seed can be very useful when debugging the behaviour of a simulation, and many compilers have pseudo-random number generators that are superior to the default option (posix).
-
-The integrate block is using the semi-implicit algorithm (``algorithm="SI"``), which is a good default choice for stochastic problems, even though it is only second order convergent for deterministic equations.  More will be said about algorithm choice later, but for now we should note that adaptive algorithms based on Runge-Kutta methods are not guaranteed to converge safely for stochastic equations.  This can be particularly deceptive as they often succeed, particularly for almost any  [...]
-
-We include elements from the noise vector in the equation of motion just as we do for any other vector.  The default SI and Runge-Kutta algorithms converge to the *Stratonovich* integral.  Ito stochastic equations can be converted to Stratonovich form and vice versa.
-
-Executing the generated program 'kubo' gives slightly different output due to the "multi-path" driver.
-
-.. code-block:: none
-
-            $ ./kubo
-            Beginning full step integration ...
-            Starting path 1
-            Starting path 2
-
-            ... many lines omitted ...
-
-            Starting path 9999
-            Starting path 10000
-            Beginning half step integration ...
-            Starting path 1
-            Starting path 2
-
-            ... many lines omitted ...
-
-            Starting path 9999
-            Starting path 10000
-            Generating output for kubo
-            Maximum step error in moment group 1 was 4.942549e-04
-            Time elapsed for simulation is: 2.71 seconds
-
-The maximum step error in each moment group is given in absolute terms.  This is the largest difference between the full step integration and the half step integration.  While a single path might be very stochastic:
-
-.. figure:: images/kuboSingle.*
-    :align: center
-    
-    The mean value of the real and imaginary components of the z variable for a single path of the simulation.
-    
-The average over multiple paths can be increasingly smooth.  
-
-.. figure:: images/kubo10000.*
-    :align: center
-
-    The mean and standard error of the z variable averaged over 10000 paths, as given by this simulation.  It agrees within the standard error with the expected result of :math:`\exp(-t/2)`.
-
-
-.. _Fibre:
-
-Fibre Noise
------------
-
-This simulation is a stochastic partial differential equation, in which a one-dimensional damped field is subject to a complex noise. This script can be found in ``examples/fibre.xmds``.
-
-.. math::
-    \frac{\partial \psi}{\partial t} = -i \frac{\partial^2 \psi}{\partial x^2} -\gamma \psi+\beta \frac{1}{\sqrt{2}}\left(\eta_1(x)+i\eta_2(x)\right)
-    
-where the noise terms :math:`\eta_j(x,t)` are Wiener differentials and the equation is interpreted as a Stratonovich differential equation.  On a finite grid, these increments have variance :math:`\frac{1}{\Delta x \Delta t}`.
-
-.. code-block:: xpdeint
-    
-    <simulation xmds-version="2">
-      <name>fibre</name>
-      <author>Joe Hope and Graham Dennis</author>
-      <description>
-        Example fibre noise simulation
-      </description>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="64"  domain="(-5, 5)" />
-        </transverse_dimensions>
-      </geometry>
-  
-      <driver name="mpi-multi-path" paths="8" />
-  
-      <features>
-        <auto_vectorise />
-        <benchmark />
-        <error_check />
-        <globals>
-          <![CDATA[
-          const real ggamma = 1.0;
-          const real beta = sqrt(M_PI*ggamma/10.0);
-          ]]>
-        </globals>
-      </features>
-  
-      <noise_vector name="drivingNoise" dimensions="x" kind="wiener" type="complex" method="dsfmt" seed="314 159 276">
-        <components>Eta</components>
-      </noise_vector>
-  
-      <vector name="main" initial_basis="x" type="complex">
-        <components>phi</components>
-        <initialisation>
-          <![CDATA[
-            phi = 0.0;
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <sequence>
-        <integrate algorithm="SI" iterations="3" interval="2.5" steps="200000">
-          <samples>50</samples>
-          <operators>
-            <operator kind="ex" constant="yes">
-              <operator_names>L</operator_names>
-              <![CDATA[
-                L = -i*kx*kx;
-              ]]>
-            </operator>
-            <dependencies>drivingNoise</dependencies>
-            <integration_vectors>main</integration_vectors>
-            <![CDATA[
-              dphi_dt = L[phi] - ggamma*phi + beta*Eta;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-  
-      <output>
-        <sampling_group basis="kx" initial_sample="yes">
-          <moments>pow_dens</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            pow_dens = mod2(phi);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-Note that the noise vector used in this example is complex-valued, and has the argument ``dimensions="x"`` to define it as a field of delta-correlated noises along the x-dimension.
-
-This simulation demonstrates the ease with which XMDS2 can be used in a parallel processing environment.  Instead of using the stochastic driver "multi-path", we simply replace it with "mpi-multi-path".  This instructs XMDS2 to write a parallel version of the program based on the widespread `MPI standard <http://www.open-mpi.org/>`_.  This protocol allows multiple processors or clusters of computers to work simultaneously on the same problem.  Free open source libraries implementing this [...]
-
-Executing this program is slightly different with the MPI option.  The details can change between MPI implementations, but as an example:
-
-.. code-block:: none
-
-        $xmds2 fibre.xmds
-        xmds2 version 2.1 "Happy Mollusc" (r2543)
-        Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                            and the xmds team
-        Generating source code...
-        ... done
-        Compiling simulation...
-        ... done. Type './fibre' to run.
-
-Note that different compile options (and potentially a different compiler) are used by XMDS2, but this is transparent to the user.  MPI simulations will have to be run using syntax that will depend on the MPI implementation.  Here we show the version based on the popular open source `Open-MPI <http://www.open-mpi.org/>`_ implementation.
-
-.. code-block:: none
-
-    $ mpirun -np 4 ./fibre
-    Found enlightenment... (Importing wisdom)
-    Planning for x <---> kx transform... done.
-    Beginning full step integration ...
-    Rank[0]: Starting path 1
-    Rank[1]: Starting path 2
-    Rank[2]: Starting path 3
-    Rank[3]: Starting path 4
-    Rank[3]: Starting path 8
-    Rank[0]: Starting path 5
-    Rank[1]: Starting path 6
-    Rank[2]: Starting path 7
-    Rank[3]: Starting path 4
-    Beginning half step integration ...
-    Rank[0]: Starting path 1
-    Rank[2]: Starting path 3
-    Rank[1]: Starting path 2
-    Rank[3]: Starting path 8
-    Rank[0]: Starting path 5
-    Rank[2]: Starting path 7
-    Rank[1]: Starting path 6
-    Generating output for fibre
-    Maximum step error in moment group 1 was 4.893437e-04
-    Time elapsed for simulation is: 20.99 seconds
-    
-In this example we used four processors.  The different processors are labelled by their "Rank", starting at zero.  Because the processors are working independently, the output from the different processors can come in a randomised order.  In the end, however, the .xsil and data files are constructed identically to the single processor outputs.
-
-The analytic solution to the stochastic averages of this equation is given by
-
-.. math::
-    \langle |\psi(k,t)|^2 \rangle = \exp(-2\gamma t)|\psi(k,0)|^2 +\frac{\beta^2 L_x}{4\pi \gamma} \left(1-\exp(-2\gamma t)\right)
-    
-where :math:`L_x` is the length of the x domain.  We see that a single integration of these equations is quite chaotic:
-
-.. figure:: images/fibreSingle.*
-    :align: center
-    
-    The momentum space density of the field as a function of time for a single path realisation.
-
-while an average of 1024 paths (change ``paths="8"`` to ``paths="1024"`` in the ``<driver>`` element) converges nicely to the analytic solution:
-
-.. figure:: images/fibre1024.*
-    :align: center
-    
-    The momentum space density of the field as a function of time for an average of 1024 paths.
-
-
-
-.. _IntegerDimensionExample:
-
-Integer Dimensions
-------------------
-
-This example shows how to handle systems with integer-valued transverse dimensions.  We will integrate the following set of equations
-
-.. math::
-    \frac{dx_j}{dt} = x_j \left(x_{j-1}-x_{j+1}\right)
-
-where :math:`x_j` are complex-valued variables defined on a ring, such that :math:`j\in \{0,j_{max}\}` and the :math:`x_{j_{max}+1}` variable is identified with the variable :math:`x_{0}`, and the variable :math:`x_{-1}` is identified with the variable :math:`x_{j_{max}}`.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>integer_dimensions</name>
-      <author>Graham Dennis</author>
-      <description>
-        XMDS2 script to test integer dimensions.
-      </description>
-
-      <features>
-        <benchmark />
-        <error_check />
-        <bing />
-        <diagnostics /> <!-- This will make sure that all nonlocal accesses of dimensions are safe -->
-      </features>
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="j" type="integer" lattice="5" domain="(0,4)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="main" type="complex">
-        <components> x </components>
-        <initialisation>
-          <![CDATA[
-          x = 1.0e-3;
-          x(j => 0) = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK45" interval="60" steps="25000" tolerance="1.0e-9">
-          <samples>1000</samples>
-          <operators>
-            <integration_vectors>main</integration_vectors>
-            <![CDATA[
-            long j_minus_one = (j-1) % _lattice_j;
-            if (j_minus_one < 0)
-              j_minus_one += _lattice_j;
-            long j_plus_one  = (j+1) % _lattice_j;
-            dx_dt(j => j) = x(j => j)*(x(j => j_minus_one) - x(j => j_plus_one));
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="j" initial_sample="yes">
-          <moments>xR</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            xR = x.Re();
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The first extra feature we have used in this script is the ``<diagnostics>`` element.  It performs run-time checking that our generated code does not accidentally attempt to access a part of our vector that does not exist.  Removing this tag will increase the speed of the simulation, but its presence helps catch coding errors.  
-
-The simulation defines a vector with a single transverse dimension labelled "j", of type "integer" ("int" and "long" can also be used as synonyms for "integer").  In the absence of an explicit type, the dimension is assumed to be real-valued.  The dimension has a "domain" argument as normal, defining the minimum and maximum values of the dimension's range.  The lattice element, if specified, is used as a check on the size of the domain, and will create an error if the two do not match.
-
-Integer-valued dimensions can be called non-locally.  Real-valued dimensions are typically coupled non-locally only through local operations in the transformed space of the dimension, but can be called non-locally in certain other situations as described in :ref:`the reference<ReferencingNonlocal>`.  The syntax for calling integer dimensions non-locally can be seen in the initialisation CDATA block:
-
-.. code-block:: xpdeint
-
-          x = 1.0e-3;
-          x(j => 0) = 1.0;
-
-where the syntax ``x(j => 0)`` is used to reference the variable :math:`x_0` directly.  We see a more elaborate example in the integrate CDATA block:
-
-.. code-block:: xpdeint
-
-            dx_dt(j => j) = x(j => j)*(x(j => j_minus_one) - x(j => j_plus_one));
-
-where the vector "x" is called using locally defined variables.  This syntax is chosen so that multiple dimensions can be addressed non-locally with minimal possibility for confusion.
-
-
-
-
-.. _WignerArguments:
-
-Wigner Function
----------------
-
-This example integrates the two-dimensional partial differential equation
-
-.. math::
-    \begin{split}
-    \frac{\partial W}{\partial t} &= \Bigg[ \left(\omega + \frac{U_{int}}{\hbar}\left(x^2+y^2-1\right)\right) \left(x \frac{\partial}{\partial y} 
-    - y \frac{\partial}{\partial x}\right)\\
-    &\phantom{=\Bigg[} - \frac{U_{int}}{16 \hbar}\left(x\left(\frac{\partial^3}{\partial x^2 \partial y}
-    +\frac{\partial^3}{\partial y^3}\right)-y\left(\frac{\partial^3}{\partial y^2 \partial x}+\frac{\partial^3}{\partial x^3}\right)\right)\Bigg]W(x,y,t)
-    \end{split}
-
-with the added restriction that the derivative is forced to zero outside a certain radius.  This extra condition helps maintain the long-term stability of the integration. The script can be found in ``examples/wigner_arguments_mpi.xmds`` under your XMDS2 installation directory.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>wigner</name>
-      <author>Graham Dennis and Joe Hope</author>
-      <description>
-        Simulation of the Wigner function for an anharmonic oscillator with the initial state
-        being a coherent state.
-      </description>
-      <features>
-        <benchmark />
-        <globals>
-          <![CDATA[
-            real Uint_hbar_on16;
-          ]]>
-        </globals>
-        <arguments>
-          <argument name="omega" type="real" default_value="0.0" />
-          <argument name="alpha_0"     type="real" default_value="3.0" />
-          <argument name="absorb"     type="real" default_value="8.0" />
-          <argument name="width" type="real" default_value="0.3" />
-          <argument name="Uint_hbar" type="real" default_value="1.0" />
-          <![CDATA[
-            /* derived constants */
-            Uint_hbar_on16 = Uint_hbar/16.0;
-          ]]>
-        </arguments>
-        <bing />
-        <fftw plan="patient" />
-        <openmp />
-      </features>
-
-      <driver name="distributed-mpi" />
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="128"  domain="(-6, 6)" />
-          <dimension name="y" lattice="128"  domain="(-6, 6)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="main" initial_basis="x y" type="complex">
-        <components> W </components>
-        <initialisation>
-          <![CDATA[
-            W = 2.0/M_PI * exp(-2.0*(y*y + (x-alpha_0)*(x-alpha_0)));
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="dampConstants" initial_basis="x y" type="real">
-        <components>damping</components>
-        <initialisation>
-          <![CDATA[
-          if (sqrt(x*x + y*y) > _max_x-width)
-            damping = 0.0;
-          else
-            damping = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK89" tolerance="1e-7" interval="7.0e-4" steps="100000">
-          <samples>50</samples>
-          <operators>
-            <operator kind="ex" constant="yes">
-              <operator_names>Lx Ly Lxxx Lxxy Lxyy Lyyy</operator_names>
-              <![CDATA[
-                Lx = i*kx;
-                Ly = i*ky;
-                Lxxx = -i*kx*kx*kx;
-                Lxxy = -i*kx*kx*ky;
-                Lxyy = -i*kx*ky*ky;
-                Lyyy = -i*ky*ky*ky;
-              ]]>
-            </operator>
-            <integration_vectors>main</integration_vectors>
-            <dependencies>dampConstants</dependencies>
-            <![CDATA[
-            real rotation = omega + Uint_hbar*(-1.0 + x*x + y*y);
-
-            dW_dt = damping * ( rotation * (x*Ly[W] - y*Lx[W]) 
-                        - Uint_hbar_on16*( x*(Lxxy[W] + Lyyy[W]) - y*(Lxyy[W] + Lxxx[W]) )
-                    );
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="x y" initial_sample="yes">
-          <moments>WR WI</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            _SAMPLE_COMPLEX(W);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-This example demonstrates two new features of XMDS2.  The first is the use of parallel processing for a deterministic problem.  The FFTW library only allows MPI processing of multidimensional vectors.  For multidimensional simulations, the generated program can be parallelised simply by adding the ``name="distributed-mpi"`` argument to the ``<driver>`` element.  
-
-.. code-block:: xpdeint
-
-    $ xmds2 wigner_argument_mpi.xmds 
-    xmds2 version 2.1 "Happy Mollusc" (r2680)
-    Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                        and the xmds team
-    Generating source code...
-    ... done
-    Compiling simulation...
-    ... done. Type './wigner' to run.
-        
-To use multiple processors, the final program is then called using the (implementation specific) MPI wrapper:
-
-.. code-block:: xpdeint
-
-    $ mpirun -np 2 ./wigner
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Sampled field (for moment group #1) at t = 0.000000e+00
-    Current timestep: 5.908361e-06
-    Sampled field (for moment group #1) at t = 1.400000e-05
-    Current timestep: 4.543131e-06
-    
-    ...
-
-The possible acceleration achievable when parallelising a given simulation depends on a great many things including available memory and cache.  As a general rule, it will improve as the simulation size gets larger, but the easiest way to find out is to test.  The optimum speed up is obviously proportional to the number of available processing cores.
-
-The second new feature in this simulation is the ``<arguments>`` element in the ``<features>`` block.  This is a way of specifying global variables with a given type that can then be input at run time.  The variables are specified in a self explanatory way
-
-.. code-block:: xpdeint
-
-        <arguments>
-          <argument name="omega" type="real" default_value="0.0" />
-            ...
-          <argument name="Uint_hbar" type="real" default_value="1.0" />
-        </arguments>
-        
-where the "default_value" is used as the valuable of the variable if no arguments are given.  In the absence of the generating script, the program can document its options with the ``--help`` argument:
-
-.. code-block:: none
-
-    $ ./wigner --help
-    Usage: wigner --omega <real> --alpha_0 <real> --absorb <real> --width <real> --Uint_hbar <real>
-
-    Details:
-    Option		Type		Default value
-    -o,  --omega	real 		0.0
-    -a,  --alpha_0	real 		3.0
-    -b,  --absorb	real 		8.0
-    -w,  --width	real 		0.3
-    -U,  --Uint_hbar	real 		1.0
-
-We can change one or more of these variables' values in the simulation by passing it at run time.
-
-.. code-block:: none
-
-    $ mpirun -np 2 ./wigner --omega 0.1 --alpha_0 2.5 --Uint_hbar 0
-    Found enlightenment... (Importing wisdom)
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Sampled field (for moment group #1) at t = 0.000000e+00
-    Current timestep: 1.916945e-04
-    
-    ...
-    
-The values that were used for the variables, whether default or passed in, are stored in the output file (wigner.xsil).
-
-.. code-block:: xpdeint
-
-    <info>
-    Script compiled with XMDS2 version 2.1 "Happy Mollusc" (r2680)
-    See http://www.xmds.org for more information.
-
-    Variables that can be specified on the command line:
-      Command line argument omega = 1.000000e-01
-      Command line argument alpha_0 = 2.500000e+00
-      Command line argument absorb = 8.000000e+00
-      Command line argument width = 3.000000e-01
-      Command line argument Uint_hbar = 0.000000e+00
-    </info>
-    
-Finally, note the shorthand used in the output group
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        _SAMPLE_COMPLEX(W);
-      ]]>
-
-which is short for
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        WR = W.Re();
-        WI = W.Im();
-      ]]>
- 
-
-.. _GroundStateBEC:
-
-Finding the Ground State of a BEC (continuous renormalisation)
---------------------------------------------------------------
-
-This simulation solves another partial differential equation, but introduces several powerful new features in XMDS2.  The nominal problem is the calculation of the lowest energy eigenstate of a non-linear Schrödinger equation:
-
-.. math::
-    \frac{\partial \phi}{\partial t} = i \left[\frac{1}{2}\frac{\partial^2}{\partial y^2} - V(y) - U_{int}|\phi|^2\right]\phi
-
-which can be found by evolving the above equation in imaginary time while keeping the normalisation constant.  This causes eigenstates to exponentially decay at the rate of their eigenvalue, so after a short time only the state with the lowest eigenvalue remains.  The evolution equation is straightforward:
-
-.. math::
-    \frac{\partial \phi}{\partial t} = \left[\frac{1}{2}\frac{\partial^2}{\partial y^2} - V(y) - U_{int}|\phi|^2\right]\phi
-
-but we will need to use new XMDS2 features to manage the normalisation of the function :math:`\phi(y,t)`.  The normalisation for a non-linear Schrödinger equation is given by :math:`\int dy |\phi(y,t)|^2 = N_{particles}`, where :math:`N_{particles}` is the number of particles described by the wavefunction.  
-
-The code for this simulation can be found in ``examples/groundstate_workedexamples.xmds``:
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>groundstate</name>
-      <author>Joe Hope</author>
-      <description>
-        Calculate the ground state of the non-linear Schrodinger equation in a harmonic magnetic trap.
-        This is done by evolving it in imaginary time while re-normalising each timestep.
-      </description>
-
-      <features>
-        <auto_vectorise />
-        <benchmark />
-        <bing />
-        <fftw plan="exhaustive" />
-        <globals>
-          <![CDATA[
-            const real Uint = 2.0;
-            const real Nparticles = 5.0;
-          ]]>
-        </globals>
-      </features>
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="y" lattice="256"  domain="(-15.0, 15.0)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="potential" initial_basis="y" type="real">
-        <components> V1 </components>
-        <initialisation>
-          <![CDATA[
-            V1  = 0.5*y*y;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="wavefunction" initial_basis="y" type="complex">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-            if (fabs(y) < 3.0) {
-              phi = 1.0;
-              // This will be automatically normalised later
-            } else {
-              phi = 0.0;
-            }
-                ]]>
-        </initialisation>
-      </vector>
-
-      <computed_vector name="normalisation" dimensions="" type="real">
-        <components> Ncalc </components>
-        <evaluation>
-          <dependencies basis="y">wavefunction</dependencies>
-          <![CDATA[
-            // Calculate the current normalisation of the wave function.
-            Ncalc = mod2(phi);
-          ]]>
-        </evaluation>
-      </computed_vector>
-
-      <sequence>
-          <filter>
-            <![CDATA[
-              printf("Hello world from a filter segment!\n");
-            ]]>
-          </filter>
-
-        <filter>
-            <dependencies>normalisation wavefunction</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);
-          ]]>
-        </filter>
-
-        <integrate algorithm="ARK45" interval="1.0" steps="4000" tolerance="1e-10">
-          <samples>25 4000</samples>
-          <filters where="step end">
-            <filter>
-              <dependencies>wavefunction normalisation</dependencies>
-              <![CDATA[
-                // Correct normalisation of the wavefunction
-                phi *= sqrt(Nparticles/Ncalc);
-              ]]>
-            </filter>
-          </filters>
-          <operators>
-            <operator kind="ip" constant="yes">
-              <operator_names>T</operator_names>
-              <![CDATA[
-                T = -0.5*ky*ky;
-              ]]>
-            </operator>
-            <integration_vectors>wavefunction</integration_vectors>
-            <dependencies>potential</dependencies>
-            <![CDATA[
-              dphi_dt = T[phi] - (V1 + Uint*mod2(phi))*phi;
-            ]]>
-          </operators>
-        </integrate>
-
-        <breakpoint filename="groundstate_break.xsil">
-          <dependencies basis="ky">wavefunction </dependencies>
-        </breakpoint>
-
-      </sequence>
-
-      <output>
-        <sampling_group basis="y" initial_sample="yes">
-          <moments>norm_dens</moments>
-          <dependencies>wavefunction normalisation</dependencies>
-          <![CDATA[
-            norm_dens = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group initial_sample="yes">
-          <moments>norm</moments>
-          <dependencies>normalisation</dependencies>
-          <![CDATA[
-            norm = Ncalc;
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-We have used the ``plan="exhasutive"`` option in the ``<fftw>`` element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the ~/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.
-
-This simulation introduces the first example of a very powerful feature in XMDS2: the ``<computed_vector>`` element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vector can never be used as an integration vector, as its values are not stored.  [...]
-
-The difference between a computed vector and a stored vector is emphasised by the replacement of the ``<initialisation>`` element with an ``<evaluation>`` element.  Apart from the name, they have virtually identical purpose and syntax.  
-
-.. code-block:: xpdeint
-
-  <computed_vector name="normalisation" dimensions="" type="real">
-    <components> Ncalc </components>
-    <evaluation>
-      <dependencies basis="y">wavefunction</dependencies>
-      <![CDATA[
-        // Calculate the current normalisation of the wave function.
-        Ncalc = mod2(phi);
-      ]]>
-    </evaluation>
-  </computed_vector>
-
-Here, our computed vector has no transverse dimensions and depends on the components of "wavefunction", so the extra transverse dimensions are integrated out.  This code therefore integrates the square modulus of the field, and returns it in the variable "Ncalc".  This will be used below to renormalise the "phi" field.  Before we examine that process, we have to introduce the ``<filter>`` element.
-
-The ``<filter>`` element can be placed in the ``<sequence>`` element, or inside ``<integrate>`` elements as we will see next.  Elements placed in the ``<sequence>`` element are executed in the order they are found in the .xmds file.  Filter elements place the included CDATA block directly into the generated program at the designated position.  If the element does not contain any dependencies, like in our first example, then the code is placed alone:
-
-.. code-block:: xpdeint
-
-    <filter>
-      <![CDATA[
-        printf("Hello world from a filter segment!\n");
-      ]]>
-    </filter>
-
-This filter block merely prints a string into the output when the generated program is run.  If the ``<filter>`` element contains dependencies, then the variables defined in those vectors (or computed vectors, or noise vectors) will be available, and the CDATA block will be placed inside loops that run over all the transverse dimensions used by the included vectors.  The second filter block in this example depends on both the "wavefunction" and "normalisation" vectors:
-
-.. code-block:: xpdeint
-
-    <filter>
-        <dependencies>normalisation wavefunction</dependencies>
-      <![CDATA[
-        phi *= sqrt(Nparticles/Ncalc);
-      ]]>
-    </filter>
-
-Since this filter depends on a vector with the transverse dimension "y", this filter will execute for each point in "y".  This code multiplies the value of the field "phi" by the factor required to produce a normalised function in the sense that  :math:`\int dy |\phi(y,t)|^2 = N_{particles}`.
-
-The next usage of a ``<filter>`` element in this program is inside the ``<integrate>`` element, where all filters are placed inside a ``<filters>`` element.
-
-.. code-block:: xpdeint
-
-    <filters where="step end">
-      <filter>
-        <dependencies>wavefunction normalisation</dependencies>
-        <![CDATA[
-          // Correct normalisation of the wavefunction
-          phi *= sqrt(Nparticles/Ncalc);
-        ]]>
-      </filter>
-    </filters>
-
-Filters placed in an integration block are applied each integration step.  The "where" flag is used to determine whether the filter should be applied directly before or directly after each integration step.  The default value for the where flag is ``where="step start"``, but in this case we chose "step end" to make sure that the final output was normalised after the last integration step.
-
-At the end of the sequence element we introduce the ``<breakpoint>`` element.  This serves two purposes.  The first is a simple matter of convenience.  Often when we manage our input and output from a simulation, we are interested solely in storing the exact state of our integration vectors.  A breakpoint element does exactly that, storing the components of any vectors contained within, taking all the normal options of the ``<output>`` element but not requiring any ``<sampling_group>`` e [...]
-
-.. code-block:: xpdeint
-
-    <breakpoint filename="groundstate_break.xsil">
-      <dependencies basis="ky">wavefunction</dependencies>
-    </breakpoint>
-
-If the filename argument is omitted, the output filenames are numbered sequentially.  Any given ``<breakpoint>`` element must only depend on vectors with identical dimensions.
-
-This program begins with a very crude guess to the ground state, but it rapidly converges to the lowest eigenstate.
-
-.. figure:: images/groundstateU2.*
-    :align: center
-    
-    The shape of the ground state rapidly approaches the lowest eigenstate.  For weak nonlinearities, it is nearly Gaussian.
-    
-.. figure:: images/groundstateU20.*
-    :align: center
-
-    When the nonlinear term is larger (:math:`U=20`), the ground state is wider and more parabolic.
-
-
-
-
-.. _HermiteGaussGroundStateBEC:
-
-Finding the Ground State of a BEC again
----------------------------------------
-
-Here we repeat the same simulation as in the :ref:`GroundStateBEC` example, using a different transform basis.  While spectral methods are very effective, and Fourier transforms are typically very efficient due to the Fast Fourier transform algorithm, it is often desirable to describe nonlocal evolution in bases other than the Fourier basis.  The previous calculation was the Schrödinger equation with a harmonic potential and a nonlinear term.  The eigenstates of such a system are known a [...]
-
-.. math::
-    \left[-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2\right]\phi_n(x) = E_n \phi_n(x)
-
-where
-
-.. math::
-    \phi_n(x,t) = \sqrt{\frac{1}{2^n n!}} \left(\frac{m \omega}{\hbar \pi}\right)^\frac{1}{4} e^{-\frac{m \omega x^2}{2\hbar}} H_n\left(\sqrt{\frac{m \omega}{\hbar}x}\right),\;\;\;\;\;\;E_n = \left(n+\frac{1}{2}\right) \omega
-
-where :math:`H_n(u)` are the physicist's version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire :math:`-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2` term as a diagonal term in the hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a simplified version of the ``examples/hermitegauss_gro [...]
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>hermitegauss_groundstate</name>
-      <author>Graham Dennis</author>
-      <description>
-        Solve for the groundstate of the Gross-Pitaevskii equation using the hermite-Gauss basis.
-      </description>
-  
-      <features>
-        <benchmark />
-        <bing />
-        <validation kind="run-time" />
-        <globals>
-          <![CDATA[
-            const real omegaz = 2*M_PI*20;
-            const real omegarho = 2*M_PI*200;
-            const real hbar = 1.05457148e-34;
-            const real M = 1.409539200000000e-25;
-            const real g = 9.8;
-            const real scatteringLength = 5.57e-9;
-            const real transverseLength = 1e-5;
-            const real Uint = 4.0*M_PI*hbar*hbar*scatteringLength/M/transverseLength/transverseLength;
-            const real Nparticles = 5.0e5;
-        
-            /* offset constants */
-            const real EnergyOffset = 0.3*pow(pow(3.0*Nparticles/4*omegarho*Uint,2.0)*M/2.0,1/3.0); // 1D   
-          ]]>
-        </globals>
-      </features>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="100" length_scale="sqrt(hbar/(M*omegarho))" transform="hermite-gauss" />
-        </transverse_dimensions>
-      </geometry>
-  
-      <vector name="wavefunction" initial_basis="x" type="complex">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-          phi = sqrt(Nparticles) * pow(M*omegarho/(hbar*M_PI), 0.25) * exp(-0.5*(M*omegarho/hbar)*x*x);
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <computed_vector name="normalisation" dimensions="" type="real">
-        <components> Ncalc </components>
-        <evaluation>
-          <dependencies basis="x">wavefunction</dependencies>
-          <![CDATA[
-            // Calculate the current normalisation of the wave function.
-            Ncalc = mod2(phi);
-          ]]>
-        </evaluation>
-      </computed_vector>
-  
-      <sequence>
-        <integrate algorithm="ARK45" interval="1.0e-2" steps="4000"  tolerance="1e-10">
-          <samples>100 100</samples>
-          <filters>
-            <filter>
-              <dependencies>wavefunction normalisation</dependencies>
-              <![CDATA[
-                // Correct normalisation of the wavefunction
-                phi *= sqrt(Nparticles/Ncalc);
-              ]]>
-            </filter>
-          </filters>
-          <operators>
-            <operator kind="ip" constant="yes" type="real">
-              <operator_names>L</operator_names>
-              <![CDATA[
-                L = EnergyOffset/hbar - (nx + 0.5)*omegarho;
-              ]]>
-            </operator>
-            <integration_vectors>wavefunction</integration_vectors>
-            <![CDATA[
-              dphi_dt = L[phi] - Uint/hbar*mod2(phi)*phi;
-            ]]>
-          </operators>
-        </integrate>
-
-        <filter>
-            <dependencies>normalisation wavefunction</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);
-          ]]>
-        </filter>
-    
-        <breakpoint filename="hermitegauss_groundstate_break.xsil" format="ascii">
-          <dependencies basis="nx">wavefunction</dependencies>
-        </breakpoint>
-      </sequence>
-  
-      <output>
-        <sampling_group basis="x" initial_sample="yes">
-          <moments>dens</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            dens = mod2(phi);
-          ]]>
-        </sampling_group>
-        <sampling_group basis="kx" initial_sample="yes">
-          <moments>dens</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            dens = mod2(phi);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The major difference in this simulation code, aside from the switch back from dimensionless units, is the new transverse dimension type in the ``<geometry>`` element.
-
-.. code-block:: xpdeint
- 
-          <dimension name="x" lattice="100" length_scale="sqrt(hbar/(M*omegarho))" transform="hermite-gauss" />
-
-We have explicitly defined the "transform" option, which by defaults expects the Fourier transform.  The ``transform="hermite-gauss"`` option requires the 'mpmath' package installed, just as Fourier transforms require the FFTW package to be installed.  The "lattice" option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polynomial and increases.  The number of hermite-Gaussian modes fully determines the irregular spatial grid  [...]
-
-The ``length_scale="sqrt(hbar/(M*omegarho))"`` option requires a real number, but since this script defines it in terms of variables, XMDS2 is unable to verify that the resulting function is real-valued at the time of generating the code.  XMDS2 will therefore fail to compile this program without the feature:
-
-.. code-block:: xpdeint
-
-        <validation kind="run-time" />
-
-which disables many of these checks at the time of writing the C-code.
-
-.. _2DMultistateSE:
-
-Multi-component Schrödinger equation
-------------------------------------
-
-This example demonstrates a simple method for doing matrix calculations in XMDS2.  We are solving the multi-component PDE
-
-.. math::
-    \frac{\partial \phi_j(x,y)}{\partial t} = \frac{i}{2}\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right)\phi_j(x,y) - i U(x,y) \sum_k V_{j k}\phi_k(x,y)
-    
-where the last term is more commonly written as a matrix multiplication.  Writing this term out explicitly is feasible for a small number of components, but when the number of components becomes large, or perhaps :math:`V_{j k}` should be precomputed for efficiency reasons, it is useful to be able to perform this sum over the integer dimensions automatically.  This example show how this can be done naturally using a computed vector.  The XMDS2 script is as follows:
-
-.. code-block:: xpdeint
-
-        <simulation xmds-version="2">
-          <name>2DMSse</name>
-
-          <author>Joe Hope</author>
-          <description>
-            Schroedinger equation for multiple internal states in two spatial dimensions.
-          </description>
-
-          <features>
-              <benchmark />
-              <bing />
-              <fftw plan="patient" />
-              <openmp />
-              <auto_vectorise />
-             </features>
-
-          <geometry>
-              <propagation_dimension> t </propagation_dimension>
-              <transverse_dimensions>
-                  <dimension name="x" lattice="32"  domain="(-6, 6)" />
-                  <dimension name="y" lattice="32"  domain="(-6, 6)" />
-                  <dimension name="j" type="integer" lattice="2" domain="(0,1)" aliases="k"/>
-              </transverse_dimensions>
-           </geometry>
-
-          <vector name="wavefunction" type="complex" dimensions="x y j">
-            <components> phi </components>
-            <initialisation>
-              <![CDATA[
-              phi = j*sqrt(2/sqrt(M_PI/2))*exp(-(x*x+y*y)/4)*exp(i*0.1*x);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <vector name="spatialInteraction" type="real" dimensions="x y">
-            <components> U </components>
-            <initialisation>
-              <![CDATA[
-              U=exp(-(x*x+y*y)/4);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <vector name="internalInteraction" type="real" dimensions="j k">
-            <components> V </components>
-            <initialisation>
-              <![CDATA[
-              V=3*(j*(1-k)+(1-j)*k);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <computed_vector name="coupling" dimensions="x y j" type="complex">
-            <components>
-              VPhi
-            </components>
-            <evaluation>
-              <dependencies basis="x y j k">internalInteraction wavefunction</dependencies>
-              <![CDATA[
-                // Calculate the current normalisation of the wave function.
-                VPhi = V*phi(j => k);
-              ]]>
-            </evaluation>
-          </computed_vector>
-
-          <sequence>
-            <integrate algorithm="ARK45" interval="2.0" tolerance="1e-7">
-              <samples>20 100</samples>
-              <operators>
-                <integration_vectors>wavefunction</integration_vectors>
-                <operator kind="ex" constant="yes">
-                  <operator_names>Ltt</operator_names>
-                  <![CDATA[
-                    Ltt = -i*(kx*kx+ky*ky)*0.5;
-                  ]]>
-                </operator>
-                <![CDATA[
-                dphi_dt = Ltt[phi] -i*U*VPhi;
-                ]]>
-                <dependencies>spatialInteraction coupling</dependencies>
-              </operators>
-            </integrate>
-          </sequence>
-
-          <output>
-            <sampling_group basis="x y j" initial_sample="yes">
-              <moments>density</moments>
-              <dependencies>wavefunction</dependencies>
-              <![CDATA[
-                density = mod2(phi);
-              ]]>
-            </sampling_group>
-            <sampling_group basis="x(0) y(0) j" initial_sample="yes">
-              <moments>normalisation</moments>
-              <dependencies>wavefunction</dependencies>
-              <![CDATA[
-                normalisation = mod2(phi);
-              ]]>
-            </sampling_group>
-          </output>
-        </simulation>
-
-The only truly new feature in this script is the "aliases" option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  :math:`V_{j k}` term is required to be a square array of dimension of this number of components.  If we wrote the k-index of :math:`V_{j k}` using a separate ``<dimension>`` element, then we would not be enforcing the requirement that the matrix be square.  Instead, we note that we will be using mul [...]
-
-.. code-block:: xpdeint
-
-                  <dimension name="j" type="integer" lattice="2" domain="(0,1)" aliases="k"/>
-
-This means that we can use the index "k", which will have exactly the same properties as the "j" index.  This is used to define the "V" function in the "internalInteraction" vector.  Now, just as we use a computed vector to perform an integration over our fields, we use a computed vector to calculate the sum.
-
-.. code-block:: xpdeint
-
-        <computed_vector name="coupling" dimensions="x y j" type="complex">
-          <components>
-            VPhi
-          </components>
-          <evaluation>
-            <dependencies basis="x y j k">internalInteraction wavefunction</dependencies>
-            <![CDATA[
-              // Calculate the current normalisation of the wave function.
-              VPhi = V*phi(j => k);
-            ]]>
-          </evaluation>
-        </computed_vector>
-
-Since the output dimensions of the computed vector do not include a "k" index, this index is integrated.  The volume element for this summation is the spacing between neighbouring values of "j", and since this spacing is one, this integration is just a sum over k, as required.
-
-
-By this point, we have introduced most of the important features in XMDS2.  More details on other transform options and rarely used features can be found in the :ref:`advancedTopics` section.
-
-
diff --git a/admin/userdoc-source/xsil2graphics2.rst b/admin/userdoc-source/xsil2graphics2.rst
deleted file mode 100644
index 0665961..0000000
--- a/admin/userdoc-source/xsil2graphics2.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. _xsil2graphics2:
-
-xsil2graphics2
-===============
-
-**xsil2graphics2** is a way of converting ".xsil" files to formats that other programs can read.  The syntax is described in the :ref:`QuickStartTutorial`, and by using the ``xsil2graphics2 --help`` option.  It currently can covert any output format for use by Mathematica.
-
-We recommend HDF5 format instead of the binary format for output and input, as many visualisation tools can already read/write to this format directly.
\ No newline at end of file
diff --git a/admin/xpdeint.tmbundle/Syntaxes/Cheetah - xpdeint template.tmLanguage b/admin/xpdeint.tmbundle/Syntaxes/Cheetah - xpdeint template.tmLanguage
deleted file mode 100644
index 5eef140..0000000
--- a/admin/xpdeint.tmbundle/Syntaxes/Cheetah - xpdeint template.tmLanguage	
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>fileTypes</key>
-	<array>
-		<string>tmpl</string>
-	</array>
-	<key>foldingStartMarker</key>
-	<string>/\*\*|\{\s*$</string>
-	<key>foldingStopMarker</key>
-	<string>\*\*/|^\s*\}</string>
-	<key>name</key>
-	<string>Cheetah - xpdeint template</string>
-	<key>patterns</key>
-	<array>
-		<dict>
-			<key>match</key>
-			<string>@(def [_a-zA-Z]\w*|end def|set|del|extends|attr|return|stop|import|from|try|except|raise)</string>
-			<key>name</key>
-			<string>string.unquoted.keyword.control.cheetah</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>@(if|end if|continue|break|for|end for|else if|else|pass|elif|while|end while).*</string>
-			<key>name</key>
-			<string>string.unquoted.keyword.control.flow.cheetah</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>@(super|filter|end filter|capture|end capture|silent|slurp|assert|@[_a-zA-Z][_a-zA-Z0-9.]*)</string>
-			<key>name</key>
-			<string>string.unquoted.keyword.other.cheetah</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>@\*</string>
-			<key>end</key>
-			<string>\*@</string>
-			<key>name</key>
-			<string>string.unquoted.comment.block.cheetah</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>@#</string>
-			<key>beginCaptures</key>
-			<dict>
-				<key>0</key>
-				<dict>
-					<key>name</key>
-					<string>punctuation.definition.comment.cheetah</string>
-				</dict>
-			</dict>
-			<key>end</key>
-			<string>$\n?</string>
-			<key>name</key>
-			<string>string.unquoted.comment.line.athash.cheetah</string>
-		</dict>
-		<dict>
-			<key>include</key>
-			<string>source.c++</string>
-		</dict>
-	</array>
-	<key>scopeName</key>
-	<string>source.c++.xpdeintcheetah</string>
-	<key>uuid</key>
-	<string>8321049C-C450-450C-AD7A-277F8100A544</string>
-</dict>
-</plist>
diff --git a/admin/xpdeint.tmbundle/Syntaxes/xpdeint.tmLanguage b/admin/xpdeint.tmbundle/Syntaxes/xpdeint.tmLanguage
deleted file mode 100644
index a2ffef3..0000000
--- a/admin/xpdeint.tmbundle/Syntaxes/xpdeint.tmLanguage
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>fileTypes</key>
-	<array>
-		<string>xmds</string>
-	</array>
-	<key>firstLineMatch</key>
-	<string><?(?i:xmds)</string>
-	<key>foldingStartMarker</key>
-	<string>(?x)
-		(^\s*(<[^!?%/](?!.+?(/>|</.+?>))|<[!%]--(?!.+?--%?>)|<%[!]?(?!.+?%>))
-		|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S))
-		)</string>
-	<key>foldingStopMarker</key>
-	<string>^\s*(</[^>]+>|[/%]>|-->)\s*$|^\s*\}</string>
-	<key>keyEquivalent</key>
-	<string>^~X</string>
-	<key>name</key>
-	<string>XMDS</string>
-	<key>patterns</key>
-	<array>
-		<dict>
-			<key>begin</key>
-			<string><!\[CDATA\[</string>
-			<key>captures</key>
-			<dict>
-				<key>0</key>
-				<dict>
-					<key>name</key>
-					<string>meta.tag.xml.xmds</string>
-				</dict>
-			</dict>
-			<key>contentName</key>
-			<string>source.c++.embedded.xmds</string>
-			<key>end</key>
-			<string>]]></string>
-			<key>patterns</key>
-			<array>
-				<dict>
-					<key>include</key>
-					<string>source.c++</string>
-				</dict>
-				<dict>
-					<key>match</key>
-					<string>\b(complex|fftw_complex)\b</string>
-					<key>name</key>
-					<string>storage.type.c++.xmds</string>
-				</dict>
-				<dict>
-					<key>match</key>
-					<string>\b((r|p)complex|real|imag|mod(2)?|arg|conj|c_(exp|log|sqrt))\b</string>
-					<key>name</key>
-					<string>support.function.xmds</string>
-				</dict>
-				<dict>
-					<key>match</key>
-					<string>\bi\b</string>
-					<key>name</key>
-					<string>constant.numeric.c++.xmds</string>
-				</dict>
-			</array>
-		</dict>
-		<dict>
-			<key>include</key>
-			<string>text.xml</string>
-		</dict>
-	</array>
-	<key>scopeName</key>
-	<string>text.xml.xmds</string>
-	<key>uuid</key>
-	<string>C57D99F8-C368-461F-B510-9590A6F552CB</string>
-</dict>
-</plist>
diff --git a/admin/xpdeint.tmbundle/info.plist b/admin/xpdeint.tmbundle/info.plist
deleted file mode 100644
index e68b05c..0000000
--- a/admin/xpdeint.tmbundle/info.plist
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>name</key>
-	<string>xpdeint</string>
-	<key>ordering</key>
-	<array>
-		<string>8321049C-C450-450C-AD7A-277F8100A544</string>
-		<string>CF496F1F-814E-4F57-926B-83EBED3037CF</string>
-	</array>
-	<key>uuid</key>
-	<string>05E72337-772C-4F29-AE57-E1C835A4025A</string>
-</dict>
-</plist>
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index ced6488..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,5 +0,0 @@
-xmds2 (2.1.2-1-20121121) wheezy-evmik; urgency=low
-
-  * Debianization
-
- -- Eugeniy Mikhailov <evgmik at gmail.com>  Wed, 21 Nov 2012 15:11:20 -0500
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index 7f8f011..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 3ab3b54..0000000
--- a/debian/control
+++ /dev/null
@@ -1,45 +0,0 @@
-Source: xmds2
-Section: python
-Priority: optional
-Maintainer: Eugeniy Mikhailov <evgmik at gmail.com>
-Build-Depends: debhelper (>= 7.0.50~),
-	       cdbs (>= 0.4.43),
-               python-h5py,
-               python-setuptools,
-               python-pyparsing,
-               python-markdown,
-               python-mpmath,
-	       python-numpy,
-	       python-lxml,
-               python-cheetah
-Standards-Version: 3.8.4
-XB-Python-Version: ${python:Versions}
-Homepage: http://xmds.sourceforge.net/
-
-Package: xmds2
-Architecture: any
-Depends: ${python:Depends}, 
-         ${shlibs:Depends}, 
-         ${misc:Depends}, 
-         fftw3-dev, 
-	 libhdf5-serial-dev,
-	 libatlas-base-dev,
-         libmpich2-dev, 
-	 mpich2, 
-	 python-h5py,
-	 python-setuptools,
-	 python-pyparsing,
-	 python-markdown,
-	 python-mpmath,
-	 python-numpy,
-	 python-lxml,
-	 python-cheetah, 
-         python-pyparsing, 
-         g++
-Description: eXtensible Multi-Dimensional Simulator
- XMDS is a code generator that integrates equations, from Ordinary
- Differential Equations (ODEs) up to stochastic Partial Differential
- Equations (PDEs). You write them down in human readable form in an
- XML file, and it goes away and writes and compiles a C++ program that
- integrates those equations as fast as it can possibly be done in your
- architecture.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 54a627a..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,31 +0,0 @@
-This work was packaged for Debian by:
-
-    Eugeniy Mikhailov <evgmik at gmail.com> on Tue, 17 May 2011 11:48:44 -0400
-
-It was downloaded from:
-
-    http://www.xmds.org/
-
-Upstream Author(s):
-
-    Graham Dennis <graham.dennis at anu.edu.au>,
-    Andy Ferris,
-    Joe Hope,
-    Michael Hush,
-    Mattias Johnsson,
-    Gabriel McManus
-
-Copyright:
-
-    Copyright (C) 2000-2012 Graham Dennis, Andy Ferris, Joe Hope, Michael Hush, Mattias Johnsson, Gabriel McManus
-
-License:
-
-    GNU General Public License 2
-
-The Debian packaging is:
-
-    Copyright (C) 2011-2012 Eugeniy Mikhailov <evgmik at gmail.com>
-
-and is licensed under the GPL version 3,
-see "/usr/share/common-licenses/GPL-3".
diff --git a/debian/docs b/debian/docs
deleted file mode 100644
index b1731f3..0000000
--- a/debian/docs
+++ /dev/null
@@ -1,3 +0,0 @@
-README
-COPYRIGHT
-ReleaseNotes
diff --git a/debian/pycompat b/debian/pycompat
deleted file mode 100644
index 0cfbf08..0000000
--- a/debian/pycompat
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/debian/pyversions b/debian/pyversions
deleted file mode 100644
index ec68696..0000000
--- a/debian/pyversions
+++ /dev/null
@@ -1 +0,0 @@
-2.5-2.9
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index 4b8666c..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-
-# this blocks attempts to download python build dependencies
-# if the relevant package is incidentally forgotten in Build-Depends 
-export http_proxy = http://127.0.0.1:9/ 
-
-#DH_VERBOSE=1
-
-%:
-	dh $@ --with python2
-
-override_dh_auto_install:
-	python setup.py install --root=debian/xmds2 --install-layout=deb 
-
-override_dh_auto_test:
-
-override_dh_auto_clean:
-	dh_clean
-	cd xpdeint; waf/waf-light configure
-	make clean
-	rm -rf xmds2.egg-info/
-	rm -f xpdeint/.lock-waf_linux2_build
-	rm -f xpdeint/.wafpickle-98
-	rm -f xpdeint/Version.py
-	rm -rf xpdeint/c4che/
-	rm -f xpdeint/config.log
-
diff --git a/debian/xmds2.examples b/debian/xmds2.examples
deleted file mode 100644
index e39721e..0000000
--- a/debian/xmds2.examples
+++ /dev/null
@@ -1 +0,0 @@
-examples/*
diff --git a/debian/xmds2.manpages b/debian/xmds2.manpages
deleted file mode 100644
index 536177e..0000000
--- a/debian/xmds2.manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-man/xmds2.1
-man/xsil2graphics2.1
diff --git a/documentation/.buildinfo b/documentation/.buildinfo
index 44f81c2..d19f58e 100644
--- a/documentation/.buildinfo
+++ b/documentation/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 7cf3005835a9c6446e373e48bdc8c2f8
-tags: 645f666f9bcd5a90fca523b33c5a78b7
+config: cf01567310e10be74fec2fe5c88d85cf
+tags: fbb0d17656682115ca4d033fb2f83ba1
diff --git a/documentation/_images/IntroduceNewElement.png b/documentation/_images/IntroduceNewElement.png
new file mode 100644
index 0000000..db55dde
Binary files /dev/null and b/documentation/_images/IntroduceNewElement.png differ
diff --git a/documentation/_images/IntroduceNewIntegrationTechnique.png b/documentation/_images/IntroduceNewIntegrationTechnique.png
new file mode 100644
index 0000000..9a2d64a
Binary files /dev/null and b/documentation/_images/IntroduceNewIntegrationTechnique.png differ
diff --git a/documentation/_images/Overall_Flowchart.dia b/documentation/_images/Overall_Flowchart.dia
new file mode 100755
index 0000000..0c5c81b
Binary files /dev/null and b/documentation/_images/Overall_Flowchart.dia differ
diff --git a/documentation/_images/Overall_Flowchart.png b/documentation/_images/Overall_Flowchart.png
new file mode 100644
index 0000000..02d52b3
Binary files /dev/null and b/documentation/_images/Overall_Flowchart.png differ
diff --git a/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.dia b/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.dia
new file mode 100755
index 0000000..239d7c1
Binary files /dev/null and b/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.dia differ
diff --git a/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.png b/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.png
new file mode 100644
index 0000000..6516377
Binary files /dev/null and b/documentation/_images/Subprocess3_4_11_2_ParseIntegrateElement.png differ
diff --git a/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.dia b/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.dia
new file mode 100755
index 0000000..72d6f8c
Binary files /dev/null and b/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.dia differ
diff --git a/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.png b/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.png
new file mode 100644
index 0000000..b9a6181
Binary files /dev/null and b/documentation/_images/Subprocess3_4_11_ParseTopLvlSeqElements.png differ
diff --git a/documentation/_images/Subprocess3_4_parseXMLDocument.dia b/documentation/_images/Subprocess3_4_parseXMLDocument.dia
new file mode 100755
index 0000000..b0c0acb
Binary files /dev/null and b/documentation/_images/Subprocess3_4_parseXMLDocument.dia differ
diff --git a/documentation/_images/Subprocess3_4_parseXMLDocument.png b/documentation/_images/Subprocess3_4_parseXMLDocument.png
new file mode 100644
index 0000000..be02807
Binary files /dev/null and b/documentation/_images/Subprocess3_4_parseXMLDocument.png differ
diff --git a/documentation/_images/Subprocess3_ParsingXMLFile.dia b/documentation/_images/Subprocess3_ParsingXMLFile.dia
new file mode 100755
index 0000000..b43ccd9
Binary files /dev/null and b/documentation/_images/Subprocess3_ParsingXMLFile.dia differ
diff --git a/documentation/_images/Subprocess3_ParsingXMLFile.png b/documentation/_images/Subprocess3_ParsingXMLFile.png
new file mode 100644
index 0000000..b0ce0fb
Binary files /dev/null and b/documentation/_images/Subprocess3_ParsingXMLFile.png differ
diff --git a/documentation/_images/error_scaling.png b/documentation/_images/error_scaling.png
new file mode 100644
index 0000000..3af9e16
Binary files /dev/null and b/documentation/_images/error_scaling.png differ
diff --git a/documentation/_images/richardsonExtrapolation.png b/documentation/_images/richardsonExtrapolation.png
new file mode 100644
index 0000000..b72345b
Binary files /dev/null and b/documentation/_images/richardsonExtrapolation.png differ
diff --git a/documentation/_sources/advanced_topics.txt b/documentation/_sources/advanced_topics.txt
deleted file mode 100644
index aaa51fb..0000000
--- a/documentation/_sources/advanced_topics.txt
+++ /dev/null
@@ -1,276 +0,0 @@
-.. _AdvancedTopics:
-
-Advanced Topics
-===============
-
-This section has further details on some important topics.
-
-:ref:`Importing` (importing data into XMDS2, and data formats used in the export)
-
-:ref:`Convolutions` (extra information on the Fourier transforms used in XMDS2, and applications to defining convolutions)
-
-:ref:`DimensionAliases` (dimensions which are declared to be identical, useful for correlation functions)
-
-.. _Importing:
-
-Importing data
---------------
-
-There are many cases where it is advantageous to import previously acquired data into XMDS2. For example, the differential equation you wish to solve may depend on a complicated functional form, which is more easily obtained via an analytical package such as Mathematica or Maple. Furthermore, importing data from another source can be quicker than needlessly performing calculations in XMDS2. In this tutorial, we shall consider an example of importing into XMDS2 a function generated in Mat [...]
-
-Suppose we want to import the following function into XMDS2:
-
-.. math::
-    f(x) = x^2
-
-The first step is to create an hdf5 file, from XMDS2, which specifies the dimensions of the grid for the x dimension. Create and save a new XMDS2 file. For the purposes of this tutorial we shall call it "grid_specifier.xmds" with name "grid_specifier". Within this file, enter the following "dummy" vector - which we shall call "gen_dummy" - which depends on the x dimension:
-
-.. code-block:: xpdeint
-
-    <vector type="real" name="gen_dummy" dimensions="x">
-      <components>dummy</components>
-      <initialisation>
-      <![CDATA[ 
-        dummy = x;
-          ]]>
-      </initialisation>
-    </vector>
-
-What "dummy" is is not actually important. It is only necessary that it is a function of :math:`x`. However, it is important that the domain and lattice for the :math:`x` dimension are identical to those in the XMDS2 you plan to import the function into. We output the following xsil file (in hdf5 format) by placing a breakpoint in the sequence block as follows:
-
-.. code-block:: xpdeint
-
-    <sequence>
-      <breakpoint filename="grid.xsil" format="hdf5">
-          <dependencies>
-            gen_dummy
-          </dependencies>
-      </breakpoint>
-
-In terminal, compile the file "grid_specifier.xmds" in XMDS2 and run the c code as usual. This creates two files - "grid.xsil" and "grid.h5". The file "grid.h5" contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function :math:`f(x)` which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.
-
-In order to read the "grid.h5" data into Mathematica version 6.0, type the following command into terminal:.. code-block::
-
-    xsil2graphics2 -e grid.xsil
-    
-This creates the Mathematica notebook "grid.nb". Open this notebook in Mathematica and evaluate the first set of cells. This has loaded the grid information into Mathematica. For example, suppose you have specified that the :math:`x` dimension has a lattice of 128 points and a domain of (-32, 32). Then calling "x1" in Mathematica should return the following list:
-
-.. code-block:: none
- 
-  {-32., -31.5, -31., -30.5, -30., -29.5, -29., -28.5, -28., -27.5, 
-  -27., -26.5, -26., -25.5, -25., -24.5, -24., -23.5, -23., -22.5, 
-  -22., -21.5, -21., -20.5, -20., -19.5, -19., -18.5, -18., -17.5, 
-  -17., -16.5, -16., -15.5, -15., -14.5, -14., -13.5, -13., -12.5, 
-  -12., -11.5, -11., -10.5, -10., -9.5, -9., -8.5, -8., -7.5, -7., 
-  -6.5, -6., -5.5, -5., -4.5, -4., -3.5, -3., -2.5, -2., -1.5, -1., 
-  -0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5, 
-  7., 7.5, 8., 8.5, 9., 9.5, 10., 10.5, 11., 11.5, 12., 12.5, 13., 
-  13.5, 14., 14.5, 15., 15.5, 16., 16.5, 17., 17.5, 18., 18.5, 19., 
-  19.5, 20., 20.5, 21., 21.5, 22., 22.5, 23., 23.5, 24., 24.5, 25., 
-  25.5, 26., 26.5, 27., 27.5, 28., 28.5, 29., 29.5, 30., 30.5, 31., 
-  31.5}
-
-This is, of course, the list of points which define our grid.
-
-We are now in a position to define the function :math:`f(x)` in Mathematica. Type the following command into a cell in the Mathematica notebook "grid.nb":
-
-.. code-block:: none
-
-  f[x_]:= x^2
-
-At this stage this is an abstract mathematical function as defined in Mathematica. What we need is a list of values for :math:`f(x)` corresponding to the specified grid points. We will call this list "func". This achieved by simply acting the function on the list of grid points "x1":
-
-.. code-block:: none
-
-  func := f[x1]
-
-For the example grid mentioned above, calling "func" gives the following list:
-
-.. code-block:: none
-
-  {1024., 992.25, 961., 930.25, 900., 870.25, 841., 812.25, 784.,
-  756.25, 729., 702.25, 676., 650.25, 625., 600.25, 576., 552.25, 529., 
-  506.25, 484., 462.25, 441., 420.25, 400., 380.25, 361., 342.25, 324., 
-  306.25, 289., 272.25, 256., 240.25, 225., 210.25, 196., 182.25, 169., 
-  156.25, 144., 132.25, 121., 110.25, 100., 90.25, 81., 72.25, 64., 
-  56.25, 49., 42.25, 36., 30.25, 25., 20.25, 16., 12.25, 9., 6.25, 4., 
-  2.25, 1., 0.25, 0., 0.25, 1., 2.25, 4., 6.25, 9., 12.25, 16., 20.25, 
-  25., 30.25, 36., 42.25, 49., 56.25, 64., 72.25, 81., 90.25, 100., 
-  110.25, 121., 132.25, 144., 156.25, 169., 182.25, 196., 210.25, 225., 
-  240.25, 256., 272.25, 289., 306.25, 324., 342.25, 361., 380.25, 400., 
-  420.25, 441., 462.25, 484., 506.25, 529., 552.25, 576., 600.25, 625., 
-  650.25, 676., 702.25, 729., 756.25, 784., 812.25, 841., 870.25, 900., 
-  930.25, 961., 992.25}
-  
-  
-The next step is to export the list "func" as an h5 file that XMDS2 can read. This is done by typing the following command into a Mathematica cell:
-  
-.. code-block:: none
-  
-   SetDirectory[NotebookDirectory[]];
-   Export["func.h5", {func, x1}, {"Datasets", { "function_x", "x"}}]
-   
-In the directory containing the notebook "grid.nb" you should now see the file "func.h5". This file essentially contains the list ``{func, x1}``. However, the hdf5 format stores func and x1 as separate entities called "Datasets". For importation into XMDS2 it is necessary that these datasets are named. This is precisely what the segment ``{"Datasets", { "function_x", "x"}}`` in the above Mathematica command does. The dataset corresponding to the grid x1 needs to be given the name of the  [...]
-
-The final step is to import the file "func.h5" into your primary XMDS2 file. This data will be stored as a vector called "gen_function_x", in component "function_x".
-
-.. code-block:: xpdeint
-
-  <vector type="real" name="gen_function_x" dimensions="x">
-    <components>function_x</components> 
-    <initialisation kind="hdf5">
-      <filename> function_x.h5 </filename>
-    </initialisation>
-  </vector>
-  
-You're now done. Anytime you want to use :math:`f(x)` you can simply refer to "function_x" in the vector "gen_function_x".
-
-The situation is slightly more complicated if the function you wish to import depends on more than one dimension. For example, consider
-
-.. math::
-    g(x,y) = x \sin(y)
-
-As for the single dimensional case, we need to export an hdf5 file from XMDS2 which specifies the dimensions of the grid. As in the one dimensional case, this is done by creating a dummy vector which depends on all the relevant dimensions:
-
-.. code-block:: xpdeint
-
-    <vector type="real" name="gen_dummy" dimensions="x y">
-      <components>dummy</components>
-      <initialisation>
-      <![CDATA[ 
-        dummy = x;
-          ]]>
-      </initialisation>
-    </vector>
-    
-and exporting it as shown above.
-
-After importing the grid data into Mathematica, define the multi-dimensional function which you wish to import into XMDS2:
-
-.. code-block:: none
-
-  g[x_,y_]:= x*Sin[y]
-  
-We need to create a 2x2 array of data which depends upon the imported lists x1 and y1. This can be done by using the Table function:
-
-.. code-block:: none
-
-  func := Table[g[x, p], {x, x1}, {p, p1}]
-  
-This function can be exported as an h5 file,
-
-.. code-block:: none
-  
-  SetDirectory[NotebookDirectory[]];
-  Export["func.h5", {func, x1, y1}, {"Datasets", { "function_x", "x", "y"}}]
-
-and imported into XMDS2 as outlined above.
-
-.. _Convolutions:
-
-Convolutions and Fourier transforms
------------------------------------
-
-When evaluating a numerical Fourier transform, XMDS2 doesn't behave as expected. While many simulations have ranges in their spatial coordinate (here assumed to be x) that range from some negative value :math:`x_\text{min}` to some positive value :math:`x_\text{max}`, the Fourier transform used in XMDS2 treats all spatial coordinates as starting at zero. The result of this is that a phase factor of the form :math:`e^{-i x_\text{min} k}` is applied to the Fourier space functions after all [...]
-
-The standard Fourier transform is
-
-.. math::
-
-	\mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i x k} dx
-
-The XMDS2 Fourier transform is
-
-.. math::
-	\tilde{\mathcal{F}}\left[f(x)\right](k) &= \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i (x+ x_\text{min}) k} dx \\
-	&= e^{-i x_\text{min} k} \mathcal{F}\left[f(x)\right](k)
-
-When the number of forward Fourier transforms and backwards Fourier transforms are unequal a phase factor is required. Some examples of using Fourier transforms in XMDS2 are shown below.
-
-Example 1
-^^^^^^^^^
-
-.. image:: images/FourierTransformEx1.*
-    :align: center
-
-When data is input in Fourier space and output in real space there is one backwards Fourier transform is required. Therefore the Fourier space data must be multiplied by a phase factor before the backwards Fourier transform is applied.
-
-.. math::
-
-	\mathcal{F}^{-1}[F(k)](x) = \tilde{\mathcal{F}}[e^{i x_\text{min} k} F(k)](x)
-
-Example 2
-^^^^^^^^^
-.. image:: images/FourierTransformEx2.*
-    :align: center
-    
-Functions of the form :math:`h(x) = \int f(x') g(x-x') dx'` can be evaluated using the convolution theorem:
-
-.. math::
-
-	\mathcal{F}[h(x)](k) = \mathcal{F}[f(x)](k) \times \mathcal{F}[g(x)](k)
-
-This requires two forward Fourier transforms to get the two functions f and g into Fourier space, and one backwards Fourier transform to get the resulting product back into real space. Thus in Fourier space the product needs to be multiplied by a phase factor :math:`e^{-i x_\text{min} k}`
-
-
-Example 3
-^^^^^^^^^
-.. image:: images/FourierTransformEx3.*
-    :align: center
-    
-Sometimes when the convolution theorem is used one of the forward Fourier transforms is calculated analytically and input in Fourier space. In this case only one forward numerical Fourier transform and one backward numerical Fourier transform is used. The number of forward and backward transforms are equal, so no phase factor is required.
-
-.. _LooseGeometryMatchingMode:
-
-'Loose' ``geometry_matching_mode``
-----------------------------------
-
-.. _DimensionAliases:
-
-Dimension aliases
------------------
-
-Dimension aliases specify that two or more dimensions have exactly the same ``lattice``, ``domain`` and ``transform``.  This can be useful in situations where the problem enforces this, for example when computing correlation functions or representing square matrices.  
-
-Dimension aliases are not just a short-hand for defining an additional dimension, they also permit dimensions to be accessed :ref:`non-locally <ReferencingNonlocal>`, which is essential when computing spatial correlation functions.
-
-Here is how to compute a spatial correlation function :math:`g^{(1)}(x, x') = \psi^*(x) \psi(x')` of the quantity ``psi``:
-
-.. code-block:: xpdeint
-
-  <simulation xmds-version="2">
-    
-    <!-- name, features block -->
-        
-    <geometry>
-      <propagation_dimension> t </propagation_dimension>
-      <transverse_dimensions>
-        <dimension name="x" lattice="1024" domain="(-1.0, 1.0)" aliases="xp" />
-      </transverse_dimensions>
-    </geometry>
-    
-    <vector name="wavefunction" type="complex" >
-      <components> psi </components>
-      <initialisation>
-        <!-- initialisation code -->
-      </initialisation>
-    </vector>
-    
-    <computed_vector name="correlation" dimensions="x xp" type="complex" >
-      <components> g1 </components>
-      <evaluation>
-        <dependencies> wavefunction </dependencies>
-        <![CDATA[
-          g1 = conj(psi(x => x)) * psi(x => xp);
-        ]]>
-      </evaluation>
-    </computed_vector>
-    
-    <!-- integration and sampling code -->
-    
-  </simulation>
-
-In this simulation note that the vector ``wavefunction`` defaults to only having the dimension "x" even though "xp" is also a dimension (implicitly declared through the ``aliases`` attribute).  ``vector``'s without an explicit ``dimensions`` attribute will only have the dimensions that are explicitly listed in the ``transverse_dimensions`` block, i.e. this will not include aliases.
-
-See the example ``groundstate_gaussian.xmds`` for a complete example.
-      
\ No newline at end of file
diff --git a/documentation/_sources/developer.txt b/documentation/_sources/developer.txt
deleted file mode 100644
index 2e77a43..0000000
--- a/documentation/_sources/developer.txt
+++ /dev/null
@@ -1,121 +0,0 @@
-Developer Documentation
-=======================
-
-Developers need to know more than users.  For example, they need to know about the test suite, and writing test cases.  They need to know how to perform a developer installation.  They need to know how to edit and compile this documentation.  They need a step-by-step release process.
-
-.. _TestScripts:
-
-Test scripts
-------------
-
-Every time you add a new feature and/or fix a new and exciting bug, it is a great idea to make sure that the new feature works and/or the bug stays fixed.  Fortunately, it is pleasantly easy to add a test case to the testing suite.
-
-1. Write normal XMDS script that behaves as you expect.
-2. Add a ``<testing>`` element to your script.  You can read the description of this element and its contents below, and have a look at other testcases for examples, but the basic structure is simple:.
-
-.. parsed-literal::
-
-      <:ref:`testing <TestingElement>`> 
-        <:ref:`command_line <CommandLineElement>`> <:ref:`/command_line <CommandLineElement>`>
-        <:ref:`arguments <ArgumentsElement>`>
-          <:ref:`argument <ArgumentElement>` />
-          <:ref:`argument <ArgumentElement>` />
-          ...
-        <:ref:`/arguments <ArgumentsElement>`>
-        <:ref:`input_xsil_file <InputXSILFileElement>` />
-        <:ref:`xsil_file <XSILFileElement>`>
-          <:ref:`moment_group <MomentGroupElement>` />
-          <:ref:`moment_group <MomentGroupElement>` />
-          ...
-        <:ref:`/xsil_file <XSILFileElement>`>
-      <:ref:`/testing <TestingElement>`>
-      
-3. Put into the appropriate ``testsuite/`` directory.
-4. run ``./run_tests.py`` This will automatically generate your ``_expected`` files.
-5. Commit the ``.xmds``, ``*_expected.xsil`` file and any ``*_expected*`` data files.
-  
-.. _TestingElement:
-
-Testing element
-~~~~~~~~~~~~~~~
-
-
-
-.. _CommandLineElement:
-
-command_line element
-~~~~~~~~~~~~~~~~~~~~
-
-
-.. _InputXSILFileElement:
-
-input_xsil_file element
-~~~~~~~~~~~~~~~~~~~~~~~
-
-
-.. _XSILFileElement:
-
-xsil_file element
-~~~~~~~~~~~~~~~~~
-
-
-.. _MomentGroupElement:
-
-moment_group element
-~~~~~~~~~~~~~~~~~~~~
-
-
-
-Steps to update ``XMDS`` script validator (XML schema)
-------------------------------------------------------
-
-1. Modify ``xpdeint/support/xpdeint.rnc``. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes.
-2. Run ``make`` in ``xpdeint/support/`` to update ``xpdeint/support/xpdeint.rng``. This is the file which is actually used, which is in RelaxNG format, but RelaxNG compact is easier to read and edit.
-3. Commit both ``xpdeint/support/xpdeint.rnc`` and ``xpdeint/support/xpdeint.rng``.
-
-
-Directory layout
-----------------
-
-XMDS2's code and templates
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All ``.tmpl`` files are Cheetah template files.  These are used to generate C++ code.  These templates are compiled as part of the XMDS2 build process to ``.py`` files of the same name.  Do not edit the generated ``.py`` files, always edit the ``.tmpl`` files and regenerate the corresponding ``.py`` files with ``make``.
-
-* ``xpdeint/``: 
-	* ``Features/``: Code for all ``<feature>`` elements, such as ``<globals>`` and ``<auto_vectorise>``
-		* ``Transforms/``: Code for the Fourier and matrix-based transforms (including MPI variants).
-	* ``Geometry/``: Code for describing the geometry of simulation dimensions and domains.  Includes code for ``Geometry``, ``Field`` and all ``DimensionRepresentations``.
-	* ``Operators/``: Code for all ``<operator>`` elements, including ``IP``, ``EX`` and the temporal derivative operator ``DeltaA``.
-	* ``Segments/``: Code for all elements that can appear in a ``<segments>`` tag.  This includes ``<integrate>``, ``<filter>``, and ``<breakpoint>``.
-		* ``Integrators``: Code for fixed and adaptive integration schemes, and all steppers (e.g. ``RK4``, ``RK45``, ``RK9``, etc.)
-	* ``Stochastic/``: Code for all random number generators and the random variables derived from them.
-		* ``Generators/``: Code for random number generators, includes ``dSFMT``, ``POSIX``, ``Solirte``.
-		* ``RandomVariables/``: Code for the random variables derived from the random number generators.  These are the gaussian, poissonian and uniform random variables.
-	* ``SimulationDrivers/``: Code for all ``<driver>`` elements.  In particular, this is where the location of MPI and multi-path code.
-	* ``Vectors/``: Code for all ``<vector>`` elements, and their initialisation.  This includes normal ``<vector>`` elements as well as ``<computed_vector>`` and ``<noise_vector>`` elements.
-	* ``includes/``: C++ header and sources files used by the generated simulations.
-	* ``support/``: Support files
-		* ``wscript``: ``waf`` build script for configuring and compiling generated simulations
-		* ``xpdeint.rnc``: Compact RelaxNG XML validation for XMDS scripts.  This is the source file for the XML RelaxNG file ``xpdeint.rng``
-		* ``xpdeint.rng``: RelaxNG XML validation for XMDS scripts.  To regenerate this file from ``xpdeint.rnc``, just run ``make`` in this directory.
-	* ``waf/``: Our included version of the Python configuration and build tool ``waf``.
-	* ``waf_extensions/``: ``waf`` tool for compiling Cheetah templates.
-	* ``xsil2graphics2/``: Templates for the output formats supported by ``xsil2graphics2``.
-	* ``wscript``: ``waf`` build script for XMDS2 itself.
-	* ``CodeParser.py``: Minimally parses included C++ code for handling nonlocal dimension access, IP/EX operators and IP operator validation.
-	* ``Configuration.py``: Manages configuration and building of generated simulations.
-	* ``FriendlyPlusStyle.py``: Sphinx plug-in to improve formatting of XMDS scripts in user documentation.
-	* This directory also contains code for the input script parser, code blocks, code indentation, and the root ``_ScriptElement`` class.
-
-
-Support files
-~~~~~~~~~~~~~
-
-* ``admin/``: Documentation source, Linux installer and release scripts.
-	* ``developer-doc-source/``: source for epydoc python class documentation (generated from python code).
-	* ``userdoc-source/``: source for the user documentation (results visible at www.xmds.org and xmds2.readthedocs.org).
-	* ``xpdeint.tmbundle/``: TextMate support bundle for Cheetah templates and XMDS scripts
-* ``bin/``: Executable scripts to be installed as part of XMDS2 (includes ``xmds2`` and ``xsil2graphics2``).
-* ``examples/``: Example XMDS2 input scripts demonstrating most of XMDS2's features.
-* ``testsuite/``: Testsuite of XMDS2 scripts.  Run the testsuite by executing ``./run_tests.py``
\ No newline at end of file
diff --git a/documentation/_sources/documentation_toc.txt b/documentation/_sources/documentation_toc.txt
deleted file mode 100644
index bfb1f30..0000000
--- a/documentation/_sources/documentation_toc.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-.. _Documentation:
-
-Welcome to the documentation for XMDS2!
-=======================================
-
-.. toctree::
-   :maxdepth: 2
-   
-   introduction
-   
-   installation
-
-   tutorial
-   
-   worked_examples
-
-   reference_index
-   
-   advanced_topics
-   
-   faq
-   
-   upgrade
-   
-   optimisation_hints
-   
-   xsil2graphics2
-
-   developer
-
-   licensing
-   
-   news
diff --git a/documentation/_sources/faq.txt b/documentation/_sources/faq.txt
deleted file mode 100644
index 5ab1d77..0000000
--- a/documentation/_sources/faq.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-.. _FAQ:
-
-Frequently Asked Questions
-==========================
-
-XMDS scripts look complicated! How do I start?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you're unfamiliar with XMDS2, writing a script from scratch might seem difficult. In most cases, however, the best approach is to take an existing script and modify it for your needs. At the most basic level, you can simply take a script from the /examples directory that is similar to what you want to do, change the name of the integration variable(s) and replace the line describing the differential equation to use your DE instead. That's all you need to do, and will ensure all the sy [...]
-
-You can then incrementally change things such as the number of output points, what quantities get output, number of grid points, and so on. Many XMDS2 users have never written a script from scratch, and just use their previous scripts and example scripts as a scaffold when they create a script for a new problem.
-
-
-Where can I get help?
-~~~~~~~~~~~~~~~~~~~~~
-
-The documentation on this website is currently incomplete, but it still covers a fair bit and is worth reading. Similarly, the example scripts in the /examples directory cover most of the functionality of XMDS2, so it's worth looking looking through them to see if any of them do something similar to what you're trying to do.
-
-You should also feel free to email questions to the XMDS users' mailing list at xmds-users at lists.sourceforge.net, where the developers and other users can assist you. You can join the mailing list by going to http://sourceforge.net/projects/xmds/ and clicking on "mailing lists." Also, if you look through the mailing list archives, your particular problem may already have been discussed.
-
-
-How should I cite XMDS2?
-~~~~~~~~~~~~~~~~~~~~~~~~
-If you publish work that has involved XMDS2, please cite it as: `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-
-I think I found a bug! Where should I report it?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Please report bugs to the developer mailing list at xmds-devel at lists.sourceforge.net. In your email, please include a description of the problem and attach the XMDS2 script that triggers the bug.
-
-
-How do I put time dependence into my vectors?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Standard vectors can't have time dependence (or, more accurately, depend on the ``propagation_dimension`` variable), but computed vectors can. So, for example, if you have set your ``propagation_dimension`` as "t", you can simply use the variable "t" in your computed vector and it will work. 
-
-Alternatively, you can explicitly use the ``propagation_dimension`` variable in your differential equation inside the ``<operators>`` block.  
-
-
-Can I specify the range of my domain and number of grid points at run-time?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes, you can. In your script, specify the domain and number of grid points as arguments to be passed in at run-time, use those variables in your ``<geometry>`` block rather than explicitly specifying them, and use the ``<validation kind="run-time" />`` feature. See the :ref:`Validation <Validation>` entry in the Reference section for an example.
-
-While the domain can always be specified in this way, specifying the lattice size at run-time is currently only allowed with the following transforms: 'dct', 'dst', 'dft' and 'none' (see :ref:`Transforms <Validation>` in the Reference section).
-
-Also note that for some multi-dimensional spaces using different transforms, XMDS2 will sometimes optimise the code it generates based on the relative sizes of the dimensions. If one or more of the lattices are specified at run-time it is unable to do this and will have to make guesses. In some situations this may result in slightly slower code.
-
-
-When can I use IP operators (and why should I) and when must I use EX operators?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-An :ref:`<operator><OperatorNamesElement>` that specifies named operators to be used in integration equations can have the ``kind="IP"`` or ``kind="EX"`` attribute, standing for 'interaction picture' and 'explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by allowing larger timesteps, but have two important restrictions. [...]
-
-Some explanation is in order.  The IP algorithm applies the operator separately to the rest of the evolution.  The reason this can be so effective is that the separate evolution can be performed exactly.  The solution of the equation :math:`\frac{d \psi}{dt} = L \psi` is :math:`\psi(t+\Delta t) = exp(L \Delta t) \psi(t)` for arbitrarily large timestep :math:`\Delta t`.  For a diagonal linear ``L``, the matrix exponential is straightforward.  Also, when it is constant, then the exponentia [...]
-
-Therefore, the limitations of IP operators themselves means that they can only be applied to to named components of one of the integration vectors, and not functions of those components.  Furthermore, an IP operator acting on a component must only be used in the derivative for that particular component.  Secondly, due to the implementation of IP operators in XMDS2, it is not safe to use them in comments, or in conjunction with declared variables.  It is also not safe to multiply or divid [...]
-
-
-Visual Editors
-~~~~~~~~~~~~~~
-
-In this section goes stuff about how to set up TextMate (or other editors to highlight xpdeint scripts).
diff --git a/documentation/_sources/index.txt b/documentation/_sources/index.txt
deleted file mode 100644
index 23f0b57..0000000
--- a/documentation/_sources/index.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-.. xpdeint documentation master file, created by sphinx-quickstart on Tue Nov 18 15:10:03 2008.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
-Welcome to XMDS2!
-=================
-
-This website provides the documentation for XMDS2 (an all-new version of :ref:`XMDS<XMDSHistory>`), a software package that allows the fast and easy solution of sets of ordinary, partial and stochastic differential equations, using a variety of efficient numerical algorithms.
-
-If you publish work that has involved XMDS2, please cite it as `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-Getting Started
----------------
-
-To get a flavour of what XMDS2 can do, take a look at our :ref:`Quickstart Tutorial<QuickstartTutorial>`, then take a look at our comprehensive  :ref:`documentation<Documentation>`.  Automated installers are available for Linux and Mac OS X, refer to our :ref:`installation instructions<Installation>` for details.
-
-.. include:: news.rst 
\ No newline at end of file
diff --git a/documentation/_sources/installation.txt b/documentation/_sources/installation.txt
deleted file mode 100644
index 5555cdf..0000000
--- a/documentation/_sources/installation.txt
+++ /dev/null
@@ -1,251 +0,0 @@
-.. _Installation:
-
-************
-Installation
-************
-
-**XMDS2** can be installed on any unix-like system including Linux, Tru64, and Mac OS X.  It requires a C++ compiler, python, and several installed packages.  Many of these packages are optional, but a good idea to obtain full functionality.  
-
-Installers
-==========
-
-The easiest way to get started is with an installer.  If we don't have an installer for your system, follow the :ref:`manual installation <ManualInstallation>` instructions.
-
-.. tabularcolumns:: |c|c|c|
-
-.. list-table::
-    :widths: 15, 5, 5
-    :header-rows: 0
-
-    * - Linux (Ubuntu/Debian/Fedora/RedHat)
-
-      - `Download Linux Installer <http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh>`_
-
-      - :ref:`Learn more <linux_installation>`
-
-    * - OS X 10.6/10.7
-
-      - `Download OS X Installer <http://sourceforge.net/projects/xmds/files>`_
-
-      - :ref:`Learn more <mac_installation>`
-        
-    * - Other systems
-
-      - :ref:`Install from source <ManualInstallation>`
-      
-      -
-
-If you have one of the supported operating systems listed above, but you find the installer doesn't work for you, please let us know by emailing xmds-devel <at> lists.sourceforge.net. If you'd like to tweak the linux installer to work on a distribution we haven't tested, we'd love you to do that and let us know!
-
-.. _linux_installation:
-
-Linux installer instructions
-============================
-
-The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh
-
-Once you have downloaded it, make the installer executable and run it by typing the following into a terminal::
-
-  chmod u+x linux_installer.sh
-  ./linux_installer.sh
-
-Alternatively, if you wish to download and run the installer in a single step, you can use the following command::
-
-  /bin/bash -c "$(wget -qO - http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh)"
-
-The linux installer installs all XMDS2 dependencies from your native package manager where possible (``apt-get`` for Ubuntu/Debian, ``yum`` for Fedora/Red Hat) but will download and compile the source code for libraries not available through the package manager. This means you'll need to be connected to the internet when running the installer. The installer should not be run with administrative privileges; it will ask you to enter your admin password at the appropriate point. 
-
-For instructions on how to install XMDS2 on systems where you lack administrative rights, see :ref:`ManualInstallation`.
-
-By default, this installer will install a known stable version of XMDS, which can be updated at any time by navigating to the XMDS directory and typing 'make update'. To install the latest developer version at the beginning, simply run the installer with the ``--develop`` option.
-
-Once XMDS2 has been installed, you can run it from the terminal by typing ``xmds2``. See the :ref:`QuickStartTutorial` for next steps.
-
-
-.. _mac_installation:
-
-Mac OS X Installation
-=====================
-
-Download
---------
-
-Mac OS X 10.6 (Snow Leopard) or later XMDS 2 installer: http://sourceforge.net/projects/xmds/files/
-
-
-
-Using the Mac OS X Installer
-----------------------------
-
-A self-contained installer for Mac OS X 10.6 (Snow Leopard) and later is available from the link above. This installer is only compatible with Intel Macs.  This means that the older PowerPC architecture is *not supported*.  Xcode (Apple's developer tools) is required to use this installer. Xcode is available for free from the Mac App Store for 10.7 or later, and is available on the install disk of earlier Macs as an optional install.  For users of earlier operating systems (10.6.8 or ear [...]
-
-Once you have downloaded the XMDS installer, installation is as simple as dragging it to your Applications folder or any other location.  Click the XMDS application to launch it, and press the "Launch XMDS Terminal" button to open a Terminal window customised to work with XMDS.  The first time you do this, the application will complete the installation process.  This process can take a few minutes, but is only performed once.
-
-The terminal window launched by the XMDS application has environment variables set for using this installation of XMDS.  You can run XMDS in this terminal by typing ``xmds2``.  See the :ref:`QuickStartTutorial` for next steps.
-
-To uninstall XMDS, drag the XMDS application to the trash. XMDS places some files in the directory ``~/Library/XMDS``. Remove this directory to completely remove XMDS from your system.
-
-This package includes binaries for `OpenMPI <http://www.open-mpi.org>`_, `FFTW <http://www.fftw.org>`_, `HDF5 <http://www.hdfgroup.org/HDF5>`_ and `GSL <http://www.gnu.org/software/gsl>`_. These binaries are self-contained and do not overwrite any existing installations.
-
-.. _ManualInstallation:
-
-Manual installation from source
-===============================
-
-This installation guide will take you through a typical full install step by step. A large part of this procedure is obtaining and installing other libraries that XMDS2 requires, before installing XMDS2 itself. 
-
-While the instructions below detail these packages individually, if you have administrative privileges (or can request packages from your administrator) and if you are using an Ubuntu, Debian, Fedora or Red Hat linux distribution, you can install all required and optional dependencies (but not XMDS2 itself) via
-
-Ubuntu / Debian::
-
-  sudo apt-get install build-essential subversion libopenmpi-dev openmpi-bin python-dev python-setuptools python-cheetah python-numpy python-pyparsing python-lxml python-mpmath libhdf5-serial-dev libgsl0-dev python-sphinx python-h5py libatlas-base-dev
-
-Fedora / Red Hat::
-
-  sudo yum install gcc gcc-c++ make automake subversion openmpi-devel python-devel python-setuptools python-cheetah numpy gsl-devel python-sphinx libxml2-devel libxslt-devel atlas-devel hdf5-devel pyparsing pyparsing python-lxml python-mpmath h5py
-
-You will still have to download and build FFTW 3.3 from source (see below) since prebuilt packages with MPI and AVX support are not currently available in the repositories.
-
-Also note that this guide adds extra notes for users wishing to install XMDS2 using the SVN repository.  This requires a few extra steps, but allows you to edit your copy, and/or update your copy very efficiently (with all the usual advantages and disadvantages of using unreleased material).
-
-0. You will need a copy of XMDS2.  
-    The current release can be found at `Sourceforge <http://sourceforge.net/projects/xmds/>`_, and downloaded as a single file.
-    Download this file, and expand it in a directory where you want to keep the program files.
-    
-    * Developer-only instructions: You can instead check out a working copy of the source using SVN. 
-      In a directory where you want to check out the repository, run:
-      ``svn checkout https://svn.code.sf.net/p/xmds/code/trunk/xpdeint .``
-
-      (Only do this once.  To update your copy, type ``svn up`` or ``make update`` in the same directory, and then repeat any developer-only instructions below).
-    
-#. You will need a working C++ compiler.  
-    For Mac OS X, this means that the developer tools (XCode) should be installed.
-    One common free compiler is `gcc <http://gcc.gnu.org/>`_.  It can be downloaded using your favourite package manager.
-    XMDS2 can also use Intel's C++ compiler if you have it. 
-    Intel's compiler typically generates faster code than gcc, but it isn't free.
-
-#. You will need a `python distribution <http://www.python.org/>`_.  
-
-   * Mac OS X: It is pre-installed on Mac OS X 10.5 or later.
-   * Linux: It should be pre-installed. If not, install using your favourite package manager.
-   
-    We require python 2.4 or greater. XMDS2 does not support Python 3.
-   
-
-#. Install setuptools.
-    If you have root (sudo) access, the easy way to install this is by executing
-    ez_setup.py from the repository. Simply type ``sudo python ez_setup.py``
-
-       If you want to install into your home directory without root access, this is more complex:
-       
-       a) First create the path ~/lib/python2.5/site-packages (assuming you installed python version 2.5) and ~/bin
-          Add "export PYTHONPATH=~/lib/python2.5/site-packages:$PYTHONPATH" and "export PATH=~/bin:$PATH" (if necessary)
-          to your .bashrc file (and run ". ~/.bashrc")
-       
-       b) If necessary install setuptools, by executing ez_setup.py from the repository.
-          ``python ez_setup.py --prefix=~``
-          
-    If you use Mac OS X 10.5 or later, or installed the Enthought Python Distribution on Windows, then setuptools is already installed.
-    Though if the next step fails, you may need to upgrade setuptools.  To do that, type ``sudo easy_install -U setuptools``
-
-#. Install HDF5 and FFTW3 (and optionally MPI).
-    .. _hdf5_Installation:
-    
-    #. **HDF5** is a library for reading and writing the `Hierarchical Data Format <http://www.hdfgroup.org/HDF5/>`_.
-         This is a standardised data format which it is suggested that people use in preference to the older 'binary' output (which is 
-         compatible with xmds-1). The advantage of HDF5 is that this data format is understood by a variety of other tools. xsil2graphics2
-         provides support for loading data created in this format into Mathematica and Matlab.
-         
-         XMDS2 only requires the single process version of HDF5, so there is no need to install the MPI version.
-       
-         \* Sidebar: Installing HDF5 from source follows a common pattern, which you may find yourself repeating later:  
-         
-            #. After extracting the source directory, type ``configure`` and then add possible options.
-            
-                (For HDF5, install with the ``--prefix=/usr/local/`` option if you want XMDS2 to find the library automatically.  This is rarely needed for other packages.)
-                
-            #. Once that is finished, type ``make``.  Then wait for that to finish, which will often be longer than you think.
-            
-            #. Finally, type ``sudo make install`` to install it into the appropriate directory.
-        
-    #. **FFTW** is the library XMDS2 uses for Fourier transforms. 
-         This is the transform most people will use in their simulations. If you need
-         support for MPI distributed simulations, you must configure FFTW to use MPI.
-  
-         FFTW is available for free at the `FFTW website <http://www.fftw.org/>`_.
-         To configure and compile it, follow the steps described in the HDF5 sidebar above.  
-         You may wish to add the ``--enable-mpi --disable-fortran`` options to the ``configure`` command.
-
-    #. **MPI** is an API for doing parallel processing.
-         XMDS2 can use MPI to parallelise simulations on multi-processor/multi-core computers, or clusters of computers.
-         Many supercomputing systems come with MPI libraries pre-installed.
-         The `Open MPI <http://www.open-mpi.org/>`_ project has free distributions of this library available.
-		 
-	 If you intend to take advantage of XMDS2's multi-processing features, you must install MPI, and configure FFTW3 to use it.
-
-
-
-#. There are a range of optional installs.  We recommend that you install them all if possible:
-
-    #. A Matrix library like `ATLAS <http://math-atlas.sourceforge.net/>`_, Intel's `MKL <http://software.intel.com/en-us/intel-mkl/>`_ or the `GNU Scientific library (GSL) <http://www.gnu.org/software/gsl/>`_ 
-         These libraries allow efficient implementation of transform spaces other than Fourier space.
-         Mac OS X comes with its own (fast) matrix library.
-    
-    #. **numpy** is a tool that XMDS2 uses for automated testing.
-         It can be installed with ``sudo easy_install numpy``. 
-         
-         Mac OS X 10.5 and later come with numpy.
-         
-    #. **lxml** is used to validate the syntax of scripts passed to XMDS2. 
-         If you have root access, this can be installed with the command ``sudo easy_install lxml``
-
-         You will need to have 'libxml2' and 'libxslt' installed (via your choice of package manager) to install lxml.  
-         Sufficient versions are preinstalled on Mac OS X 10.6.
-
-         If you don't have root access or want to install into your home directory, use:
-            ``easy_install --prefix=~ lxml``
-
-    #. **h5py** is needed for checking the results of XMDS2 tests that generate HDF5 output.
-           h5py requires numpy version 1.0.3 or later. 
-           
-           Upgrading `h5py <http://h5py.alfven.org/>`_ on Mac OS X is best done with the source of the package, as the easy_install option can get confused with multiple numpy versions.
-           (Mac OS X Snow Leopard comes with version 1.2.1). 
-           After downloading the source, execute ``python ./setup.py build`` in the source directory, and then ``python ./setup.py install`` to install it.  
-
-#. Install XMDS2 into your python path by running (in the xmds-2.1.4/ directory):
-    ``sudo ./setup.py develop``
-
-    If you want to install it into your home directory, type ``./setup.py develop --prefix=~``
-    
-    This step requires access to the net, as it downloads any dependent packages.  If you are behind a firewall, you may need to set your HTTP_PROXY environment variable in order to do this.
-
-    * Developer only instructions: 
-        The Cheetah templates (\*.tmpl) must be compiled into python.
-        To do this, run ``make`` in the xmds-2.1.4/ directory.
-
-    * Developer-only instructions: 
-        If you have 'numpy' installed, test XMDS2 by typing ``./run_tests.py`` in the xmds-2.1.4/ directory.
-        The package 'numpy' is one of the optional packages, with installation instructions below.
-       
-    * Developer-only instructions: 
-        To build the user documentation, you first need to install sphinx, either via your package manager or:
-        ``sudo easy_install Sphinx``
-
-        Then, to build the documentation, in the xmds-2.1.4/admin/userdoc-source/ directory run: ``make html``
-
-        If this results in an error, you may need to run ``sudo ./setup.py develop``
-
-        The generated html documentation will then be found at xmds-2.1.4/documentation/index.html
-		
-#. Configure XMDS2 by typing ``xmds2 --reconfigure``.  If XMDS2 is unable to find a library, you can tell XMDS2 where these libraries are located by adding ``include`` and ``lib`` search paths using the ``--include-path`` and ``--lib-path`` options.  For example, if FFTW3 is installed in ``/apps/fftw3`` with headers in ``/apps/fftw3/include/`` and the libraries in ``/apps/fftw3/lib``, (re)configure XMDS2 by typing:
-
-	* ``xmds2 --reconfigure --include-path /apps/fftw3/include --lib-path /apps/fftw3/lib``.
-	
-	If you need to use additional compiler or link flags for XMDS2 to use certain libraries, set the ``CXXFLAGS`` or ``LINKFLAGS`` environment variables before calling ``xmds2 --reconfigure``.  For example, to pass the compiler flag ``-pedantic`` and the link flag ``-lm``, use:
-	
-	* ``CXXFLAGS="-pedantic" LINKFLAGS="-lm" xmds2 --reconfigure``.
-
-**Congratulations!** You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the "xmds-2.1.4/examples" directory, and follow the worked examples in the :ref:`QuickStartTutorial` and :ref:`WorkedExamples`.
-
-
-
diff --git a/documentation/_sources/introduction.txt b/documentation/_sources/introduction.txt
deleted file mode 100644
index d1a3169..0000000
--- a/documentation/_sources/introduction.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Introduction
-============
-
-Welcome to **XMDS2** (codenamed `xpdeint`), which is an all-new version of :ref:`XMDS<XMDSHistory>`.  Prepare for fast, easily-extended simulations with minimal code error.
-
-**Description:**   The purpose of XMDS2 is to simplify the process of creating simulations that solve systems of initial-value first-order partial and ordinary differential equations. Instead of going through the error-prone process of writing by hand thousands of lines of code, XMDS2 enables many problems to be described in a simple XML format. From this XML description XMDS2 writes a C++ simulation that solves the problem using fast algorithms. Anecdotally, the code generated by XMDS2  [...]
-
-XMDS2 can be used to simulate almost any set of (coupled) (partial) (stochastic) differential equations in any number of dimensions.  It can input and output data in a range of data formats, produce programs that can take command-line arguments, and produce parallelised code suitable for either modern computer architectures or distributed clusters.
-
-If this is your first time with XMDS, then an ideal place to start is the :ref:`QuickStartTutorial`, where we will show you how to write a basic simulation.  :ref:`Installation` instructions should get you up and running and able to start playing with the large library of examples provided. The impatient will probably have good luck browsing the examples library included with the source, and the :ref:`WorkedExamples` in this documentation for something that looks like their intended simulation.
-
-If you are upgrading from **XMDS version 1.x**, then after following the installation instructions (:ref:`Installation`), you might want to have a quick read of the note for upgraders (:ref:`UpgradeFromXMDS1`).  The syntax of the XML scripts has changed, but hopefully you will find the new scripts very intuitive.
-
-Detailed advice on input/output issues, and ways to code more complicated simulations can be found in :ref:`AdvancedTopics`.
-
-XMDS2 should be cited as `Comput. Phys. Commun. 184, 201-208 (2013) <http://dx.doi.org/10.1016/j.cpc.2012.08.016>`_.
-
-.. _XMDSHistory:
-
-**History:**   **XMDS** was created in 1997 by Peter Drummond and Greg Collecutt, who conceived of the idea of using an XML-based code generator to simplify the process of integrating systems of equations with arbitrary dimension [#f1]_.  The first version was written in C, and featured a very flexible, strongly convergent stochastic algorithm: the :ref:`semi-implicit algorithm<SI>` [#f2]_.  Released under a public licence, it began to receive attention across several research groups.  O [...]
-    
-In 2003, the increased scope of the package prompted a complete rewrite by Greg Collecutt (using C++), which lead to **XMDS 1.0**.  It was placed on sourceforge, and over a dozen developers contributed from 2003-2007 to help XMDS address a wider range of problems with a range of modern algorithms and support for parallel supercomputing.  The documentation and installation method was improved enabling the software to be used in a wider context, and XMDS gained many users from across the w [...]
-    
-In 2008 a second complete rewrite was undertaken, largely by Graham Dennis (using Cheetah templates in python), leading to the current version **XMDS2**.  This restructuring of the internal treatment of XML elements and the generated code allowed a new range of extensions to be explored.  These included possibilities such as integrating multiple fields with different dimensionality, a more general set of differential equations that can be solved efficiently, and multiple choices of trans [...]
-
-
-.. rubric:: Footnotes
-
-.. [#f1] G.R.Collecutt and P.D.Drummond, `Xmds: eXtensible multi-dimensional simulator`, Comput. Phys. Commun. **142**, 219 (2001).
-
-.. [#f2] M.J.Werner and P.D.Drummond, `Robust algorithms for solving stochastic partial differential equations`, J. Comput. Phys. **132**, 312 (1997).
\ No newline at end of file
diff --git a/documentation/_sources/licensing.txt b/documentation/_sources/licensing.txt
deleted file mode 100644
index 5eae5ee..0000000
--- a/documentation/_sources/licensing.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-.. _Licensing:
-
-Licensing
-=========
-
-XMDS2 is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install. You can also find it here: http://www.gnu.org/licenses/
-
-We encourage people to submit patches to us that extend XMDS2's functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license.
-
-
diff --git a/documentation/_sources/news.txt b/documentation/_sources/news.txt
deleted file mode 100644
index 78d9e78..0000000
--- a/documentation/_sources/news.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-.. _News:
-
-News
------
-
-XMDS 2.1.4 "Well if this isn't nice, I don't know what is" (September 27, 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.4 update contains many new improvements and bugfixes:
-
-* *xsil2graphics2* now supports all output formats for MATLAB, Octave and Python.  The scripts generated for MATLAB/Octave are compatible with both.
-* Fix a bug when :ref:`nonlocally<ReferencingNonlocal>` referencing a :ref:`dimension alias<DimensionAliases>` with subsampling in *sampling_group* blocks or in some situations when MPI is used.  This bug caused incorrect elements of the vector to be accessed.
-* Correct the Fourier basis for dimensions using Hermite-Gauss transforms.  Previously 'kx' was effectively behaving as '-kx'.
-* Improve the performance of 'nx' <--> 'kx' Hermite-Gauss transforms.
-* Stochastic error checking with runtime noise generation now works correctly.  Previously different random numbers were generated for the full-step paths and the half-step paths.
-* Documentation updates.
-
-XMDS 2.1.3 "Happy Mollusc" (June 7, 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.3 update is a bugfix release that includes the following improvements:
-
-* XMDS will work when MPI isn't installed (but only for single-process simulations).
-* Support for GCC 4.8
-* The number of paths used by the multi-path driver can now be specified at run-time (using *<validation kind="run-time">*)
-* Other bug fixes
-
-XMDS 2.1.2 "Happy Mollusc" (October 15, 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The XMDS 2.1.2 update has many improvements:
-
-* Named filters.  You can now specify a name for a filter block and call it like a function if you need to execute it conditionally.  See the documentation for the *<filter>* block for more information.
-* New *chunked_output* feature.  XMDS can now output simulation results as it goes, reducing the memory requirement for simulations that generate significant amounts of output.  See the documentation for more details.
-* Improved OpenMP support
-* The EX operator is now faster in the common case (but you should still prefer IP when possible)
-* If seeds are not provided for a *noise_vector*, they are now generated at simulation run-time, so different executions will give different results.  The generated noises can still be found in the output .xsil files enabling results to be reproduced if desired.
-* Advanced feature: Dimensions can be accessed non-locally with the index of the lattice point.  This removes the need in hacks to manually access XMDS's underlying C arrays.  This is an advanced feature and requires a little knowledge of XMDS's internal grid representation.  See the advanced topics documentation for further details.
-* Fixed adaptive integrator order when noises were used in vector initialisation
-* Fix the Spherical Bessel basis.  There were errors in the definition of this basis which made it previously unreliable.
-* Other bug fixes
-
-XMDS 2.1 "Happy Mollusc" (June 14, 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-XMDS 2.1 is a significant upgrade with many improvements and bug fixes since 2.0. We also now have installers for Linux and Mac OS X, so you no longer have to build XMDS from source! See :ref:`here<Installation>` for details about the installers.
-
-Existing users should note that this release introduces a more concise syntax for moment groups.  You can now use::
-
-    <sampling_group initial_sample="yes" basis="x y z">
-        ...
-    </sampling_group>
-
-Instead of::
-
-    <group>
-        <sampling initial_sample="yes" basis="x y z">
-            ...
-        </sampling>
-    </group>
-
-Another syntax change is that the initial basis of a vector should be specified with *initial_basis* instead of *initial_space*.
-
-In both cases, although the old syntax is not described in the documentation, it is still supported, so existing scripts will work without any changes.
-
-
-Other changes in XMDS 2.1 include:
-
-* The *lattice* attribute for dimensions can now be specified at run-time.  Previously only the minimum and maximum values of the domain could be specified at run-time.  See :ref:`here<Validation>` for details.
-* *noise_vectors* can now be used in non-uniform dimensions (e.g. dimensions using the Bessel transform for cylindrical symmetry).
-* "loose" *geometry_matching_mode* for HDF5 vector initialisation.  This enables extending the simulation grid from one simulation to the next, or coarsening or refining a grid when importing.
-* *vectors* can now be initialised by integrating over dimensions of other vectors.  *computed_vectors* always supported this, now *vectors* do too.
-* Update to latest version of waf, which is used for compiling simulations and detecting FFTW, HDF5, etc. This should lead to fewer waf-related problems.
-* Bug fixes.
-
-
-XMDS 2.0 "Shiny!" (September 13, 2010)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-XMDS 2.0 is a major upgrade which has been rewritten from the ground up to make it easier for us to apply new features. And there are many. XMDS 2.0 is faster and far more versatile than previous versions, allowing the efficient integration of almost any initial value problem on regular domains.
-
-The feature list includes:
-
-* Quantities of different dimensionalities. So you can have a 1D potential and a 3D wavefunction.
-* Integrate more than one vector (in more than one geometry), so you can now simultaneously integrate a PDE and a coupled ODE (or coupled PDEs of different dimensions).
-* Non-Fourier transformations including the Bessel basis, Spherical Bessel basis and the Hermite-Gauss (harmonic oscillator) basis.
-* The ability to have more than one kind of noise (gaussian, poissonian, etc) in a simulation.
-* Integer-valued dimensions with non-local access. You can have an array of variables and access different elements of that array.
-* Significantly better error reporting. When errors are found when compiling the script they will almost always be reported with the corresponding line of your script, instead of the generated source.
-* *IP*/*EX* operators are separate from the integration algorithm, so you can have both *IP* and *EX* operators in a single integrate block. Also, *EX* operators can act on arbitrary code, not just vector components. (e.g. *L[phi*phi]*).
-* Cross propagation in the increasing direction of a given dimension or in the decreasing dimension. And you can have more than one cross-propagator in a given integrator (going in different directions or dimensions).
-* Faster Gaussian noises.
-* The ability to calculate spatial correlation functions.
-* OpenMP support.
-* MPI support.
-* Output moment groups use less memory when there isn't a *post_processing* element.
-* Generated source is indented correctly.
-* An *xmds1*-like script file format.
-* *xmds1*-like generated source.
-* All of the integrators from *xmds1* (*SI*, *RK4*, *ARK45*, *RK9*, *ARK89*).
diff --git a/documentation/_sources/optimisation_hints.txt b/documentation/_sources/optimisation_hints.txt
deleted file mode 100644
index 912214d..0000000
--- a/documentation/_sources/optimisation_hints.txt
+++ /dev/null
@@ -1,171 +0,0 @@
-Optimisation Hints
-===================
-
-There are a variety of things you can do to make your simulations run faster.
-
-Geometry and transform-based tricks
------------------------------------
-
-Simpler simulation geometries
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Consider symmetry, can you use ``dct`` transforms or ``bessel`` transforms? Do you really need that many points? How big does your grid need to be? Could absorbing boundary conditions help?
-
-Tricks for Bessel and Hermite-Gauss transforms
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Dimensions using matrix transforms should be first for performance reasons.  Unless you're using MPI, in which case XMDS can work it out for the first two dimensions.  Ideally, XMDS would sort it out in all cases, but it's not that smart yet.
-
-Reduce code complexity
-----------------------
-Avoid transcendental functions like :math:`\sin(x)` or :math:`\exp(x)` in inner loops. Not all operations are made equal, use multiplication over division.
-
-Use the Interaction Picture (IP) operator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Just do it. Only use the EX operator when you have to. If you must use the EX operator, consider making it ``constant="no"``. It uses less memory.
-When you use the IP operator, make sure you know what it's doing.  Do not pre- or post-multiply that term in your equations.
-
-When using the IP operator, check if your operator is purely real or purely imaginary.  If real, (e.g. ``L = -0.5*kx * kx;``), then add the attribute ``type="real"`` to the ``<operator kind="ip">`` tag.  If purely imaginary, use ``type="imaginary"``.  This optimisation saves performing the part of the complex exponential that is unnecessary.
-
-Consider writing the evolution in spectral basis
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Evolution equations do not need to be written in the position basis.  If your equations are diagonal in the spectral basis, then it makes more sense to compute the time derivative terms in that basis.  For example, if you have the system
-
-.. math::
-    \frac{d\psi_1(x)}{dt} &= i \frac{\hbar}{2M} \frac{d^2\psi_1(x)}{dx^2} - i \Omega \psi_2(x)\\
-    \frac{d\psi_2(x)}{dt} &= i \frac{\hbar}{2M} \frac{d^2\psi_2(x)}{dx^2} - i \Omega \psi_1(x)
-
-then this is diagonal in the Fourier basis where it takes the form
-
-.. math::
-    \frac{d\psi_1(k_x)}{dt} &= -i \frac{\hbar k_x^2}{2M} \psi_1(k_x) - i \Omega \psi_2(k_x)\\
-    \frac{d\psi_2(k_x)}{dt} &= -i \frac{\hbar k_x^2}{2M} \psi_2(k_x) - i \Omega \psi_1(k_x)
-
-
-The first term in each evolution equation can be solved exactly with an IP operator, and the second term is diagonal in Fourier space.  This can be written in XMDS as:
-
-.. code-block:: xpdeint
-
-    <operators>
-      <integration_vectors basis="kx">wavefunction</integration_vectors>
-      <operator kind="ip" type="imaginary" >
-        <operator_names>Lxx</operator_names>
-        <![CDATA[
-          Lxx = -i*0.5*hbar_M*(kx*kx);
-        ]]>
-      </operator>
-      <![CDATA[
-
-        dpsi0_dt = Lxx[psi0] - i*Omega*psi1;
-        dpsi1_dt = Lxx[psi1] - i*Omega*psi0;
-          
-      ]]>
-    </operators>
-
-Although the ``dpsi0_dt`` code reads the same in position and Fourier space, it is the ``basis=kx`` attribute on ``<integration_vectors>`` that causes the evolution code to be executed in Fourier space.  
-
-A final optimisation is to cause the integration code itself to operate in Fourier space.  By default, all time stepping (i.e. :math:`f(t + \Delta t) = f(t) + f'(t) \Delta t` for forward-Euler integration) occurs in the position space.  As the derivative terms can be computed in Fourier space, it is faster to also to the time stepping in Fourier space too.  This then means that no Fourier transforms will be needed at all during this integrate block (except as needed by sampling).  To cau [...]
-
-The fully optimised code then reads:
-
-.. code-block:: xpdeint
-
-    <integrate algorithm="ARK45" interval="1" tolerance="1e-6" home_space="k">
-      <samples> 10 </samples>
-      <operators>
-        <integration_vectors basis="kx">wavefunction</integration_vectors>
-        <operator kind="ip" type="imaginary" >
-          <operator_names>Lxx</operator_names>
-          <![CDATA[
-            Lxx = -i*0.5*hbar_M*(kx*kx);
-          ]]>
-        </operator>
-        <![CDATA[
-
-          dpsi0_dt = Lxx[psi0] - i*Omega*psi1;
-          dpsi1_dt = Lxx[psi1] - i*Omega*psi0;
-          
-        ]]>
-      </operators>
-    </integrate>
-
-This code will not use any Fourier transforms during an ordinary time-stepping, and will be much faster than if the code were written without the ``home_space`` and ``basis`` attributes.
-
-Don't recalculate things you don't have to
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Use ``computed_vectors`` appropriately.
-
-
-Compiler and library tricks
----------------------------
-
-Faster compiler
-^^^^^^^^^^^^^^^
-If you're using an Intel CPU, then you should consider using their compiler, icc. They made the silicon, and they also made a compiler that understands how their chips work significantly better than the more-portable GCC.
-
-Faster libraries
-^^^^^^^^^^^^^^^^
-Intel MKL is faster than ATLAS, which is faster than GSL CBLAS. If you have a Mac, then Apple's vecLib is plenty fast.
-
-Auto-vectorisation
-^^^^^^^^^^^^^^^^^^
-Auto-vectorisation is a compiler feature that makes compilers generate more efficient code that can execute the same operation on multiple pieces of data simultaneously. To use this feature, you need to add the following to the ``<features>`` block at the start of your simulation:
-
-.. code-block:: xpdeint
-    
-    <auto_vectorise />
-
-This will make xpdeint generate code that is more friendly to compiler's auto-vectorisation features so that more code can be vectorised. It will also add the appropriate compiler options to turn on your compiler's auto-vectorisation features. For auto-vectorisation to increase the speed of your simulations, you will need a compiler that supports it such as gcc 4.2 or later, or Intel's C compiler, ``icc``.
-
-OpenMP
-^^^^^^
-`OpenMP <http://openmp.org>`_ is a set of compiler directives to make it easier to use threads (different execution contexts) in programs. Using threads in your simulation does occur some overhead, so for the speedup to outweigh the overhead, you must have a reasonably large simulation grid. To add these compiler directives to the generated simulations, add the tag ``<openmp />`` in the ``<features>`` block. This can be used in combination with the auto-vectorisation feature above. Note  [...]
-
-If you are using the OpenMP feature and are using `FFTW <http://www.fftw.org>`_-based transforms (Discrete Fourier/Cosine/Sine Transforms), you should consider using threads with your FFT's by adding the following to the ``<features>`` block at the start of your simulation:
-
-.. code-block:: xpdeint
-    
-    <fftw threads="2" />
-
-Replace the number of threads in the above code by the number of threads that you want to use.
-
-Parallelisation with MPI
-^^^^^^^^^^^^^^^^^^^^^^^^
-Some simulations are so large or take so much time that it is not reasonable to run them on a single CPU on a single machine. Fortunately, the `Message Passing Interface <http://www.mpi-forum.org/>`_ was developed to enable different computers working on the same program to exchange data. You will need a MPI package installed to be abel to use this feature with your simulations. One popular implementation of MPI is `OpenMPI <http://www.open-mpi.org>`_.
-
-
-Atom-optics-specific hints
---------------------------
-
-Separate out imaginary-time calculation code
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When doing simulations that require the calculation of the groundstate (typically via the imaginary time algorithm), typically the groundstate itself does not need to be changed frequently as it is usually the dynamics of the simulation that have the interesting physics. In this case, you can save having to re-calculate groundstate every time by having one script (call it ``groundstate.xmds``) that saves the calculated groundstate to a file using a breakpoint, and a second simulation tha [...]
-
-The file format used in this example is `HDF5 <http://www.hdfgroup.org/HDF5/>`_, and you will need the HDF5 libraries installed to use this example. The alternative is to use the deprecated ``binary`` format, however to load ``binary`` format data ``xmds``, the predecessor to ``xpdeint`` must be installed. Anyone who has done this before will tell you that installing it isn't a pleasant experience, and so HDF5 is the recommended file format.
-
-If your wavefunction vector is called ``'wavefunction'``, then to save the groundstate to the file ``groundstate_break.h5`` in the HDF5 format, put the following code immediately after the integrate block that calculates your groundstate:
-
-.. code-block:: xpdeint
-
-    <breakpoint filename="groundstate_break" format="hdf5">
-      <dependencies>wavefunction</dependencies>
-    </breakpoint>
-
-In addition to the ``groundstate_break.h5`` file, an XSIL wrapper ``groundstate_break.xsil`` will also be created for use with :ref:`xsil2graphics2`.
-
-To load this groundstate into your evolution script, the declaration of your ``'wavefunction'`` vector in your evolution script should look something like
-
-.. code-block:: xpdeint
-
-    <vector name="wavefunction">
-      <components>phi1 phi2</components>
-      <initialisation kind="hdf5">
-        <filename>groundstate_break.h5</filename>
-      </initialisation>
-    </vector>
-
-Note that the groundstate-finder doesn't need to have all of the components that the evolution script needs. For example, if you are considering the evolution of a two-component BEC where only one component has a population in the groundstate, then your groundstate script can contain only the ``phi1`` component, while your evolution script can contain both the ``phi1`` component and the ``phi2`` component. Note that the geometry of the script generating the groundstate and the evolution  [...]
-
-Use an energy or momentum offset
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This is just the interaction picture with a constant term in the Hamiltonian. If your state is going to rotate like :math:`e^{i(\omega + \delta\omega)t}`, then transform your equations to remove the :math:`e^{i \omega t}` term. Likewise for spatial rotations, if one mode will be moving on average with momentum :math:`\hbar k`, then transform your equations to remove that term. This way, you may be able to reduce the density of points you need in that dimension. Warning: don't forget to c [...]
diff --git a/documentation/_sources/reference_elements.txt b/documentation/_sources/reference_elements.txt
deleted file mode 100644
index 056d2a5..0000000
--- a/documentation/_sources/reference_elements.txt
+++ /dev/null
@@ -1,1339 +0,0 @@
-.. raw:: html
-
-  <style> .attributes-code {color:#0000BB; font-family:'monospace'; font-style:italic} </style>
-
-.. raw:: html
-
-  <style> .attributes-standard {color:#0000BB; font-family:'monospace'; font-style:italic; font-size:smaller} </style>
-
-.. raw:: html
-
-  <style> .smaller-font {font-size:smaller} </style>
-
-.. role:: attributes-code
-.. role:: attributes-standard
-.. role:: smaller-font
-
-.. _ReferenceElements:
-
-*********************
-XMDS2 script elements
-*********************
-
-This section outlines all the elements and options available in an XMDS2 script.  This is very much a **work in progress**, beginning with placeholders in most cases, as we have prioritised the tutorials for new users.  One of the most productive ways that non-developer veterans can contribute to the project is to help develop this documentation.
-
-
-
-
-.. _SimulationElement:
-
-Simulation element
-==================
-
-The ``<simulation>`` element is the single top level element in an XMDS2 simulation, and contains all the other elements.  All XMDS scripts must contain exactly one simulation element, and it must have the ``xmds-version="2"`` attribute defined.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <!-- Rest of simulation goes here -->
-    </simulation>
-
-
-
-
-.. _NameElement:
-
-Name element
-============
-
-The name of your simulation. This element is optional, but recommended. If it is set, it will be the name of the executable file generated from this script. It will also be the name of the output file (with an appropriate extension) if the ``filename`` attribute is not given a value in the ``<output>`` element.
-
-Example syntax::
-
-    <name> funky_solver </name>
-
-
-.. _AuthorElement:
-
-Author element
-==============
-
-The author(s) of this script. This element is optional, but can be useful if you need to find the person who has written an incomprehensible script and thinks comments are for the weak.
-
-Example syntax::
-
-    <author> Ima Mollusc </author>
-
-
-.. _DescriptionElement:
-
-Description element
-===================
-
-A description of what the simulation does. Optional, but recommended, in case you (or someone else) has to revist the script at some distant point in the future.
-
-Example syntax::
-
-    <description>
-      Calculate the 3D ground state of a Rubidium BEC in a harmonic magnetic trap assuming
-      cylindrical symmetry about the z axis and reflection symmetry about z=0.
-      This permits us to use the cylindrical Bessel functions to expand the solution transverse
-      to z and a cosine series to expand the solution along z.
-    </description>
-
-
-
-.. _FeaturesElement:
-
-Features Elements
-=================
-
-
-Features elements are where simulation-wide options are specified. The ``<features>`` element wraps one or more elements describing features. There are many possible feature elements. Currently, a full list of the features supported is:
-
-    * :ref:`arguments <ArgumentsElement>`
-    * :ref:`auto_vectorise <Autovectorise>`
-    * :ref:`benchmark <Benchmark>`
-    * :ref:`bing <Bing>`
-    * :ref:`cflags <CFlags>`
-    * :ref:`chunked_output <ChunkedOutput>`
-    * :ref:`diagnostics <Diagnostics>`
-    * :ref:`error_check <ErrorCheck>`
-    * :ref:`halt_non_finite <HaltNonFinite>`
-    * :ref:`fftw <FFTW>`
-    * :ref:`globals <Globals>`
-    * :ref:`OpenMP <OpenMP>`
-    * :ref:`precision <Precision>`
-    * :ref:`validation <Validation>`
-
-Example syntax::
-
-    <simulation xmds-version="2">
-      <features>
-        <bing />
-        <precision> double </precision>
-        ...
-      </features>
-    </simulation>
-
-
-.. _ArgumentsElement:
-
-Arguments Element
------------------
-
-The ``<arguments>`` element is optional, and allows defining variables that can be passed to the simulation at run time. These variables are then globally accessible throughout the simulation script. Each of the variables must be defined in an ``<argument>`` element (see below). The variables can then be passed to the simulation executable as options on the command line. For example, one could define the variables ``size``, ``number``, and ``pulse_shape`` ::
-
-    <name> arguments_test </name>
-    <features>
-      <arguments>
-        <argument name="size" type="real" default_value="20.0"/>
-        <argument name="number" type="integer" default_value="7"/>
-        <argument name="pulse_shape" type="string" default_value="gaussian"/>
-      </arguments>
-    </features>
-
-When ``XMDS2`` is run on this script the executable ``arguments_test`` is created. The values of ``size``, ``number``, and ``pulse_shape`` can then be set to whatever is desired at runtime via
-
-::
-
-  ./arguments_test --size=1.3 --number=2 --pulse_shape=lorentzian
-
-It is also possible to include an optional ``CDATA`` block inside the ``<arguments>`` block. This code will run after the arguments have been initialised with the values passed from the command line. This code block could be used, for example, to sanity check the parameters passed in, or for assigning values to global variables based on those parameters.  Any references to variables defined in an ``<argument>`` element should be made here rather than in the :ref:`Globals<globals>` elemen [...]
-
-    <features>
-      <globals>
-        <![CDATA[
-          real atom_kick;
-        ]]>
-      <globals>
-      <arguments>
-        <argument name="bragg_order" type="integer" default_value="2"/>
-        <![CDATA[
-          atom_kick = bragg_order * 2*M_PI / 780e-9;
-        ]]>
-      </arguments>
-    </features>
-
-.. _ArgumentElement:
-
-Argument element
-~~~~~~~~~~~~~~~~
-
-
-Each ``<argument>`` element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: ``name``, ``type``, and ``default_value``. ``name`` is the name by which you can refer to that variable later in the script, as well as the name of the command line parameter. ``type`` defines the data type of the variable, and ``default_value`` is the value to which the variable is set if it is not given a value on the command line.
-
-
-.. _AutoVectorise:
-
-Auto_vectorise element
-----------------------
-
-The ``<auto_vectorise />`` feature attempts to activate automatic vectorisation for large loops, if it is available in the compiler.  This should make some simulations go faster.
-
-
-.. _Benchmark:
-
-Benchmark
----------
-
-The ``<benchmark />`` feature includes a timing routine in the generated code, so that it is possible to see how long the simulations take to run.
-
-
-.. _Bing:
-
-Bing
-----
-
-The ``<bing />`` feature causes the simulation to make an invigorating sound when the simulation finishes executing.
-
-
-.. _CFlags:
-
-C Flags
--------
-
-The ``<cflags>`` feature allows extra flags to be passed to the compiler.  This can be useful for optimisation, and also using specific external libraries.  The extra options to be passed are defined with a 'CDATA' block.  The compile options can be made visible by running XMDS2 either with the "-v" (verbose) option, or the "-g" (debug) option.
-
-Example syntax::
-
-    <cflags>
-        <![CDATA[
-            -O4
-        ]]>
-    </cflags>
-
-
-.. _ChunkedOutput:
-
-Chunked Output
---------------
-
-By default, XMDS2 keeps the contents of all output moment groups in memory until the end of the simulation when they are written to the output file.  This can be a problem if your simulation creates a very large amount of output.  ``<chunked_output />`` causes the simulation to save the output data in chunks as the simulation progresses.  For some simulations this can significantly reduce the amount of memory required.  The amount of data in a chunk can be specified with the ``size`` att [...]
-
-Limitations (XMDS will give you an error if you violate any of these):
-
-* This feature cannot be used with the ASCII output file format due to limitations in the file format.
-* This feature cannot be used with the ``multi-path`` drivers because all sampling data is required to compute the mean and standard error statistics.
-* Neither is this feature compatible with the ``error_check`` feature as that relies on all sampling data being available to compute the error.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <chunked_output size="5MB" />
-        </features>
-    </simulation>
-
-.. _Diagnostics:
-
-Diagnostics
------------
-
-The ``<diagnostics />`` feature causes a simulation to output more information as it executes.  This should be useful when a simulation is dying / giving bad results to help diagnose the cause.  Currently, it largely outputs step error information.
-
-
-
-.. _ErrorCheck:
-
-Error Check
------------
-
-
-It's often important to know whether you've got errors.  This feature runs each integration twice: once with the specified error tolerance or defined lattice spacing in the propagation dimension, and then again with half the lattice spacing, or an equivalently lower error tolerance.  Each component of the output then shows the difference between these two integrations as an estimate of the error.  This feature is particularly useful when integrating stochastic equations, as it treats the [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <error_check />
-        </features>
-    </simulation>
-
-
-.. _HaltNonFinite:
-
-Halt_Non_Finite
----------------
-
-The ``<halt_non_finite />`` feature is used to stop computations from continuing to run after the vectors stop having numerical values.  This can occur when a number is too large to represent numerically, or when an illegal operation occurs.  Processing variables with non-numerical values is usually much slower than normal processing, and the results are meaningless.  Of course, there is a small cost to introducing a run-time check, so this feature is optional.
-
-
-.. _FFTW:
-
-fftw element
-------------
-
-The ``<fftw \>`` feature can be used to pass options to the `Fast Fourier Transform library <http://fftw.org>`_ used by XMDS.  This library tests algorithms on each architecture to determine the fastest method of solving each problem.  Typically this costs very little overhead, as the results of all previous tests are stored in the directory "~/.xmds/wisdom".  The level of detail for the search can be specified using the ``plan`` attribute, which can take values of ``"estimate"``, ``"mea [...]
-
-Example syntax::
-
-    <fftw plan="patient" threads="3" />
-
-
-.. _Globals:
-
-Globals
--------
-
-The globals feature places the contents of a 'CDATA' block near the top of the generated program.  Amongst other things, this is useful for defining variables that are then accessible throughout the entire program.
-
-Example syntax::
-
-    <globals>
-      <![CDATA[
-        const real omegaz = 2*M_PI*20;
-        long Nparticles = 50000;
-
-        /* offset constants */
-        real frequency = omegaz/2/M_PI;
-      ]]>
-    </globals>
-
-
-.. _OpenMP:
-
-OpenMP
-------
-
-The ``<openmp />`` feature instructs compatible compilers to parallelise key loops using the `OpenMP API <http://www.openmp.org>`_ standard.  By default the simulation will use all available CPUs.  The number of threads used can be restricted by specifying the number of threads in the script with ``<openmp threads="2"/>``, or by setting the ``OMP_NUM_THREADS`` environment variable at run-time like so::
-
-	OMP_NUM_THREADS=2 ./simulation_name
-
-
-.. _Precision:
-
-Precision
------------
-
-This specifies the precision of the XMDS2 ``real`` and ``complex`` datatypes, as well as the precision used when computing transforms. Currently two values are accepted: ``single`` and ``double``. If this feature isn't specified, XMDS2 defaults to using double precision for its variables and internal calculations.
-
-Single precision has approximately 7.2 decimal digits of accuracy, with a minimum value of 1.4×10\ :superscript:`-45` and a maximum of 3.8×10\ :superscript:`34`. Double precision has approximately 16 decimal digits of accuracy, a minimum value of 4.9×10\ :superscript:`-324` and a maximum value of 1.8×10\ :superscript:`308`.
-
-Using single precision can be attractive, as it can be more than twice as fast, depending on whether a simulation is CPU bound, memory bandwidth bound, MPI bound or bottlenecked elsewhere, although in some situations you may see no speed-up at all. Caution should be exercised, however. Keep in mind how many timesteps your simulation requires, and take note of the tolerance you have set per step, to see if the result will lie within your acceptable total error - seven digit precision isn' [...]
-
-Also note that when using an adaptive step integrator, setting a tolerance close to limits of the precision can lead to very slow performance.
-
-A further limitation is that not all the combinations of random number generators and probability distributions that are supported in double precision are supported in single precision. For example, the ``solirte`` generator does not support single precision gaussian distributions. ``dsfmt``, however, is one of the fastest generators, and does support single precision.
-
-WARNING: Single precision mode has not been tested anywhere near as thoroughly as the default double precision mode, and there is a higher chance you will run into bugs.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <features>
-            <precision> single </precision>
-        </features>
-    </simulation>
-
-
-.. _Validation:
-
-Validation
-----------
-
-XMDS2 makes a large number of checks in the code generation process to verify that the values for all parameters are safe choices.  Sometimes we wish to allow these parameters to be specified by variables.  This opens up many possibilities, but requires that any safety checks for parameters be performed during the execution of the program itself.  The ``<validation>`` feature activates that option, with allowable attributes being "run-time", "compile-time" and "none".
-
-As an example, one may wish to define the number of grid points and the range of the grid at run-time rather than explicitly define them in the XMDS2 script. To accomplish this, one could do the following::
-
-    <name> validation_test </name>
-    <features>
-      <validation kind="run-time" />
-      <arguments>
-        <argument name="xmin" type="real" default_value="-1.0"/>
-        <argument name="xmax" type="real" default_value="1.0"/>
-        <argument name="numGridPoints" type="integer" default_value="128"/>
-      </arguments>
-    </features>
-
-    <geometry>
-      <propagation_dimension> t </propagation_dimension>
-      <transverse_dimensions>
-        <dimension name="x" lattice="numGridPoints"  domain="(xmin, xmax)" />
-      </transverse_dimensions>
-   </geometry>
-
-and then run the resulting executable with::
-
-  ./validation_test --xmin=-2.0 --xmax=2.0 --numGridPoints=64
-
-This approach means that when XMDS2 is parsing the script it is unable to tell, for example, if the number of sampling points requested is less than or equal to the lattice size. Consequently it will create an executable with "numGridPoints" as an internal variable, and make the check at run-time, when it knows the value of "numGridPoints" rather than at compile time, when it doesn't.
-
-.. _DriverElement:
-
-Driver Element
-==============
-
-The driver element controls the overall management of the simulation, including how many paths of a stochastic simulation are to be averaged, and whether or not it is to be run using distributed memory parallelisation.  If it is not included, then the simulation is performed once without using MPI parallelisation.  If it is included, it must have a ``name`` attribute.
-
-The ``name`` attribute can have values of "none" (which is equivalent to the default option of not specifying a driver), "distributed-mpi", "multi-path" or "mpi-multi-path".
-
-Choosing the ``name="distributed-mpi"`` option allows a single integration over multiple processors.  The resulting executable can then be run according to your particular implementation of MPI.  The FFTW library only allows MPI processing of multidimensional vectors, as otherwise shared memory parallel processing requires too much inter-process communication to be efficient.  Maximally efficient parallelisation occurs where evolution is entirely local in one transverse dimension (see :r [...]
-
-The ``name="multi-path"`` option is used for stochastic simulations, which are typically run multiple times and averaged.  It requires a ``paths`` attribute with the number of iterations of the integration to be averaged.  The output will report the averages of the desired samples, and the standard error in those averages.  
-The ``name="mpi-multi-path"`` option integrates separate paths on different processors, which is typically a highly efficient process.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <driver name="distributed-mpi" />
-            <!-- or -->
-        <driver name="multi-path" paths="10" />
-            <!-- or -->
-        <driver name="mpi-multi-path" paths="1000" />
-    </simulation>
-
-.. _GeometryElement:
-
-Geometry Element
-================
-
-.. _PropagationDimensionElement:
-
-The ``<geometry>`` element describes the dimensions used in your simulation, and is required.  The only required element inside is the ``<propagation_dimension>`` element, which defines the name of the dimension along which your simulation will integrate.  Nothing else about this dimension is specified, as requirements for the lattice along the integration dimension is specified by the ``<integrate>`` blocks themselves, as described in section :ref:`IntegrateElement`.
-
-.. _TransverseDimensionsElement:
-
-.. _DimensionElement:
-
-If there are other dimensions in your problem, they are called "transverse dimensions", and are described in the ``<transverse_dimensions>`` element.  Each dimension is then described in its own ``<dimension>`` element.  A transverse dimension must have a unique name defined by a ``name`` attribute.  If it is not specified, the type of dimension will default to "real", otherwise it can be specified with the ``type`` attribute.  Allowable types (other than "real") are "long", "int", and " [...]
-
-Each transverse dimension must specify how many points or modes it requires, and the range over which it is defined.  This is done by the ``lattice`` and ``domain`` attributes respectively.  The ``lattice`` attribute is an integer, and is optional for integer dimensions, where it can be defined implicitly by the domain.  The ``domain`` attribute is specified as a pair of numbers (e.g. ``domain="(-17,3)"``) defining the minimum and maximum of the grid.
-
-Any dimension can have a number of aliases.  These act exactly like copies of that dimension, but must be included explicitly in the definition of subsequent vectors (i.e. they are not included in the default list of dimensions for a new vector).  The list of aliases for a dimension are included in an ``aliases`` attribute.  They are useful for non-local reference of variables.  See ``groundstate_gaussian.xmds`` and ``2DMultistateSE.xmds`` as examples.
-
-Integrals over a dimension can be multiplied by a common prefactor, which is specified using the ``volume_prefactor`` attribute.  For example, this allows the automatic inclusion of a factor of two due to a reflection symmetry by adding the attribute ``volume_prefactor="2"``.  In very specific cases, you may wish to refer to volume elements explicitly.  This will lead to grid-dependent behaviour, which is sometimes required in certain stochastic field simulations, for example.  In this c [...]
-    
-If you are using the ``distributed-mpi`` driver to parallelise the simulation, place the dimension you wish to split over multiple processors first.  The most efficient parallelisation would involve distributing a dimension with only local evolution, as the different memory blocks would not need to communicate.  Nonlocal evolution that is local in Fourier space is the second preference, as the Fourier transform can also be successfully parallelised with minimum communication.  
-
-.. _Transforms:
-
-Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or "dft"), but others can be specified with the ``transform`` attribute.  The other options are "none", "dst", "dct", "bessel", "spherical-bessel" and "hermite-gauss".  Using the right transform can dramatically improve the speed o [...]
-
-An advanced feature discussed further in :ref:`DimensionAliases` are dimension aliases, which are specified by the ``aliases`` attribute.  This feature is useful for example, when calculating correlation functions.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <!-- A real-valued dimension from -1.5 to 1.5 -->
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" />
-                
-                <!-- An integer-valued dimension with the 6 values -2, -1, 0, 1, 2, 3 -->
-                <dimension name="j"               domain="(-2,3)" type="integer" />
-                
-                <!-- A real-valued dimension using the bessel transform for a radial coordinate -->
-                <dimension name="r" lattice="64" domain="(0, 5)"  transform="bessel" volume_prefactor="2.0*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-.. _dft_Transform:
-
-The "dft" transform
--------------------
-
-The "dft" transform is performed using the the normal discrete Fourier transform, which means that it enforces periodic boundary conditions on vectors defined on that dimension.  Another implication is that it can only be used with complex-valued vectors.  The discrete Fourier transform is almost exactly the same as a standard Fourier transform.  The standard Fourier transform is
-
-.. math::
-
-    \mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k x} dx
-
-The discrete Fourier transform has no information about the domain of the lattice, so the XMDS2 transform is equivalent to
-
-.. math::
-    \tilde{\mathcal{F}}\left[f(x)\right](k) &= \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k (x+ x_\text{min})} dx \\
-    &= e^{-i x_\text{min} k} \mathcal{F}\left[f(x)\right](k)
-
-The standard usage in an XMDS simulation involves moving to Fourier space, applying a transformation, and then moving back.  For this purpose, the two transformations are entirely equivalent as the extra phase factor cancels.  However, when fields are explicitly defined in Fourier space, care must be taken to include this phase factor explicitly.  See section :ref:`Convolutions` in the Advanced Topics section.
-
-When a dimension uses the "dft" transform, then the Fourier space variable is defined as the name of the dimension prefixed with a "k".  For example, the dimensions "x", "y", "z" and "tau" will be referenced in Fourier space as "kx","ky", "kz" and "ktau".  
-
-Fourier transforms allow easy calculation of derivatives, as the n\ :sup:`th` derivative of a field is proportional to the n\ :sup:`th` moment of the field in Fourier space:
-
-.. math::
-    \mathcal{F}\left[\frac{\partial^n f(x)}{\partial x^n}\right](k_x) = \left(i \;k_x\right)^n \mathcal{F}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial}{\partial x}` as an ``IP`` or ``EX`` operator as ``L = i*kx;`` (see :ref:`OperatorsElement` for more details).
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <!-- transform="dft" is the default, omitting it wouldn't change anything -->
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" transform="dft" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-The "dct" transform
--------------------
-
-The "dct" (discrete cosine transform) is a Fourier-based transform that implies different boundary conditions for associated vectors.  XMDS uses the type-II DCT, often called "the DCT", and its inverse, which is also called the type-III DCT.  This transform assumes that any vector using this dimension is both periodic, and also even around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can there [...]
-
-As the DCT transform can be defined on real data rather only complex data, it can also be superior to DFT-based spectral methods for simulations of real-valued fields where boundary conditions are artificial.
-
-XMDS labels the cosine transform space variables the same as for :ref:`Fourier transforms<dft_Transform>` and all the even derivatives can be calculated the same way.  Odd moments of the cosine-space variables are in fact *not* related to the corresponding odd derivatives by an inverse cosine transform.
-
-Discrete cosine transforms allow easy calculation of even-order derivatives, as the 2n\ :sup:`th` derivative of a field is proportional to the 2n\ :sup:`th` moment of the field in DCT-space:
-
-.. math::
-    \mathcal{F}_\text{DCT}\left[\frac{\partial^{2n} f(x)}{\partial x^{2n}}\right](k_x) = (-k_x^2)^{n}\; \mathcal{F}_\text{DCT}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial^2}{\partial x^2}` as an ``IP`` or ``EX`` operator as ``L = -kx*kx;`` (see :ref:`OperatorsElement` for more details).
-
-For problems where you are defining the simulation domain over only half of the physical domain to take advantage of reflection symmetry, consider using ``volume_prefactor="2.0"`` so that all volume integrals are over the entire physical domain, not just the simulation domain. i.e. integrals would be over -1 to 1 instead of 0 to 1 if the domain was specified as ``domain="(0,1)"``.
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1.5, 1.5)" transform="dct" />
-                    <!-- Or to cause volume integrals to be multiplied by 2 -->
-                <dimension name="y" lattice="128" domain="(0, 1)" transform="dct" volume_prefactor="2.0" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-The "dst" transform
--------------------
-
-The "dst" (discrete sine transform) is a counterpart to the DCT transform.  XMDS uses the type-II DST and its inverse, which is also called the type-III DST.  This transform assumes that fields are periodic in this dimension, but also that they are also odd around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can therefore be of any shape where all the even derivatives are zero at each boundary.  
-
-The DST transform can be defined on real-valued vectors.  As odd-valued functions are zero at the boundaries, this is a natural transform to use when implementing zero Dirichlet boundary conditions.
-
-XMDS labels the sine transform space variables the same as for :ref:`Fourier transforms<dft_Transform>` and all the even derivatives can be calculated the same way.  Odd moments of the sine-space variables are in fact *not* related to the corresponding odd derivatives by an inverse sine transform.
-
-Discrete sine transforms allow easy calculation of even-order derivatives, as the 2n\ :sup:`th` derivative of a field is proportional to the 2n\ :sup:`th` moment of the field in DST-space:
-
-.. math::
-    \mathcal{F}_\text{DST}\left[\frac{\partial^{2n} f(x)}{\partial x^{2n}}\right](k_x) = (-k_x^2)^{n}\; \mathcal{F}_\text{DST}\left[f(x)\right](k_x)
-
-This identity can be used to write the differential operator :math:`\mathcal{L} = \frac{\partial^2}{\partial x^2}` as an ``IP`` or ``EX`` operator as ``L = -kx*kx;`` (see :ref:`OperatorsElement` for more details).
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(0, 1.5)" transform="dst" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-.. _BesselTransform:
-
-The "bessel" transform
-----------------------
-
-Just as the Fourier basis is useful for finding derivatives in Euclidean geometry, the basis of Bessel functions is useful for finding certain common operators in cylindrical co-ordinates.  In particular, we use the Bessel functions of the first kind, :math:`J_m(u)`.  The relevant transform is the Hankel transform:
-
-.. math::
-    F_m(k) = \mathcal{H}_m \left[f\right](k) = \int_0^\infty r f(r) J_m(k r) dr
-    
-which has the inverse transform:
-
-.. math::
-    f(r) = \mathcal{H}^{-1}_m \left[F_m\right](r) = \int_0^\infty k F_m(k) J_m(k r) dk
-    
-This transform pair has the useful property that the Laplacian in cylindrical co-ordinates is diagonal in this basis:
-
-.. math::
-    \nabla^2 \left(f(r) e^{i m \theta}\right) &= \left(\frac{\partial^2 f}{\partial r^2} +\frac{1}{r}\frac{\partial f}{\partial r} -\frac{m^2}{r^2} f \right) e^{i m \theta} = \left\{\mathcal{H}^{-1}_m \left[(-k^2) F_m(k)\right](r) \right\} e^{i m \theta}
-    
-XMDS labels the variables in the transformed space with a prefix of 'k', just as for :ref:`Fourier transforms<dft_Transform>`.  The order :math:`m` of the transform is defined by the ``order`` attribute in the ``<dimension>`` element, which must be assigned as a non-negative integer.  If the order is not specified, it defaults to zero which corresponds to the solution being independent of the angular coordinate :math:`\theta`.  
-
-It can often be useful to have a different sampling in normal space and Hankel space.  Reducing the number of modes in either space dramatically speeds simulations.  To set the number of lattice points in Hankel space to be different to the number of lattice points for the field in its original space, use the attribute ``spectral_lattice``.  The Bessel space lattice is chosen such that the boundary condition at the edge of the domain is zero.  This ensures that all of the Bessel modes ar [...]
-
-Hankel transforms allow easy calculation of the Laplacian of fields with cylindrical symmetry.  Applying the operator ``L = -kr*kr`` in Hankel space is therefore equivalent to applying the operator
-
-.. math::
-    \mathcal{L} = \left(\frac{\partial^2}{\partial r^2} +\frac{1}{r}\frac{\partial}{\partial r} -\frac{m^2}{r^2} \right)
-    
-in coordinate space.
-
-In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For example, in cylindrical co-ordinates with a radial co-ordinate 'r', integrals over this dimension have a volume element :math:`r dr`.  When performing integrals along a dimension specified by the "bessel" transform, the factor of the radius is included implicitly.  If you are using a geometry with some symmetry, it is common to have prefactors in your integration.  For example, for a two-dimensional volume in cy [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" domain="(0, 3)" transform="bessel" volume_prefactor="2*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-The "spherical-bessel" transform
---------------------------------
-
-When working in spherical coordinates, it is often useful to use the spherical Bessel functions :math:`j_l(x)=\sqrt{\frac{\pi}{2x}}J_{l+\frac{1}{2}}(x)` as a basis.  These are eigenfunctions of the radial component of Laplace's equation in spherical coordinates:
-
-.. math::
-    \nabla^2 \left[j_l(k r)\; Y^m_l(\theta, \phi)\right] &= \left[\frac{\partial^2 }{\partial r^2} +\frac{2}{r}\frac{\partial }{\partial r} -\frac{l(l+1)}{r^2}\right] j_l(k r) \; Y^m_l(\theta, \phi) = -k^2 j_l(k r)\; Y^m_l(\theta, \phi)
-
-Just as the Bessel basis above, the transformed dimensions are prefixed with a 'k', and it is possible (and usually wise) to use the ``spectral_lattice`` attribute to specify a different lattice size in the transformed space.  Also, the spacing of these lattices are again chosen in a non-uniform manner to Gaussian quadrature methods for spectrally accurate transforms.  Finally, the ``order`` attribute can be used to specify the order :math:`l` of the spherical Bessel functions used.  
-
-If we denote the transformation to and from this basis by :math:`\mathcal{SH}`, then we can write the useful property:
-
-.. math::
-    \frac{\partial^2 f}{\partial r^2} +\frac{2}{r}\frac{\partial f}{\partial r} -\frac{l (l+1)}{r^2} = \mathcal{SH}^{-1}_l \left[(-k^2) F_l(k)\right](r)
-
-Spherical Bessel transforms allow easy calculation of the Laplacian of fields with spherical symmetry. Applying the operator ``L = -kr*kr`` in Spherical Bessel space is therefore equivalent to applying the operator
-
-.. math::
-    \mathcal{L} = \left( \frac{\partial^2}{\partial r^2} +\frac{2}{r}\frac{\partial}{\partial r} -\frac{l (l+1)}{r^2} \right)
-    
-in coordinate space.  
-
-In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For example, in spherical co-ordinates with a radial co-ordinate 'r', integrals over this dimension have a volume element :math:`r^2 dr`.  When performing integrals along a dimension specified by the "spherical-bessel" transform, the factor of the square of the radius is included implicitly.  If you are using a geometry with some symmetry, it is common to have prefactors in your integration.  For example, for a thre [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" domain="(0, 3)" transform="spherical-bessel" volume_prefactor="4*M_PI" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-The "hermite-gauss" transform
------------------------------
-
-The "hermite-gauss" transform allows transformations to and from the basis of Hermite functions :math:`\psi_n(x)`:
-
-.. math::
-    \psi_n(x) = \left(2^n n! \sigma \sqrt{\pi}\right)^{-1/2} e^{-x^2/2\sigma^2} H_n(\sigma x)
-    
-where the functions :math:`H_n(x)` are the Hermite polynomials:
-
-.. math::
-    H_n(x) &= (-1)^n e^{x^2} \frac{d^n}{dx^n} \left(e^{-x^2}\right)
-    
-which are eigenfunctions of the Schroedinger equation for a harmonic oscillator:
-
-.. math::
-    - \frac{\hbar^2}{2 m} \frac{\partial^2 \psi_n}{\partial x^2} + \frac{1}{2} m \omega^2 x^2 \psi_n(x) = \hbar \omega\left(n+\frac{1}{2}\right) \psi_n(x),
-
-with :math:`\sigma = \sqrt{\frac{\hbar}{m \omega}}`.
-    
-This transform is different to the others in that it requires a ``length_scale`` attribute rather than a ``domain`` attribute, as the range of the lattice will depend on the number of basis functions used. The ``length_scale`` attribute defines the scale of the domain as the standard deviation :math:`\sigma` of the lowest order Hermite function :math:`\psi_0(x)`:
-
-.. math::
-    \psi_0(x) = (\sigma^2 \pi)^{-1/4} e^{-x^2/2 \sigma^2}
-
-When a dimension uses the "hermite-gauss" transform, then the variable indexing the basis functions is defined as the name of the dimension prefixed with an "n".  For example, when referencing the basis function indices for the dimensions "x", "y", "z" and "tau", use the variable "nx", "ny", "nz" and "ntau".  
-
-Applying the operator ``L = nx + 0.5`` in Hermite space is therefore equivalent to applying the operator
-
-.. math::
-   \mathcal{L} = \left(- \frac{\sigma^2}{2}\frac{\partial^2}{\partial x^2} + \frac{1}{2 \sigma^2} x^2 \right)
-    
-in coordinate space.  
-
-The Hermite-Gauss transform permits one to work in energy-space for the harmonic oscillator.  The normal Fourier transform of "hermite-gauss" dimensions can also be referenced using the dimension name prefixed with a "k".  See the examples ``hermitegauss_transform.xmds`` and ``hermitegauss_groundstate.xmds`` for examples.
-
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="r" lattice="128" length_scale="1.0" transform="hermite-gauss" />
-            </transverse_dimensions>
-        </geometry>
-    </simulation>
-
-
-
-
-.. _VectorElement:
-
-Vector Element
-==============
-
-Vectors are arrays of data, defined over any subset of the transverse dimensions defined in your :ref:`GeometryElement`.  These dimensions are listed in the attribute ``dimensions``, which can be an empty string if you wish the vector to not be defined on any dimensions.  If you do not include a ``dimensions`` attribute then the vector defaults to being a function of all transverse dimensions, not including any aliases.  Vectors are used to store static or dynamic variables, but you do n [...]
-
-Each ``<vector>`` element has a unique name, defined by a ``name`` attribute.  It is either complex-valued (the default) or real-valued, which can be specified using the ``type="real"`` attribute.
-
-.. _ComponentsElement:
-
-A vector contains a list of variables, each defined by name in the ``<components>`` element.  The name of each component is the name used to reference it later in the simulation.
-
-Vectors are initialised at the beginning of a simulation, either from code or from an input file.  The basis choice for this initialisation defaults to the normal space as defined in the ``<geometry>`` element, but any transverse dimension can be initialised in their transform basis by specifying them in an ``initial_basis`` attribute.  The ``initial_basis`` attribute lists dimensions either by their name as defined by the ``<geometry>`` element, or by their transformed name.  For exampl [...]
-
-.. _InitialisationElement:
-
-When initialising the vector within the XMDS script, the appropriate code is placed in a 'CDATA' block inside an ``<initialisation>`` element.  This code is in standard C-syntax, and should reference the components of the vector by name.  XMDS defines a few useful :ref:`shorthand macros<XMDSCSyntax>` for this C-code.  If you wish to initialise all the components of the vector as zeros, then it suffices simply to add the attribute ``kind="zero"`` or to omit the ``<initialisation>`` elemen [...]
-    
-.. _ReferencingNonlocal:
-
-While the default XMDS behaviour is to reference all variables locally, any vector can be referenced non-locally.  The notation for referencing the value of a vector 'phi' with a dimension 'j' at a value of 'j=jk' is ``phi(j => jk)``.  Multiple non-local dimensions are addressed by adding the references in a list, e.g. ``phi(j => jk, x => y)``.  See ``2DMultistateSE.xmds`` for an example.
-
-Dimensions can only be accessed non-locally if one of the following conditions is true:
-
-* The dimension is an ``integer`` dimension,
-* The dimension is accessed with an :ref:`alias <DimensionAliases>` of that dimension. For example, ``phi(x => y)`` if the dimension ``x`` has ``y`` as an alias, or vice-versa.
-* The dimension is a Fourier transform dimension (``dft``), used in the spectral basis (i.e. ``kx`` for an ``x`` dimension) and it is accessed with the negative of that dimension.  For example ``phi(kx => -kx)``.
-* The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a dimension with a transform of ``dft``, ``dct``, ``dst`` or ``none``), the dimension is symmetric about zero and it is accessed with the negative of the dimension name.  For example ``phi(x => -x)`` for a dimension with domain of ``(-1.2, 1.2)``.
-* The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a dimension with a transform of ``dft``, ``dct``, ``dst`` or ``none``), and it is accessed with the lower limit of that dimension.  For example, ``phi(x => -1.2)`` for a dimension with a domain of ``(-1.2, 1.2)``.  Note that the dimension must be accessed with the exact characters used in the definition of the domain.  For the previous example ``phi(x => -1.20)`` does not satisfy this condition.
-* **Advanced behaviour**: The value of a variable at an arbitrary point can be accessed via the integer index for that dimension. For example ``phi(x_index => 3)`` accesses the value of ``phi`` at the grid point with index 3.  As ``x_index`` is zero-based, this will be the *fourth* grid point.  It is highly recommended that the :ref:`diagnostics <Diagnostics>` feature be used when writing simulations using this feature.  Once the simulation has been tested, ``<diagnostics>`` can be turne [...]
-
-
-Note that a dimension cannot be accessed non-locally in ``distributed-mpi`` simulations if the simulation is distributed across that dimension.
-
-.. _FilenameElement:
-
-If you wish to initialise from a file, then you can choose to initialise from an hdf5 file using ``kind="hdf5"`` in the ``<initialisation>`` element, and then supply the name of the input file with the ``filename`` element.  This is a standard data format which can be generated from XMDS, or from another program.  An example for generating a file in another program for input into XMDS is detailed in the Advanced topic: :ref:`Importing`.
-
-When initialising from a file, the default is to require the lattice of the transverse dimensions to exactly match the lattice defined by XMDS.  There is an option to import data defined on a subset or superset of the lattice points.  Obviously, the dimensionality of the imported field still has to be correct.  This option is activated by defining the attribute ``geometry_matching_mode="loose"``.  The default option is defined as ``geometry_matching_mode="strict"``.  A requirement of the [...]
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" initial_basis="x" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x) * cis(40 * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A zero-dimensional real vector with components u and v -->
-        <vector name="zero_dim" dimensions="" type="real">
-            <components>
-                u v
-            </components>
-            <initialisation kind="hdf5">
-                <filename>data.h5</filename>
-            </initialisation>
-        </vector>
-    </simulation>
-
-
-
-.. _Dependencies:
-
-The dependencies element
-------------------------
-
-Often a vector, computed vector, filter, integration operator or output group will reference the values in one or more other vectors, computed vectors or noise vectors.  These dependencies are defined via a ``<dependencies>`` element, which lists the names of the vectors.  The components of those vectors will then be available for use in the 'CDATA' block, and can be referenced by their name.  
-
-For a vector, the basis of the dependent vectors, and therefore the basis of the dimensions available in the 'CDATA' block, are defined by the ``initial_basis`` of the vector.  For a ``<computed_vector>``, ``<filter>`` ``<integration_vector>``, or moment group vector, the basis of the dependencies can be specified by a ``basis`` attribute in the ``<dependencies>`` element.  For example, ``basis="x ny kz"``.
-
-Any transverse dimensions that appear in the ``<dependencies>`` element that do not appear in the ``dimensions`` attribute of the vector are integrated out.  For integer dimensions, this is simply an implicit sum over the dimension.  For real-valued dimensions, this is an implicit integral over the range of that dimension.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-                <dimension name="y" lattice="10" domain="(-3, 2)" transform="dct" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" dimensions="x" initial_basis="x" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <!-- 
-                    The initialisation of the vector 'wavefunction' depends on information
-                    in the 'two_dim' vector.  The vector two_dim is DCT-transformed into the
-                    (x, ky) basis, and the ky dimension is implicitly integrated over in the
-                    following initialisation code
-                  -->
-                <dependencies basis="x ky">two_dim</dependencies>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x + v) * cis(u * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A two-dimensional real vector with components u and v -->
-        <vector name="two_dim" type="real">
-            <components>
-                u v
-            </components>
-            <initialisation kind="hdf5">
-                <filename>data.h5</filename>
-            </initialisation>
-        </vector>
-    </simulation>
-
-
-
-.. _ComputedVectorElement:
-
-Computed Vector Element
-=======================
-
-.. _EvaluationElement:
-
-Computed vectors are arrays of data much like normal ``<vector>`` elements, but they are always calculated as they are referenced, so they cannot be initialised from file.  It is defined with a ``<computed_vector>`` element, which has a ``name`` attribute, optional ``dimensions`` and ``type`` attributes, and a ``<components>`` element, just like a ``<vector>`` element.  Instead of an <:ref:`initialisation<InitialisationElement>`> element, it has an ``<evaluation>`` element that serves th [...]
-
-As it is not being stored, a ``<computed_vector>`` does not have or require an ``initial_basis`` attribute, as it will be transformed into an appropriate basis for the element that references it.  The basis for its evaluation will be determined entirely by the ``basis`` attribute of the ``<dependencies>`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- A one-dimensional vector with dimension 'x' -->
-        <vector name="wavefunction" type="complex">
-            <components> phi </components>
-            <initialisation>
-                <![CDATA[
-                    // 'cis(x)' is cos(x) + i * sin(x)
-                    phi = exp(-0.5 * x * x) * cis(40 * x);
-                ]]>
-            </initialisation>
-        </vector>
-        
-        <!-- A zero-dimensional real computed vector with components Ncalc -->
-        <computed_vector name="zero_dim" dimensions="" type="real">
-            <components>
-                Ncalc
-            </components>
-            <evaluation>
-                <dependencies>wavefunction</dependencies>
-                <![CDATA[
-                    // Implicitly integrating over the dimension 'x'
-                    Ncalc = mod2(phi);
-                ]]>
-            </evaluation>
-        </computed_vector>
-    </simulation>
-
-
-
-.. _NoiseVectorElement:
-
-Noise Vector Element
-====================
-
-Noise vectors are used like computed vectors, but when they are evaluated they generate arrays of random numbers of various kinds.  They do not depend on other vectors, and are not initialised by code.  They are defined by a ``<noise_vector>`` element, which has a ``name`` attribute, and optional ``dimensions``, ``initial_basis`` and ``type`` attributes, which work identically as for normal vectors.  
-
-The choice of pseudo-random number generator (RNG) can be specified with the ``method`` attribute, which has options "posix" (the default), "mkl", "solirte" and "dsfmt".  It is only possible to use any particular method if that library is available.  Although "posix" is the default, it is also the slowest, and produces the lowest quality random numbers (although this is typically not a problem).  "mkl" refers to the Intel Math Kernel Library, and is only available if installed.  "solirte [...]
-
-The random number generators can be provided with a seed using the ``seed`` attribute, which should typically consist of a list of three integers.  All RNGs require positive integers as seeds.  It is possible to use the :ref:`<validation kind="run-time"/><Validation>` feature to use passed variables as seeds.  It is advantageous to use fixed seeds rather than timer-based seeds, as the :ref:`<error_check><ErrorCheck>` element can test for strong convergence if the same seeds are used for  [...]
-
-The different types of noise vectors are defined by a mandatory ``kind`` attribute, which must take the value of 'gauss', 'gaussian', 'wiener', 'poissonian','jump' or 'uniform'.  
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-                <dimension name="x" lattice="128" domain="(-1, 1)" />
-            </transverse_dimensions>
-        </geometry>
-    
-        <!-- 
-            A one-dimensional complex wiener noise vector.
-            This noise is appropriate for using in the complex
-            random-walk equation of motion:
-                dz_dt = eta;
-        -->
-        <noise_vector name="noise" kind="wiener">
-            <components>
-                eta
-            </components>
-        </vector>
-    </simulation>
-
-
-.. _uniformNoise:
-
-Uniform noise
--------------
-
-Uniform noises defined over any transverse dimensions are simply uniformly distributed random numbers between zero and one.  This noise is an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If it were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="drivingNoise" dimensions="x" kind="uniform" type="complex" method="dsfmt" seed="314 159 276">
-          <components>Eta</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _gaussianNoise:
-
-Gaussian noise
---------------
-
-Noise generated with the "gaussian" method is gaussian distributed with zero mean.  For a real-valued noise vector, the variance at each point is the inverse of the volume element of the transverse dimensions in the vector.  This volume element for a single transverse dimension is that used to perform integrals over that dimension.  For example, it would include a factor of :math:`r^2` for a dimension "r" defined with a ``spherical-bessel`` transform.  It can be non-uniform for dimension [...]
-
-This lattice-dependent variance is typical in most applications of partial differential equations with stochastic initial conditions, as the physical quantity is the variance of the field over some finite volume, which does not change if the variance at each lattice site varies as described above.
-
-For complex-valued noise vector, the real and imaginary parts of the noise are independent, and each have half the variance of a real-valued noise.  This means that the modulus squared of a complex-valued noise vector has the same variance as a real-valued noise vector at each point.
-
-Gaussian noise vectors are an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialNoise" dimensions="x" kind="gauss" type="real" method="posix" seed="314 159 276">
-          <components>fuzz</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _wienerNoise:
-
-Wiener noise
-------------
-
-Noise generated with the "wiener" method is gaussian distributed with zero mean and the same variance as the static "gaussian" noise defined above, multiplied by a factor of the lattice step in the propagation dimension.  This means that these noise vectors can be used to define Wiener noises for standard stochastic ordinary or partial differential equations.  Most integrators in XMDS effectively interpret these noises as Stratonovich increments.
-
-As a dynamic noise, a Wiener process is not well-defined except in an ``integrate`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="diffusion" dimensions="x" kind="wiener" type="real" method="solirte" seed="314 159 276">
-          <components>dW</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _poissionianNoise:
-
-Poissonian noise
-----------------
-
-A noise vector using the "poissonian" method generates a random variable from a Poissonian distribution.  While the the Poisson distribution is integer-valued, the variable will be cast as a real number.  The rate of the Poissonian distribution is defined by the ``mean`` or ``mean-density`` attributes.  These are are synonyms, and must be defined as positive real numbers.  For Poissonian noises defined over real-valued transverse dimensions, the rate is given by the product of this ``mea [...]
-
-Poissonian noise vectors are an example of a "static" noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialDistribution" dimensions="x" kind="poissonian" type="real" mean-density="2.7" method="solirte" seed="314 159 276">
-          <components>Pdist</components>
-        </noise_vector>
-    </simulation>
-
-
-.. _jumpNoise:
-
-Jump noise
-----------
-
-A noise vector using the "jump" method is the dynamic version of the poissonian noise method, and must have the ``mean-rate`` attribute specified as a positive real number.  The variable at each point is chosen from a Poissonian distribution with a mean equal to the product of three variables: the ``mean-rate`` attribute; the volume of the element as defined by its transverse dimensions (including their ``volume_prefactor`` attributes); and the step size in the propagation dimension.  No [...]
-
-It is common to wish to vary the mean rate of a jump process, which means that the ``mean-rate`` attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the :ref:`<validation><Validation>` feature with either the ``kind="none"`` or ``kind="run-time"`` attributes.
-
-As a dynamic noise, a jump process is not well-defined except in an ``integrate`` element.
-
-Example syntax::
-
-    <simulation xmds-version="2">
-        <noise_vector name="initialDistribution" dimensions="" kind="jump" type="real" mean-rate="2.7" method="solirte" seed="314 159 276">
-          <components>dN</components>
-        </noise_vector>
-    </simulation>
-
-
-
-.. _SequenceElement:
-
-Sequence Element
-================
-
-All processing of vectors happens in sequence elements.  Each simulation must have exactly one main sequence element, but it can then contain any number of nested sequence elements.  A sequence element can contain any number of ``<sequence>``, :ref:`<filter><FilterElement>`, :ref:`<integrate><IntegrateElement>` and/or :ref:`<breakpoint><BreakpointElement>` elements, which are executed in the order they are written.  A sequence can be repeated a number of times by using the ``cycles`` att [...]
-    
-Example syntax::
-
-    <simulation xmds-version="2">
-        <sequence cycles="2">
-            <sequence>  ... </sequence>
-            <filter> ... </filter>
-            <integrate> ...</integrate>
-        </sequence>
-    </simulation>    
-
-.. _FilterElement:
-
-Filter element
-==============
-
-A ``<filter>`` element can be placed inside a ``<sequence>`` element or an :ref:`<integrate><IntegrateElement>` element.  It contains a 'CDATA' block and an optional :ref:`<dependencies><Dependencies>` element, which may give access to variables in other ``<vector>``, ``<computed_vector>`` or ``<noise_vector>`` elements.  The code inside the 'CDATA' block is executed over the combined tensor product space of the dependencies, or simply once if there is no dependencies element.  This elem [...]
-    
-Sometimes it is desirable to apply a filter conditionally.  The most efficient way of doing this is to call the function from the piece of code that contains the conditional statement (likely another ``<filter>`` element) rather than embed the conditional function in the filter itself, as the latter method can involve the conditional statement being evaluated multiple times over the transverse dimensions.  For this reason, it is possible to give a filter a ``name`` attribute, and the fil [...]
-    
-One of the common uses of a filter element is to apply discontinuous changes to the vectors and variables of the simulation.
-
-Example syntax::
-
-    <sequence>
-        <filter>
-          <![CDATA[
-            printf("Hello world from the first filter segment!  This filter rather wastefully calls the second one.\n");
-            fname();
-          ]]>
-        </filter>
-
-        <filter name="fname">
-           <dependencies>normalisation wavefunction</dependencies>
-           <![CDATA[
-             phi *= sqrt(Nparticles/Ncalc);
-           ]]>
-        </filter>
-    </sequence>
-
-
-.. _IntegrateElement:
-
-Integrate element
-=================
-
-The ``<integrate>`` element is at the heart of most XMDS simulations.  It is used to integrate a set of (potentially stochastic) first-order differential equations for one or more of the vectors defined using the ``<vector>`` element along the propagation dimension.  At the beginning of the simulation, the value of the propagation dimension is set to zero, and the vectors are initialised as defined in the :ref:`<vector><VectorElement>` element.  As successive sequence elements change the [...]
-    
-The length of the integration is defined by the ``interval`` attribute, which must be a positive real number.  An ``<integrate>`` element must have an ``algorithm`` attribute defined, which defines the integration method.  Current methods include :ref:`SI <SI>`, :ref:`SIC <SI>`, :ref:`RK4 <RK4>`, :ref:`RK9 <RK4>`, :ref:`ARK45 <ARK45>`, and :ref:`ARK89 <ARK45>`.  Fixed step algorithms require a ``steps`` attribute, which must be a positive integer that defines the number of (evenly spaced [...]
-
-.. _SamplesElement:
-
-The optional ``<samples>`` element is used to track the evolution of one or more vectors or variables during an integration.  This element must contain a non-negative integer for each :ref:`<sampling_group><SamplingGroupElement>` element defined in the simulation's :ref:`<output><OutputElement>` element.  The list of integers then defines the number of times that the moments defined in those groups will be sampled.  For a fixed step algorithm, each non-zero number of samples must be a fa [...]
-    
-The vectors to be integrated and the form of the differential equations are defined in the :ref:`<operators><OperatorsElement>` element (or elements).  Filters to be applied each step can be defined with optional :ref:`<filters><FiltersElement>` elements.  
-    
-Computed vectors can be defined with the ``<computed_vector>`` element.  These act exactly like a globally defined :ref:`ComputedVectorElement`, but are only available within the single ``<integrate>`` element.
-
-Example syntax::
-
-    <integrate algorithm="ARK89" interval="1e-4" steps="10000" tolerance="1e-8">
-      <samples>20</samples>
-      <filters>
-        <filter>
-          <dependencies>wavefunction normalisation</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);   // Correct normalisation of the wavefunction
-          ]]>
-        </filter>
-      </filters>
-      <operators>
-        <operator kind="ip" constant="yes">
-          <operator_names>T</operator_names>
-          <![CDATA[
-            T = -0.5*hbar/M*ky*ky;
-          ]]>
-        </operator>
-        <dependencies>potential</dependencies>
-        <![CDATA[
-          dphi_dt = T[phi] - (V1 + Uint/hbar*mod2(phi))*phi;
-        ]]>
-        <integration_vectors>wavefunction</integration_vectors>
-      </operators>
-    </integrate>
-
-.. _OperatorsElement:
-
-Operators and operator elements
--------------------------------
-
-An :ref:`<integrate><IntegrateElement>` element must contain one or more ``<operators>`` elements, which define both which vectors are to be integrated, and their derivative in the propagation dimension.  When all vectors to be integrated have the same dimensionality, they can all be defined within a single ``<operators>`` element, and when vectors with different dimension are to be integrated, each set of vectors with the same dimensionality should be placed in separate ``<operators>``  [...]
-    
-.. _IntegrationVectorsElement:
-
-Within each ``<operators>`` element, the vectors that are to be integrated are listed by name in the ``<integration_vectors>`` element, and the differential equations are written in a 'CDATA' block.   The derivative of each component of the integration vectors must be defined along the propagation dimension.  For example, if the integration vectors have components 'phi' and 'beta', and the propagation dimension is labelled 'tau', then the 'CDATA' block must define the variables 'dphi_dta [...]
-    
-When noise vectors are referenced, equations with Wiener noises should be written as though the equations are in differential form, as described in the worked examples :ref:`Kubo` and :ref:`Fibre`.  Jump-based Poisson noises will also be written in an equivalent form, as modelled by the example ``photodetector.xmds``.
-    
-By default, the name of each component references the local value of the vector, but :ref:`nonlocal variables<ReferencingNonlocal>` can be accessed using the standard syntax.  However, typically the most common (and most efficient) method of referencing nonlocal variables is to reference variables that are local in the :ref:`transformed space<Transforms>` for a given transverse dimension.  This is done using ``<operator>`` elements.
-    
-.. _OperatorElement:
-
-There are three kinds of ``<operator>`` elements.  The first is denoted with a ``kind="functions"`` attribute, and contains a 'CDATA' block that will be executed in the order that it is defined.  This is useful when you wish to calculate functions that do not depend on the transverse dimensions.  Defining these along with the main equations of motion causes them to be recalculated separately for each point.  The second kind of ``<operator>`` element is used to define an operation in a tr [...]
-
-Example syntax::
-
-    <operator kind="functions">
-      <![CDATA[
-      f = cos(t);
-      ]]>
-    </operator>
-    
-.. _OperatorNamesElement:
-
-The second kind of operator element defines a list of operators in an ``<operator_names>`` element.  The basis of these operators defaults to the transform space unless a different basis is specified using the ``basis`` attribute.  These operators must then be defined in a 'CDATA' block, using any :ref:`dependencies<Dependencies>` as normal.  If the operators constant across the integration, then the attribute ``constant="yes"`` should be set, otherwise the ``constant="no"`` attribute en [...]
-
-Operators of this second kind have the ``kind="IP"`` or ``kind="EX"`` attribute, standing for 'interaction picture' and 'explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by allowing larger timesteps, but have two important restrictions.  **Use of IP operators without understanding these restrictions can lead to incorre [...]
-
-Example syntax::
-
-    <operator kind="ex" constant="yes">
-      <operator_names>T</operator_names>
-      <![CDATA[
-        T = -0.5*hbar/M*ky*ky;
-      ]]>
-    </operator>
-
-The third kind of operator element is used to define an integration along a transverse dimension.  This kind of evolution is called "cross-propagation", and is described briefly in the examples 'tla.xmds', 'tla_sic.xmds' and 'sine_cross.xmds'.  This class of equations have a subset of vectors that have an initial condition on one side of a transverse dimension, and a differential equation defined in that dimension, and as such, this kind of operator element has much of the structure of a [...]
-    
-An operator element with the ``kind="cross_propagation"`` attribute must specify the transverse dimension along which the integration would proceed with the ``propagation_dimension`` attribute.  It must also specify its own :ref:`<integration_vectors><IntegrationVectorsElement>` element, its own ``<operators>`` elements (of the second kind), and may define an optional :ref:`<dependencies><Dependencies>` element.  The algorithm to be used for the transverse integration is specified by the [...]
-    
-.. _BoundaryConditionElement:
-
-The boundary conditions are specified by a ``<boundary_conditions>`` element, which requires the ``kind="left"`` or ``kind="right"`` attribute to specify on which side of the grid that the boundary conditions are specified.  The boundary conditions for the ``<integration_vectors>`` are then specified in a 'CDATA' block, which may refer to vectors in an optional :ref:`<dependencies><Dependencies>` element that can be contained in the ``<boundary_conditions>`` element.
-
-Example syntax::
-
-    <operator kind="cross_propagation" algorithm="RK4" propagation_dimension="t">
-      <integration_vectors>cross</integration_vectors>
-      <dependencies>constants</dependencies>
-      <boundary_condition kind="left">
-        <![CDATA[
-          v = 1.0;
-          w = 1.0;
-        ]]>
-      </boundary_condition>
-  
-      <operator kind="ip" constant="yes">
-        <operator_names>L</operator_names>
-        <![CDATA[
-          L = i;
-        ]]>
-      </operator>
-  
-      <![CDATA[
-        dv_dt = i*v;
-        dw_dt = L[w]; 
-      ]]>
-    </operator>
-
-
-.. _Algorithms:
-
-Algorithms
-----------
-
-The stability, efficiency and even convergence of a numerical integration can depend on the method.  Due to the varying properties of different sets of equations, it is impossible to define the best method for all equations, so XMDS provides an option to use different algorithms.  These include fixed step algorithms, which divide the integration region into equal steps, and adaptive stepsize algorithms, which attempt to estimate the error in the simulation in order to choose an appropria [...]
-
-For the purposes of the descriptions below, we will assume that we are considering the following set of coupled differential equations for the vector of variables :math:`\mathbf{x}(t)`:
-
-.. math::
-
-    \frac{d x_j}{dt} = f_j(\mathbf{x}(t),t)
-
-.. _SI:
-
-SI and SIC algorithms
-~~~~~~~~~~~~~~~~~~~~~
-
-The SI algorithm is a semi-implicit fixed-step algorithm that finds the increment of the vector by solving
-
-.. math::
-
-    x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t+\frac{\Delta t}{2}),t+\frac{\Delta t}{2}\right) \;\Delta t
-
-using a simple iteration to find the values of the vector at the midpoint of the step self-consistently.  The number of iterations can be set using the ``iterations`` attribute, and it defaults to ``iterations="3"``.  The choice of ``iterations="1"`` is therefore fully equivalent to the Euler algorithm, where
-
-.. math::
-
-    x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t),t\right) \;\Delta t.
-
-The Euler algorithm is the only safe algorithm for direct integration of :ref:`jump-based Poisson processes<jumpNoise>`.  Efficient numerical solution of those types of equations is best done via a process of triggered filters, which will be described in the :ref:`AdvancedTopics` section.  Integrating using the Euler algorithm computes the Ito integral, as opposed to the Stratonovich integral, which all the other algorithms compute.
-    
-When SI integration is used in conjunction with SI cross-propagation, a slight variant of the SI algorithm can be employed where the integration in both directions is contained within the iteration process.  This is activated by using ``algorithm="SIC"`` rather than ``algorithm="SI"``.
-
-The SI algorithm is correct to second order in the step-size for deterministic equations, and first order in the step-size for Stratonovich stochastic equations with Wiener noises.  This makes it the highest order stochastic algorithm in XMDS, although there are many sets of equations that integrate more efficiently with lower order algorithms.  When called with the ``iterations="1"`` option (the Euler algorithm), it is correct to first order in the step-size for deterministic equations, [...]
-
-
-.. _RK4:
-
-Runge-Kutta algorithms
-~~~~~~~~~~~~~~~~~~~~~~
-
-Runge-Kutta algorithms are the workhorse of numerical integration, and XMDS employs two fixed step versions: ``algorithm="RK4"``, which is correct to fourth-order in the step size, and ``algorithm="RK9"``, which is correct to ninth order in the step size.  It must be strongly noted that a higher order of convergence does not automatically mean a superior algorithm.  RK9 requires several times the memory of the RK4 algorithm, and each step requires significantly more computation.
-
-All Runge-Kutta algorithms are convergent for Stratonovich stochastic equations at the order of the square root of the step-size.  This 'half-order' convergence may seem very weak, but for some classes of stochastic equation this improves up to one half of the deterministic order of convergence.  Also, the convergence of some stochastic equations is limited by the 'deterministic part', which can be improved dramatically by using a higher order Runge-Kutta method.
-
-
-.. _ARK45:
-
-Adaptive Runge-Kutta algorithms
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Fixed step integrators can encounter two issues.  First, as the equations or parameters of a simulation are changed, the minimum number of steps required to integrate it may change.  This means that the convergence must be re-tested multiple times for each set of parameters, as overestimating the number of steps required to perform an integration to a specified error tolerance can be very inefficient. Second, even if the minimum acceptable number of steps required is known for a given si [...]
-algorithms get around this problem by testing the convergence during the integration, and adjusting the step-size until it reaches some target tolerance.
-
-XMDS employs two adaptive step-size algorithms based on 'embedded Runge-Kutta' methods.  These are Runge-Kutta methods that can output multiple variables that have different convergence.  The difference between the higher-order and the lower-order solutions gives an estimate of the error in each step, which can then be used to estimate an appropriate size for the next step.  We use ``algorthim="ARK45"``, which contains fourth and fifth order solutions, and ``algorthim=ARK89``, which cont [...]
-
-All adaptive stepsize algorithms require a ``tolerance`` attribute, which must be a positive real number that defines the allowable error per step.  It is also possible to specify a ``max_iterations`` attribute, which is a positive integer that stops the integrator from trying too many times to find an acceptable stepsize.  The integrator will abort with an error if the number of attempts for a single step exceeds the maximum specified with this attribute.
-
-As all Runge-Kutta solutions have equal order of convergence for stochastic equations, *if the step-size is limited by the stochastic term then the step-size estimation is entirely unreliable*.  Adaptive Runge-Kutta algorithms are therefore not appropriate for stochastic equations.
-
-
-.. _FiltersElement:
-
-Filters element
----------------
-
-:ref:`Filter elements<FilterElement>` are used inside :ref:`sequence elements<SequenceElement>` to execute arbitrary code, or make discontinuous changes in the vectors.  Sometimes it is desirable to perform a filter element at the beginning or end of each step in an integration.  This can be done by placing ``<filter>`` elements in a ``<filters>`` element within the ``<integrate>`` element.  The ``<filters>`` element specifies whether the filters are to be executed at the end of each ste [...]
-is then executed in the order found in the ``<filters>`` element.
-
-Example syntax::
-
-    <integrate algorithm="ARK45" interval="100000.0" steps="10000000" tolerance="1e-8">
-      <samples>5000 100</samples>
-      <filters where="step end">
-        <filter>
-            <dependencies>vector1 vector2</dependencies>
-            <![CDATA[
-                x = 1;
-                y *= ynorm;
-                ]]>
-        </filter>
-      </filters>
-
-      <operators>
-        <integration_vectors>vector1</integration_vectors>
-        <![CDATA[
-        dx_dt = alpha;
-        dy_dt = beta*y;
-        ]]>
-      </operators>
-    </integrate>
-
-
-.. _BreakpointElement:
-
-Breakpoint element
-==================
-
-The ``<breakpoint>`` element is used to output the full state of one or more vectors.  Unlike sampled output, it executes immediately rather than at the end of a program, and can therefore be used to examine the current state of an ongoing simulation.  The vectors to be output are defined via a :ref:`<dependencies><Dependencies>` element, and the basis is chosen by the ``basis`` attribute supplied to that ``<dependencies>`` element, as usual.  A single ``<breakpoint>`` element must only  [...]
-
-Example syntax::
-
-    <breakpoint filename="groundstate_break.xsil" format="hdf5">
-      <dependencies basis="ky">wavefunction</dependencies>
-    </breakpoint>
-
-.. _OutputElement:
-
-Output element
-==============
-
-The ``<output>`` element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different ``<sampling_group>`` element inside the output element.  The ``<output>`` element may contain any number of ``<sampling_group>`` elements.  The format of the outp [...]
-
-The ``<samples>`` inside ``<integrate>`` elements defines a string of integers, with exactly one for each ``<sampling_group>`` element.  During that integration, the variables described in each ``<sampling_group>`` element will be sampled and stored that number of times.  
-
-
-.. _SamplingGroupElement:
-
-Sampling Group Element
-----------------------
-
-A ``<sampling_group>`` element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a ``<moments>`` element, just like the ``<components>`` element of a vector.  They are defined with a ':ref:`CDATA<XMDSCSyntax>`' block, accessing any components of vectors and computed vectors that are defined in a :ref:`<dependencies><Dependencies>` element, also just like a vector.  :ref:`Computed ve [...]
-    
-The basis of the output is specified by the ``basis`` attribute.  This overrides any basis specification in the ``<dependencies>`` element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding a number in parentheses after that dimension in the basis string, e.g. ``basis="x y(32) kz(64)"``.  If the number is zero, then that [...]
-    
-The ``initial_sample`` attribute, which must be "yes" or "no", determines whether the moment group will be sampled before any integration occurs.
-
-Example syntax::
-
-    <output format="hdf5" filename="SimOutput.xsil">
-      <sampling_group basis="x y" initial_sample="yes">
-        <computed_vector name="filter3" dimensions="" type="complex">
-          <components>sparemomentagain</components>
-          <evaluation>
-            <dependencies basis="kx ky">integrated_u main</dependencies>
-            <![CDATA[
-              sparemomentagain = mod2(u);
-            ]]>
-          </evaluation>
-        </computed_vector>
-        <operator kind="ex" constant="no">
-          <operator_names>L</operator_names>
-          <![CDATA[
-            L = -T*kx*kx/mu;
-          ]]>
-        </operator>
-        <moments>amp ke</moments>
-        <dependencies>main filter1</dependencies>
-        <![CDATA[
-          amp = mod2(u + moment);
-          ke = mod2(L[u]);
-        ]]>
-      </sampling_group>
-
-      <sampling_group basis="kx(0) ky(64)" initial_sample="yes">
-        <moments>Dens_P </moments>
-        <dependencies>fields </dependencies>
-        <![CDATA[
-          Dens_P = mod2(psi);
-        ]]>
-      </sampling_group>
-    </output>
-
-
-.. _XMDSCSyntax:
-
-XMDS-specific C syntax
-======================
-
-Sampling complex numbers can be written more efficiently using:
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        _SAMPLE_COMPLEX(W);
-      ]]>
-
-which is short for
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        WR = W.Re();
-        WI = W.Im();
-      ]]>
-
-Various properties of dimensions are available.  For example, for a dimension called ``x``:
-
-* The number of points is accessible with the variable ``_lattice_x``,
-* The minimum range of that dimension is ``_min_x``,
-* The maximum range of that dimension is ``_max_x``,
-* The step size of a dimension is ``dx``, and if it is constant, also available using ``_dx``, but note that the latter does not include the effect of any ``volumePrefix`` you may have set!
diff --git a/documentation/_sources/reference_index.txt b/documentation/_sources/reference_index.txt
deleted file mode 100644
index bc1fd43..0000000
--- a/documentation/_sources/reference_index.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Reference section
-=================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-   
-   reference_installation_and_configuration
- 
-   reference_usefulXMLSyntax
-
-   reference_schema
-
-   reference_elements
diff --git a/documentation/_sources/reference_installation_and_configuration.txt b/documentation/_sources/reference_installation_and_configuration.txt
deleted file mode 100644
index ad55368..0000000
--- a/documentation/_sources/reference_installation_and_configuration.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-.. _ReferenceConfigurationInstallationRuntime:
-
-Configuration, installation and runtime options
-===============================================
-
-Running the 'xmds2' program with the option '--help', gives several options that can change its behaviour at runtime.  These include:
-  * '-o' or '--output', which overrides the name of the output file to be generated
-  * '-n' or '--no-compile', which generates the C code for the simulation, but does not try to compile it
-  * '-v' or '--verbose', which gives verbose output about compilation flags.
-  * '-g' or '--debug', which compiles the simulation in debug mode (compilation errors refer to lines in the source, not the .xmds file). This option implies '-v'. This option is mostly useful when debugging XMDS code generation.
-  * '--waf-verbose', which makes ``waf`` be very verbose when configuring XMDS or compiling simulations.  This option is intended for developer use only to aid in diagnosing problems with ``waf``.
-
-It also has commands to configure XMDS2 and recheck the installation.  If your program requires extra paths to compile, you can configure XMDS2 to include those paths by default.  Simply use the command
-
-.. code-block:: bash
-
-    $ xmds2 --configure --include-path /path/to/include --lib-path /path/to/lib 
-
-Alternatively, you can set the ``CXXFLAGS`` or ``LINKFLAGS`` environment variables before calling ``xmds2 --reconfigure``.  For example, to pass the compiler flag ``-pedantic`` and the link flag ``-lm`` using the bash shell, use:
-
-.. code-block:: bash
-
-    $ export CXXFLAGS="-pedantic"
-    $ export LINKFLAGS="-lm" 
-    $ xmds2 --reconfigure``
-    
-This method can also be used to change the default compilers for standard and parallel processing, using the CXX and MPICXX flags respectively.
-
-Running XMDS2 with the '--configure' option also searches for packages that have been installed since you last installed or configured XMDS2.  If you wish to run 'xmds2 --configure' with the same extra options as last time, simply use the command:
-
-.. code-block:: bash
-
-    $ xmds2 --reconfigure
-
-A detailed log of the checks is saved in the file '~/.xmds/waf_configure/config.log'.  This can be used to identify issues with packages that XMDS2 is not recognised, but you think that you have successfully installed on your system.
-
-
-
diff --git a/documentation/_sources/reference_schema.txt b/documentation/_sources/reference_schema.txt
deleted file mode 100644
index 88b3421..0000000
--- a/documentation/_sources/reference_schema.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-.. _ReferenceSchema:
-
-****************
-XMDS2 XML Schema
-****************
-
-
-There are many, many XML tags that can make up an XMDS2 script. Most of them are optional, or have default values if not specified. It is, however, useful to know which elements are possible, and their position and relationship to other elements in the script. Shown below is the full XML tree for XMDS2, which shows all possible elements and their position in the tree. An ellipsis (...) outside an element indicates the element above can be repeated indefinitely, and an ellipsis inside an  [...]
-
-The syntax <element /> can be used for lowest-level elements that have attributes but no content, and are shorthand for <element> </element>. This shorthand notation can also be used for elements which can only contain the content "yes" or "no"; in this case the presence of <element /> is equivalent to <element> yes </element>, and the absence of such an element is equivalent to <element> no </element>
-
-The possible attributes and attribute values for each element are not shown; see the individual entries in the Reference section for details.
-
-
-.. parsed-literal::
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <:ref:`simulation <SimulationElement>` xmds-version="2">
-      <:ref:`name <NameElement>`> <:ref:`/name <NameElement>`>
-      <:ref:`author <AuthorElement>`> <:ref:`author <AuthorElement>`>
-      <:ref:`description <DescriptionElement>`> <:ref:`/description <DescriptionElement>`>
-      
-      <:ref:`features <FeaturesElement>`>
-        <:ref:`arguments <ArgumentsElement>`>
-          <:ref:`argument <ArgumentElement>` />
-          <:ref:`argument <ArgumentElement>` />
-          ...
-        <:ref:`/arguments <ArgumentsElement>`>
-        <:ref:`auto_vectorise <AutoVectorise>` />
-        <:ref:`benchmark <Benchmark>` />
-        <:ref:`bing <Bing>` />
-        <:ref:`cflags <CFlags>`> <:ref:`/cflags <CFlags>`>
-        <:ref:`chunked_output <ChunkedOutput>` />
-        <:ref:`diagnostics <Diagnostics>` />
-        <:ref:`error_check <ErrorCheck>` />
-        <:ref:`halt_non_finite <HaltNonFinite>` />
-        <:ref:`fftw <FFTW>` />
-        <:ref:`globals <Globals>`> <:ref:`/globals <Globals>`>
-        <:ref:`openmp <OpenMP>` />
-        <:ref:`precision <Precision>`> <:ref:`/precision <Precision>`>
-        <:ref:`validation <Validation>` />
-      <:ref:`/features <FeaturesElement>`>
-
-      <:ref:`driver <DriverElement>` />
-  
-      <:ref:`geometry <GeometryElement>`>
-        <:ref:`propagation_dimension <PropagationDimensionElement>`> <:ref:`/propagation_dimension <PropagationDimensionElement>`>
-        <:ref:`transverse_dimensions <TransverseDimensionsElement>`>
-          <:ref:`dimension <DimensionElement>` />
-          <:ref:`dimension <DimensionElement>` />
-          ...
-        <:ref:`/transverse_dimensions <TransverseDimensionsElement>`>
-      <:ref:`/geometry <GeometryElement>`>
-  
-      <:ref:`vector <VectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-        <:ref:`initialisation <InitialisationElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <:ref:`filename <FilenameElement>`>
-          <![:ref:`CDATA <InitialisationElement>` [
-          ]]>
-        <:ref:`/initialisation <InitialisationElement>`>
-      <:ref:`/vector <VectorElement>`>
-
-      <:ref:`vector <VectorElement>`> ... <:ref:`/vector <VectorElement>`>
-      <:ref:`vector <VectorElement>`> ... <:ref:`/vector <VectorElement>`>
-      ...
-
-      <:ref:`computed_vector <ComputedVectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-        <:ref:`evaluation <EvaluationElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <![:ref:`CDATA <InitialisationElement>` [
-          ]]>
-        <:ref:`/evaluation <EvaluationElement>`>
-      <:ref:`/computed_vector <ComputedVectorElement>`>
-
-      <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-      <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-      ...
-
-      <:ref:`noise_vector <NoiseVectorElement>`>
-        <:ref:`components <ComponentsElement>`> <:ref:`/components <ComponentsElement>`>
-      <:ref:`/noise_vector <NoiseVectorElement>`>
-
-      <:ref:`noise_vector <NoiseVectorElement>`> ... <:ref:`/noise_vector <NoiseVectorElement>`>
-      <:ref:`noise_vector <NoiseVectorElement>`> ... <:ref:`/noise_vector <NoiseVectorElement>`>
-      ...
-
-      <:ref:`sequence <SequenceElement>`>
-
-        <:ref:`filter <FilterElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <![:ref:`CDATA <XMDSCSyntax>` [
-          ]]>
-        <:ref:`/filter <FilterElement>`>
-
-        <:ref:`integrate <IntegrateElement>`>
-          <:ref:`samples <SamplesElement>`> <:ref:`/samples <SamplesElement>`>
-
-          <:ref:`computed_vector <ComputedVectorElement>`> ... <:ref:`/computed_vector <ComputedVectorElement>`>
-
-          <:ref:`filters <FiltersElement>`>
-            <:ref:`filter <FilterElement>`> ... <:ref:`/filter <FilterElement>`>
-            <:ref:`filter <FilterElement>`> ... <:ref:`/filter <FilterElement>`>
-            ...
-          <:ref:`/filters <FiltersElement>`>
-      
-          <:ref:`operators <OperatorsElement>`>
-
-            <:ref:`operator <OperatorElement>`>
-              <:ref:`boundary_condition <BoundaryConditionElement>`>
-                <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-                <![:ref:`CDATA <XMDSCSyntax>` [
-                ]]>
-              <:ref:`/boundary_condition <BoundaryConditionElement>`>
-              <:ref:`operator_names <OperatorNamesElement>`> <:ref:`/operator_names <OperatorNamesElement>`>
-              <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-              <![:ref:`CDATA <XMDSCSyntax>` [
-              ]]>
-            <:ref:`/operator <OperatorElement>`>
-
-            <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>
-            <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>
-            ...
-
-            <:ref:`integration_vectors <IntegrationVectorsElement>`> <:ref:`/integration_vectors <IntegrationVectorsElement>`>
-            <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-            <![:ref:`CDATA <XMDSCSyntax>` [
-            ]]>
-
-          <:ref:`/operators <OperatorsElement>`>
-
-        <:ref:`/integrate <IntegrateElement>`>
-    
-        <:ref:`breakpoint <BreakpointElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-        <:ref:`/breakpoint <BreakpointElement>`>
-
-      <:ref:`/sequence <SequenceElement>`>
-  
-      <:ref:`output <OutputElement>`>
-        <:ref:`sampling_group <SamplingGroupElement>`>
-          <:ref:`dependencies <Dependencies>`> <:ref:`/dependencies <Dependencies>`>
-          <:ref:`moments <SamplingGroupElement>`> <:ref:`/moments <SamplingGroupElement>`>
-          <:ref:`operator <OperatorElement>`> ... <:ref:`/operator <OperatorElement>`>       
-          <![:ref:`CDATA <XMDSCSyntax>` [
-          ]]>
-        <:ref:`/sampling_group <SamplingGroupElement>`>
-
-        <:ref:`sampling_group <SamplingGroupElement>`> ... <:ref:`/sampling_group <SamplingGroupElement>`>
-        <:ref:`sampling_group <SamplingGroupElement>`> ... <:ref:`/sampling_group <SamplingGroupElement>`>
-        ...
-
-      <:ref:`/output <OutputElement>`>
-
-    <:ref:`/simulation <SimulationElement>`>
diff --git a/documentation/_sources/reference_usefulXMLSyntax.txt b/documentation/_sources/reference_usefulXMLSyntax.txt
deleted file mode 100644
index faf663d..0000000
--- a/documentation/_sources/reference_usefulXMLSyntax.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-.. _ReferenceUsefulXMLSyntax:
-
-Useful XML Syntax
-=================
-
-Standard XML placeholders can be used to simplify some scripts.  For example, the following (abbreviated) code ensures that the limits of a domain are symmetric.
-
-.. code-block:: xmds2
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <!DOCTYPE simulation [
-    <!ENTITY Npts    "64">
-    <!ENTITY L      "3.0e-5">
-    ]>
-      <simulation xmds-version="2">
-      
-        . . .
-        
-        <geometry>
-            <propagation_dimension> t </propagation_dimension>
-            <transverse_dimensions>
-              <dimension name="x" lattice="&Npts;"  domain="(-&L;, &L;)" />
-            </transverse_dimensions>
-         </geometry>
diff --git a/documentation/_sources/tutorial.txt b/documentation/_sources/tutorial.txt
deleted file mode 100644
index ff5d1fd..0000000
--- a/documentation/_sources/tutorial.txt
+++ /dev/null
@@ -1,258 +0,0 @@
-.. _QuickStartTutorial:
-
-Quickstart Tutorial
-===================
-
-In this tutorial, we will create an XMDS2 script to solve the Lorenz Attractor, an example of a dynamical system that exhibits chaos. The equations describing this problem are 
-
-.. math::
-    \frac{dx}{dt} &= \sigma (y - x)\\
-    \frac{dy}{dt} &= x (\rho - z) - y\\
-    \frac{dz}{dt} &= xy - \beta z
-
-where we will solve with the parameters :math:`\sigma=10`, :math:`\rho=28`, :math:`\beta = \frac{8}{3}` and the initial condition :math:`x(0) = y(0) = z(0) = 1`.
-
-Below is a script that solves this problem (it's also saved as examples/lorenz.xmds in your XMDS2 directory). Don't worry if it doesn't make sense yet, soon we'll break it down into easily digestible parts.
-
-.. code-block:: xpdeint
-    
-    <?xml version="1.0" encoding="UTF-8"?>
-    <simulation xmds-version="2">
-      <name>lorenz</name>
-      
-      <!-- While not strictly necessary, the following two tags are handy. -->
-      <author>Graham Dennis</author>
-      <description>
-        The Lorenz Attractor, an example of chaos.
-      </description>
-      
-      <!-- 
-      This element defines some constants.  It can be used for other 
-      features as well, but we will go into that in more detail later.
-      -->
-      <features>
-        <globals>
-            <![CDATA[
-            real sigma = 10.0;
-            real b = 8.0/3.0;
-            real r = 28.0;
-            ]]>
-         </globals>
-       </features>
-       
-      <!-- 
-      This part defines all of the dimensions used in the problem,
-      in this case, only the dimension of 'time' is needed.
-      -->
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-      
-      <!-- A 'vector' describes the variables that we will be evolving. -->
-      <vector name="position" type="real">
-        <components>
-          x y z
-        </components>
-        <initialisation>
-          <![CDATA[
-          x = y = z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-      
-      <sequence>
-        <!--
-        Here we define what differential equations need to be solved
-        and what algorithm we want to use.
-        -->
-        <integrate algorithm="ARK89" interval="20.0" tolerance="1e-7">
-          <samples>5000</samples>
-          <operators>
-            <integration_vectors>position</integration_vectors>
-            <![CDATA[
-            dx_dt = sigma*(y-x);
-            dy_dt = r*x - y - x*z;
-            dz_dt = x*y - b*z;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-      
-      <!-- This part defines what data will be saved in the output file -->
-      <output format="hdf5" filename="lorenz.xsil">
-        <sampling_group initial_sample="yes">
-          <moments>xR yR zR</moments>
-          <dependencies>position</dependencies>
-          <![CDATA[
-            xR = x;
-            yR = y;
-            zR = z;
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-You can compile and run this script with **XMDS2**. To compile the script, just pass the name of the script as an argument to **XMDS2**.
-
-    .. code-block:: none
-
-        $ xmds2 lorenz.xmds
-        xmds2 version 2.1 "Happy Mollusc" (r2680)
-        Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                            and the xmds team
-        Generating source code...
-        ... done
-        Compiling simulation...
-        ... done. Type './lorenz' to run.
-
-Now we can execute the generated program 'lorenz'.
-
-    .. code-block:: none
-
-        $ ./lorenz 
-        Sampled field (for moment group #1) at t = 0.000000e+00
-        Sampled field (for moment group #1) at t = 4.000000e-03
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 8.000000e-03
-        Current timestep: 4.000000e-03
-
-        ... many lines omitted ...
-
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 1.999600e+01
-        Current timestep: 4.000000e-03
-        Sampled field (for moment group #1) at t = 2.000000e+01
-        Current timestep: 4.000000e-03
-        Segment 1: minimum timestep: 9.997900e-06 maximum timestep: 4.000000e-03
-          Attempted 7386 steps, 0.00% steps failed.
-        Generating output for lorenz
-
-The program generated by **XMDS2** has now integrated your equations and produced two files.  The first is the XML file "lorenz.xsil", which contains the all the information used to generate the simulation (including the XMDS2 code) and the metadata description of the output.  The second file is named "lorenz.h5", which is a `HDF5 <http://www.hdfgroup.org/HDF5>`_ file containing all of the output data.   You can analysing these files yourself, or import them into your favourite visualisa [...]
-
-    .. code-block:: none
-
-        $ xsil2graphics2 -e lorenz.xsil 
-        xsil2graphics2 from xmds2 version 2.1 "Happy Mollusc" (r2680)
-        Generating output for Mathematica 6+.
-        Writing import script for 'lorenz.xsil' to 'lorenz.nb'.
-
-This has now generated the file 'lorenz.nb', which is a Mathematica notebook that loads the output data of the simulation.  Loading it into Mathematica allows us to plot the points {xR1, yR1, zR1}:
-
-    .. code-block:: none
-
-        ll = Transpose[{xR1, yR1, zR1}];
-        ListPointPlot3D[ll]
-
-.. image:: images/lorenz.*
-    :align: center
-
-...and we see the lobes of the strange attractor.  Now let us examine the code that produced this simulation.
-
-First, we have the top level description of the code.
-
-.. code-block:: xpdeint
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <simulation xmds-version="2">
-      <name>lorenz</name>
-      
-      <!-- While not strictly necessary, the following two tags are handy. -->
-      <author>Graham Dennis</author>
-      <description>
-        The Lorenz Attractor, an example of chaos.
-      </description>
-
-One of the advantages of an XML format is that these tags are almost entirely self-explanatory.  XMDS2 files follow full XML syntax, so elements can be commented out using the ``<!--`` and ``-->`` brackets, and we have an example of that here. 
-
-The first line, ``<?xml ...>``, just specifies the encoding and XML version. It is optional, but its presence helps some text editors perform the correct syntax highlighting.
-
-The ``<simulation>`` element is mandatory, and encloses the entire simulation script.
-
-The ``<name>`` element is optional, but recommended. It defines the name of the executable program that will be generated, as well as the default name of the output data files (although this can be over-ridden in the ``<output>`` element if desired). If ``<name>`` is not present, it will default to the filename of the script.
-
-The next element we have used can be skipped entirely if you wish to use the default set of features and you don't want to define any global constants for your simulation.  
-
-.. code-block:: xpdeint
-    
-      <features>
-        <globals>
-            <![CDATA[
-            real sigma = 10.0;
-            real b = 8.0/3.0;
-            real r = 28.0;
-            ]]>
-         </globals>
-       </features>
-
-The ``<features>`` element can be used to choose a large number of features that will be discussed later, but here we have only used it to define a ``<globals>`` element.  This element contains a block of text with ``<![CDATA[`` at the start and ``]]>`` at the end.  These 'CDATA' blocks  are used in several places in an XMDS script, and define a block of text that will be pasted directly into the generated C-code.  They must therefore be formatted in legal C-syntax, and any legal C-synta [...]
-
-The next element is the essential ``<geometry>`` element.
-
-.. code-block:: xpdeint
-    
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-
-This element is used to define all the dimensions in the problem.  We only require the time dimension, which we are labelling 't', so this is a trivial example.  We will discuss transverse dimensions in more detail in the next worked example (:ref:`NonLinearSchrodingerEquation`), where we deal with the integration of a partial differential equation rather than ordinary differential equations.
-
-Next, we have the ``<vector>`` element.
-
-.. code-block:: xpdeint
-    
-      <vector name="position" type="real">
-        <components>
-          x y z
-        </components>
-        <initialisation>
-          <![CDATA[
-          x = y = z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-We can define multiple vectors, but here we only need the variables that we wish to integrate.  We named this vector "position", as it defines the position in phase space.  These variables are real-valued (as opposed to, say, complex numbers), so we define ``type="real"``.  The ``<components>`` element defines the names of the elements of this vector, which we have called 'x', 'y' and 'z'.  Finally, we provide the initial values of the variables in a CDATA block within the ``<initialisat [...]
-
-Now we come to the heart of the simulation, where we define the evolution of our vector.  This evolution is held in the ``<sequence>`` element, which contains an ordered sequence of actions upon any defined vectors.  Vectors can be altered with a ``<filter>`` element, or integrated in the propagation dimension with an ``<integrate>`` element.
-
-.. code-block:: xpdeint
-    
-      <sequence>
-        <integrate algorithm="ARK89" interval="20.0" tolerance="1e-7">
-          <samples>5000</samples>
-          <operators>
-            <integration_vectors>position</integration_vectors>
-            <![CDATA[
-            dx_dt = sigma*(y-x);
-            dy_dt = r*x - y - x*z;
-            dz_dt = x*y - b*z;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-Here our sequence consists of a single ``<integrate>`` element.  It contains several important pieces of information.  At the heart, the ``<operators>`` element contains the equations of motion as described above, written in a very human-readable fashion.  It also contains an ``<integration_vectors>`` element, which defines which vectors are used in this integrate block.  We have only one vector defined in this simulation, so it is a trivial choice here.  
-
-All integrate blocks must define which algorithm is to be used - in this case the 8th (embedded 9th) order adaptive Runge-Kutta method, called "ARK89".  The details of different algorithms will be described later (FIXME: Link!), but for now all we need to know is that this algorithm requires a tolerance, and that smaller means more accurate, so we'll make it :math:`10^{-7}` by setting ``tolerance="1.0e-7"``.  Finally, any integration will proceed a certain length in the propagation dimen [...]
-
-The ``<samples>`` element says that the values of the output groups will be sampled 5000 times during this interval.  The nature of the output is defined in the last element in the simulation: the ``<output>`` element.
-
-.. code-block:: xpdeint
-    
-  <output format="hdf5" filename="lorenz.xsil">
-    <sampling_group initial_sample="yes">
-      <moments>xR yR zR</moments>
-      <dependencies>position</dependencies>
-      <![CDATA[
-        xR = x;
-        yR = y;
-        zR = z;
-      ]]>
-    </sampling_group>
-  </output>
-
-The two top-level arguments in the ``<output>`` element are "format" and "filename".  Here we define the output filename, although it would have defaulted to this value.  We also choose the format to be HDF5, which is why the simulation resulted in the binary file "lorenz.h5" as well as "lorenz.xsil".  If we had instead said ``format="ascii"``, then all of the output data would have been written in text form in "lorenz.xsil".
-
-The ``<output>`` element can contain any non-zero number of ``<sampling_group>`` elements, which specify the entire output of the program.  They allow for subsampling, integration of some or all of the transverse dimensions, and/or conversion of some dimensions into Fourier space, but these will be described in more detail in the following examples.  We have a ``<dependencies>`` element that specifies which vectors are needed for this output.  We specify the list of output variables with [...]
-
-And that's it.  This is quite a large framework to integrate three coupled ordinary differential equations, but the advantage of using XMDS2 is that vastly more complicated simulations can be performed without increasing the length or complexity of the XMDS2 script significantly.  The :ref:`WorkedExamples` section will provide more complicated examples with stochastic equations and partial differential equations.  If you are moved to solve your own problem using XMDS2, then perhaps the m [...]
diff --git a/documentation/_sources/upgrade.txt b/documentation/_sources/upgrade.txt
deleted file mode 100644
index 23af03c..0000000
--- a/documentation/_sources/upgrade.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-.. _UpgradeFromXMDS1:
-
-Upgrading From XMDS 1.X
-=======================
-
-While **XMDS2** is a complete rewrite of the **XMDS** project, much of the syntax has remained very similar.  That said, your code will have to be rewritten as an XMDS2 program.  We recommend that you work through the :ref:`QuickStartTutorial` and perhaps the :ref:`WorkedExamples` sections, and then you should be good to go.
-
-The main news when switching to XMDS2 is the long list of new things you can do.  If it's an initial value problem, XMDS2 has a good chance of being able to solve it.
-
-We have made the decision to call the executables "xmds2" and "xsil2graphics2" so that you can keep using your old installation in parallel with the new version.
\ No newline at end of file
diff --git a/documentation/_sources/worked_examples.txt b/documentation/_sources/worked_examples.txt
deleted file mode 100644
index 243e668..0000000
--- a/documentation/_sources/worked_examples.txt
+++ /dev/null
@@ -1,1359 +0,0 @@
-.. _WorkedExamples:
-
-Worked Examples
-===============
-
-One of the best ways to learn XMDS2 is to see several illustrative examples.  Here are a set of example scripts and explanations of the code, which will be a good way to get started.  As an instructional aid, they are meant to be read sequentially, but the adventurous could try starting with one that looked like a simulation they wanted to run, and adapt for their own purposes.
-
-   :ref:`NonLinearSchrodingerEquation` (partial differential equation)
-   
-   :ref:`Kubo` (stochastic differential equations)
-
-   :ref:`Fibre` (stochastic partial differential equation using parallel processing)
-
-   :ref:`IntegerDimensionExample` (integer dimensions)
-
-   :ref:`WignerArguments` (two dimensional PDE using parallel processing, passing arguments in at run time)
-
-   :ref:`GroundStateBEC` (PDE with continual renormalisation - computed vectors, filters, breakpoints)
-
-   :ref:`HermiteGaussGroundStateBEC` (Hermite-Gaussian basis)
-   
-   :ref:`2DMultistateSE` (combined integer and continuous dimensions with matrix multiplication, aliases)
-
-All of these scripts are available in the included "examples" folder, along with more examples that demonstrate other tricks.  Together, they provide starting points for a huge range of different simulations.
-
-.. _NonLinearSchrodingerEquation:
-
-The nonlinear Schrödinger equation
-----------------------------------
-
-This worked example will show a range of new features that can be used in an **XMDS2** script, and we will also examine our first partial differential equation.  We will take the one dimensional nonlinear Schrödinger equation, which is a common nonlinear wave equation.  The equation describing this problem is:
-
-.. math::
-    \frac{\partial \phi}{\partial \xi} = \frac{i}{2}\frac{\partial^2 \phi}{\partial \tau^2} - \Gamma(\tau)\phi+i|\phi|^2 \phi
-
-where :math:`\phi` is a complex-valued field, and :math:`\Gamma(\tau)` is a :math:`\tau`-dependent damping term.  Let us look at an XMDS2 script that integrates this equation, and then examine it in detail.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>nlse</name>
-
-      <author>Joe Hope</author>
-      <description>
-        The nonlinear Schrodinger equation in one dimension, 
-        which is a simple partial differential equation.  
-        We introduce several new features in this script.
-      </description>
-
-      <features>
-          <benchmark />
-          <bing />
-          <fftw plan="patient" />
-          <openmp />
-          <auto_vectorise />
-          <globals>
-              <![CDATA[
-              const double energy = 4;
-              const double vel = 0.3;
-              const double hwhm = 1.0;
-              ]]>
-           </globals>
-         </features>
-
-      <geometry>
-          <propagation_dimension> xi </propagation_dimension>
-          <transverse_dimensions>
-            <dimension name="tau" lattice="128"  domain="(-6, 6)" />
-          </transverse_dimensions>
-       </geometry>
-
-      <vector name="wavefunction" type="complex" dimensions="tau">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-          const double w0 = hwhm*sqrt(2/log(2));
-          const double amp = sqrt(energy/w0/sqrt(M_PI/2));
-          phi = amp*exp(-tau*tau/w0/w0)*exp(i*vel*tau);
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="dampingVector" type="real">
-        <components> Gamma </components>
-        <initialisation>
-          <![CDATA[
-          Gamma=1.0*(1-exp(-pow(tau*tau/4.0/4.0,10)));
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK45" interval="20.0" tolerance="1e-7">
-          <samples>10 100 10</samples>
-          <operators>
-            <integration_vectors>wavefunction</integration_vectors>
-            <operator kind="ex" constant="yes">
-              <operator_names>Ltt</operator_names>
-              <![CDATA[
-                Ltt = -i*ktau*ktau*0.5;
-              ]]>
-            </operator>
-            <![CDATA[
-            dphi_dxi = Ltt[phi] - phi*Gamma + i*mod2(phi)*phi;
-            ]]>
-            <dependencies>dampingVector</dependencies>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="tau" initial_sample="yes">
-          <moments>density</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            density = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group basis="tau(0)" initial_sample="yes">
-          <moments>normalisation</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            normalisation = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group basis="ktau(32)" initial_sample="yes">
-          <moments>densityK</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            densityK = mod2(phi);
-          ]]>
-        </sampling_group>
-
-      </output>
-    </simulation>
-
-Let us examine the new items in the ``<features>`` element that we have demonstrated here.  The existence of the ``<benchmark>`` element causes the simulation to be timed.  The ``<bing>`` element causes the computer to make a sound upon the conclusion of the simulation.  The ``<fftw>`` element is used to pass options to the `FFTW libraries for fast Fourier transforms <http://fftw.org>`_, which are needed to do spectral derivatives for the partial differential equation.  Here we used the  [...]
-
-Finally, we use two tags to make the simulation run faster.  The ``<auto_vectorise>`` element switches on several loop optimisations that exist in later versions of the GCC compiler.  The ``<openmp>`` element turns on threaded parallel processing using the OpenMP standard where possible.  These options are not activated by default as they only exist on certain compilers.  If your code compiles with them on, then they are recommended.
-
-Let us examine the ``<geometry>`` element.
-
-.. code-block:: xpdeint
-
-      <geometry>
-          <propagation_dimension> xi </propagation_dimension>
-          <transverse_dimensions>
-            <dimension name="tau" lattice="128"  domain="(-6, 6)" />
-          </transverse_dimensions>
-       </geometry>
-
-This is the first example that includes a transverse dimension.  We have only one dimension, and we have labelled it "tau".  It is a continuous dimension, but only defined on a grid containing 128 points (defined with the lattice variable), and on a domain from -6 to 6.  The default is that transforms in continuous dimensions are fast Fourier transforms, which means that this dimension is effectively defined on a loop, and the "tau=-6" and "tau=6" positions are in fact the same.  Other t [...]
-
-Two vector elements have been defined in this simulation.  One defines the complex-valued wavefunction "phi" that we wish to evolve.  We define the transverse dimensions over which this vector is defined by the ``dimensions`` tag in the description.  By default, it is defined over all of the transverse dimensions in the ``<geometry>`` element, so even though we have omitted this tag for the second vector, it also assumes that the vector is defined over all of tau.  
-
-The second vector element contains the component "Gamma" which is a function of the transverse variable tau, as specified in the equation of motion for the field.  This second vector could have been avoided in two ways.  First, the function could have been written explicitly in the integrate block where it is required, but calculating it once and then recalling it from memory is far more efficient.  Second, it could have been included in the "wavefunction" vector as another component, bu [...]
-
-The ``<integrate>`` element for a partial differential equation has some new features:
-
-.. code-block:: xpdeint
-
-        <integrate algorithm="ARK45" interval="20.0" tolerance="1e-7">
-          <samples>10 100 10</samples>
-          <operators>
-            <integration_vectors>wavefunction</integration_vectors>
-            <operator kind="ex" constant="yes">
-              <operator_names>Ltt</operator_names>
-              <![CDATA[
-                Ltt = -i*ktau*ktau*0.5;
-              ]]>
-            </operator>
-            <![CDATA[
-            dphi_dxi = Ltt[phi] - phi*Gamma + i*mod2(phi)*phi;
-            ]]>
-            <dependencies>dampingVector</dependencies>
-          </operators>
-        </integrate>
-
-There are some trivial changes from the tutorial script, such as the fact that we are using the ARK45 algorithm rather than ARK89.  Higher order algorithms are often better, but not always.  Also, since this script has multiple output groups, we have to specify how many times each of these output groups are sampled in the ``<samples>`` element, so there are three numbers there.  Besides the vectors that are to be integrated, we also specify that we want to use the vector "dampingVector"  [...]
-
-The equation of motion as written in the CDATA block looks almost identical to our desired equation of motion, except for the term based on the second derivative, which introduces an important new concept.  Inside the ``<operators>`` element, we can define any number of operators.  Operators are used to define functions in the transformed space of each dimension, which in this case is Fourier space.  The derivative of a function is equivalent to multiplying by :math:`i*k` in Fourier spac [...]
-
-Operators can be explicit (``kind="ex"``) or in the interaction picture (``kind="ip"``).  The interaction picture can be more efficient, but it restricts the possible syntax of the equation of motion.  Safe utilisation of interaction picture operators will be described later, but for now let us emphasise that **explicit operators should be used** unless the user is clear what they are doing.  That said, **XMDS2** will generate an error if the user tries to use interaction picture operato [...]
-
-The output of a partial differential equation offers more possibilities than an ordinary differential equation, and we examine some in this example.
-
-For vectors with transverse dimensions, we can sample functions of the vectors on the full lattice or a subset of the points.  In the ``<sampling_group>`` element, we must add a string called "basis" that determines the space in which each transverse dimension is to be sampled, optionally followed by the number of points to be sampled in parentheses.  If the number of points is not specified, it will default to a complete sampling of all points in that dimension.  If a non-zero number of [...]
-
-.. code-block:: xpdeint
-
-      <sampling_group basis="tau" initial_sample="yes">
-        <moments>density</moments>
-        <dependencies>wavefunction</dependencies>
-        <![CDATA[
-          density = mod2(phi);
-        ]]>
-      </sampling_group>
-
-The first output group samples the mod square of the vector "phi" over the full lattice of 128 points.
-
-If the lattice parameter is set to zero points, then the corresponding dimension is integrated.
-
-.. code-block:: xpdeint
-
-       <sampling_group basis="tau(0)" initial_sample="yes">
-         <moments>normalisation</moments>
-         <dependencies>wavefunction</dependencies>
-         <![CDATA[
-           normalisation = mod2(phi);
-         ]]>
-       </sampling_group>
-
-This second output group samples the normalisation of the wavefunction :math:`\int d\tau |\phi(\tau)|^2` over the domain of :math:`\tau`.  This output requires only a single real number per sample, so in the integrate element we have chosen to sample it many more times than the vectors themselves.
-
-Finally, functions of the vectors can be sampled with their dimensions in Fourier space.
-
-.. code-block:: xpdeint
-
-        <sampling_group basis="ktau(32)" initial_sample="yes">
-          <moments>densityK</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            densityK = mod2(phi);
-          ]]>
-        </sampling_group>
-
-The final output group above samples the mod square of the Fourier-space wavefunction phi on a sample of 32 points.
-
-
-.. _Kubo:
-
-Kubo Oscillator
----------------
-
-This example demonstrates the integration of a stochastic differential equation.  We examine the Kubo oscillator, which is a complex variable whose phase is evolving according to a Wiener noise.  In a suitable rotating frame, the equation of motion for the variable is
-
-.. math::
-    \frac{dz}{dt} = i z \;\eta
-
-where :math:`\eta(t)` is the Wiener differential, and we interpret this as a Stratonovich equation.  In other common notation, this is sometimes written:
-
-.. math::
-    dz = i z \;\circ dW
-
-Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich euqations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>kubo</name>
-      <author>Graham Dennis and Joe Hope</author>
-      <description>
-        Example Kubo oscillator simulation
-      </description>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-      </geometry>
-  
-      <driver name="multi-path" paths="10000" />
-  
-      <features>
-        <error_check />
-        <benchmark />
-      </features>
-
-      <noise_vector name="drivingNoise" dimensions="" kind="wiener" type="real" method="dsfmt" seed="314 159 276">
-        <components>eta</components>
-      </noise_vector>
-  
-      <vector name="main" type="complex">
-        <components> z </components>
-        <initialisation>
-          <![CDATA[
-            z = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <sequence>
-        <integrate algorithm="SI" interval="10" steps="1000">
-          <samples>100</samples>
-          <operators>
-            <integration_vectors>main</integration_vectors>
-            <dependencies>drivingNoise</dependencies>
-            <![CDATA[
-              dz_dt = i*z*eta;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group initial_sample="yes">
-          <moments>zR zI</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            zR = z.Re();
-            zI = z.Im();
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The first new item in this script is the ``<driver>`` element.  This element enables us to change top level management of the simulation.  Without this element, XMDS2 will integrate the stochastic equation as described.  With this element and the option ``name="multi-path"``, it will integrate it multiple times, using different random numbers each time.  The output will then contain the mean values and standard errors of your output variables.  The number of integrations included in the  [...]
-
-In the ``<features>`` element we have included the ``<error_check>`` element.  This performs the integration first with the specified number of steps (or with the specified tolerance), and then with twice the number of steps (or equivalently reduced tolerance).  The output then includes the difference between the output variables on the coarse and the fine grids as the 'error' in the output variables.  This error is particularly useful for stochastic integrations, where algorithms with a [...]
-
-We define the stochastic elements in a simulation with the ``<noise_vector>`` element.  
-
-.. code-block:: xpdeint
-
-    <noise_vector name="drivingNoise" dimensions="" kind="wiener" type="real" method="dsfmt" seed="314 159 276">
-     <components>eta</components>
-    </noise_vector>
-  
-This defines a vector that is used like any other, but it will be randomly generated with particular statistics and characteristics rather than initialised.  The name, dimensions and type tags are defined just as for normal vectors.  The names of the components are also defined in the same way.  The noise is defined as a Wiener noise here (``kind = "wiener"``), which is a zero-mean Gaussian random noise with an average variance equal to the discretisation volume (here it is just the step [...]
-
-We may also define a noise method to choose a non-default pseudo random number generator, and a seed for the random number generator.  Using a seed can be very useful when debugging the behaviour of a simulation, and many compilers have pseudo-random number generators that are superior to the default option (posix).
-
-The integrate block is using the semi-implicit algorithm (``algorithm="SI"``), which is a good default choice for stochastic problems, even though it is only second order convergent for deterministic equations.  More will be said about algorithm choice later, but for now we should note that adaptive algorithms based on Runge-Kutta methods are not guaranteed to converge safely for stochastic equations.  This can be particularly deceptive as they often succeed, particularly for almost any  [...]
-
-We include elements from the noise vector in the equation of motion just as we do for any other vector.  The default SI and Runge-Kutta algorithms converge to the *Stratonovich* integral.  Ito stochastic equations can be converted to Stratonovich form and vice versa.
-
-Executing the generated program 'kubo' gives slightly different output due to the "multi-path" driver.
-
-.. code-block:: none
-
-            $ ./kubo
-            Beginning full step integration ...
-            Starting path 1
-            Starting path 2
-
-            ... many lines omitted ...
-
-            Starting path 9999
-            Starting path 10000
-            Beginning half step integration ...
-            Starting path 1
-            Starting path 2
-
-            ... many lines omitted ...
-
-            Starting path 9999
-            Starting path 10000
-            Generating output for kubo
-            Maximum step error in moment group 1 was 4.942549e-04
-            Time elapsed for simulation is: 2.71 seconds
-
-The maximum step error in each moment group is given in absolute terms.  This is the largest difference between the full step integration and the half step integration.  While a single path might be very stochastic:
-
-.. figure:: images/kuboSingle.*
-    :align: center
-    
-    The mean value of the real and imaginary components of the z variable for a single path of the simulation.
-    
-The average over multiple paths can be increasingly smooth.  
-
-.. figure:: images/kubo10000.*
-    :align: center
-
-    The mean and standard error of the z variable averaged over 10000 paths, as given by this simulation.  It agrees within the standard error with the expected result of :math:`\exp(-t/2)`.
-
-
-.. _Fibre:
-
-Fibre Noise
------------
-
-This simulation is a stochastic partial differential equation, in which a one-dimensional damped field is subject to a complex noise. This script can be found in ``examples/fibre.xmds``.
-
-.. math::
-    \frac{\partial \psi}{\partial t} = -i \frac{\partial^2 \psi}{\partial x^2} -\gamma \psi+\beta \frac{1}{\sqrt{2}}\left(\eta_1(x)+i\eta_2(x)\right)
-    
-where the noise terms :math:`\eta_j(x,t)` are Wiener differentials and the equation is interpreted as a Stratonovich differential equation.  On a finite grid, these increments have variance :math:`\frac{1}{\Delta x \Delta t}`.
-
-.. code-block:: xpdeint
-    
-    <simulation xmds-version="2">
-      <name>fibre</name>
-      <author>Joe Hope and Graham Dennis</author>
-      <description>
-        Example fibre noise simulation
-      </description>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="64"  domain="(-5, 5)" />
-        </transverse_dimensions>
-      </geometry>
-  
-      <driver name="mpi-multi-path" paths="8" />
-  
-      <features>
-        <auto_vectorise />
-        <benchmark />
-        <error_check />
-        <globals>
-          <![CDATA[
-          const real ggamma = 1.0;
-          const real beta = sqrt(M_PI*ggamma/10.0);
-          ]]>
-        </globals>
-      </features>
-  
-      <noise_vector name="drivingNoise" dimensions="x" kind="wiener" type="complex" method="dsfmt" seed="314 159 276">
-        <components>Eta</components>
-      </noise_vector>
-  
-      <vector name="main" initial_basis="x" type="complex">
-        <components>phi</components>
-        <initialisation>
-          <![CDATA[
-            phi = 0.0;
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <sequence>
-        <integrate algorithm="SI" iterations="3" interval="2.5" steps="200000">
-          <samples>50</samples>
-          <operators>
-            <operator kind="ex" constant="yes">
-              <operator_names>L</operator_names>
-              <![CDATA[
-                L = -i*kx*kx;
-              ]]>
-            </operator>
-            <dependencies>drivingNoise</dependencies>
-            <integration_vectors>main</integration_vectors>
-            <![CDATA[
-              dphi_dt = L[phi] - ggamma*phi + beta*Eta;
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-  
-      <output>
-        <sampling_group basis="kx" initial_sample="yes">
-          <moments>pow_dens</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            pow_dens = mod2(phi);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-Note that the noise vector used in this example is complex-valued, and has the argument ``dimensions="x"`` to define it as a field of delta-correlated noises along the x-dimension.
-
-This simulation demonstrates the ease with which XMDS2 can be used in a parallel processing environment.  Instead of using the stochastic driver "multi-path", we simply replace it with "mpi-multi-path".  This instructs XMDS2 to write a parallel version of the program based on the widespread `MPI standard <http://www.open-mpi.org/>`_.  This protocol allows multiple processors or clusters of computers to work simultaneously on the same problem.  Free open source libraries implementing this [...]
-
-Executing this program is slightly different with the MPI option.  The details can change between MPI implementations, but as an example:
-
-.. code-block:: none
-
-        $xmds2 fibre.xmds
-        xmds2 version 2.1 "Happy Mollusc" (r2543)
-        Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                            and the xmds team
-        Generating source code...
-        ... done
-        Compiling simulation...
-        ... done. Type './fibre' to run.
-
-Note that different compile options (and potentially a different compiler) are used by XMDS2, but this is transparent to the user.  MPI simulations will have to be run using syntax that will depend on the MPI implementation.  Here we show the version based on the popular open source `Open-MPI <http://www.open-mpi.org/>`_ implementation.
-
-.. code-block:: none
-
-    $ mpirun -np 4 ./fibre
-    Found enlightenment... (Importing wisdom)
-    Planning for x <---> kx transform... done.
-    Beginning full step integration ...
-    Rank[0]: Starting path 1
-    Rank[1]: Starting path 2
-    Rank[2]: Starting path 3
-    Rank[3]: Starting path 4
-    Rank[3]: Starting path 8
-    Rank[0]: Starting path 5
-    Rank[1]: Starting path 6
-    Rank[2]: Starting path 7
-    Rank[3]: Starting path 4
-    Beginning half step integration ...
-    Rank[0]: Starting path 1
-    Rank[2]: Starting path 3
-    Rank[1]: Starting path 2
-    Rank[3]: Starting path 8
-    Rank[0]: Starting path 5
-    Rank[2]: Starting path 7
-    Rank[1]: Starting path 6
-    Generating output for fibre
-    Maximum step error in moment group 1 was 4.893437e-04
-    Time elapsed for simulation is: 20.99 seconds
-    
-In this example we used four processors.  The different processors are labelled by their "Rank", starting at zero.  Because the processors are working independently, the output from the different processors can come in a randomised order.  In the end, however, the .xsil and data files are constructed identically to the single processor outputs.
-
-The analytic solution to the stochastic averages of this equation is given by
-
-.. math::
-    \langle |\psi(k,t)|^2 \rangle = \exp(-2\gamma t)|\psi(k,0)|^2 +\frac{\beta^2 L_x}{4\pi \gamma} \left(1-\exp(-2\gamma t)\right)
-    
-where :math:`L_x` is the length of the x domain.  We see that a single integration of these equations is quite chaotic:
-
-.. figure:: images/fibreSingle.*
-    :align: center
-    
-    The momentum space density of the field as a function of time for a single path realisation.
-
-while an average of 1024 paths (change ``paths="8"`` to ``paths="1024"`` in the ``<driver>`` element) converges nicely to the analytic solution:
-
-.. figure:: images/fibre1024.*
-    :align: center
-    
-    The momentum space density of the field as a function of time for an average of 1024 paths.
-
-
-
-.. _IntegerDimensionExample:
-
-Integer Dimensions
-------------------
-
-This example shows how to handle systems with integer-valued transverse dimensions.  We will integrate the following set of equations
-
-.. math::
-    \frac{dx_j}{dt} = x_j \left(x_{j-1}-x_{j+1}\right)
-
-where :math:`x_j` are complex-valued variables defined on a ring, such that :math:`j\in \{0,j_{max}\}` and the :math:`x_{j_{max}+1}` variable is identified with the variable :math:`x_{0}`, and the variable :math:`x_{-1}` is identified with the variable :math:`x_{j_{max}}`.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>integer_dimensions</name>
-      <author>Graham Dennis</author>
-      <description>
-        XMDS2 script to test integer dimensions.
-      </description>
-
-      <features>
-        <benchmark />
-        <error_check />
-        <bing />
-        <diagnostics /> <!-- This will make sure that all nonlocal accesses of dimensions are safe -->
-      </features>
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="j" type="integer" lattice="5" domain="(0,4)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="main" type="complex">
-        <components> x </components>
-        <initialisation>
-          <![CDATA[
-          x = 1.0e-3;
-          x(j => 0) = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK45" interval="60" steps="25000" tolerance="1.0e-9">
-          <samples>1000</samples>
-          <operators>
-            <integration_vectors>main</integration_vectors>
-            <![CDATA[
-            long j_minus_one = (j-1) % _lattice_j;
-            if (j_minus_one < 0)
-              j_minus_one += _lattice_j;
-            long j_plus_one  = (j+1) % _lattice_j;
-            dx_dt(j => j) = x(j => j)*(x(j => j_minus_one) - x(j => j_plus_one));
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="j" initial_sample="yes">
-          <moments>xR</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            xR = x.Re();
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The first extra feature we have used in this script is the ``<diagnostics>`` element.  It performs run-time checking that our generated code does not accidentally attempt to access a part of our vector that does not exist.  Removing this tag will increase the speed of the simulation, but its presence helps catch coding errors.  
-
-The simulation defines a vector with a single transverse dimension labelled "j", of type "integer" ("int" and "long" can also be used as synonyms for "integer").  In the absence of an explicit type, the dimension is assumed to be real-valued.  The dimension has a "domain" argument as normal, defining the minimum and maximum values of the dimension's range.  The lattice element, if specified, is used as a check on the size of the domain, and will create an error if the two do not match.
-
-Integer-valued dimensions can be called non-locally.  Real-valued dimensions are typically coupled non-locally only through local operations in the transformed space of the dimension, but can be called non-locally in certain other situations as described in :ref:`the reference<ReferencingNonlocal>`.  The syntax for calling integer dimensions non-locally can be seen in the initialisation CDATA block:
-
-.. code-block:: xpdeint
-
-          x = 1.0e-3;
-          x(j => 0) = 1.0;
-
-where the syntax ``x(j => 0)`` is used to reference the variable :math:`x_0` directly.  We see a more elaborate example in the integrate CDATA block:
-
-.. code-block:: xpdeint
-
-            dx_dt(j => j) = x(j => j)*(x(j => j_minus_one) - x(j => j_plus_one));
-
-where the vector "x" is called using locally defined variables.  This syntax is chosen so that multiple dimensions can be addressed non-locally with minimal possibility for confusion.
-
-
-
-
-.. _WignerArguments:
-
-Wigner Function
----------------
-
-This example integrates the two-dimensional partial differential equation
-
-.. math::
-    \begin{split}
-    \frac{\partial W}{\partial t} &= \Bigg[ \left(\omega + \frac{U_{int}}{\hbar}\left(x^2+y^2-1\right)\right) \left(x \frac{\partial}{\partial y} 
-    - y \frac{\partial}{\partial x}\right)\\
-    &\phantom{=\Bigg[} - \frac{U_{int}}{16 \hbar}\left(x\left(\frac{\partial^3}{\partial x^2 \partial y}
-    +\frac{\partial^3}{\partial y^3}\right)-y\left(\frac{\partial^3}{\partial y^2 \partial x}+\frac{\partial^3}{\partial x^3}\right)\right)\Bigg]W(x,y,t)
-    \end{split}
-
-with the added restriction that the derivative is forced to zero outside a certain radius.  This extra condition helps maintain the long-term stability of the integration. The script can be found in ``examples/wigner_arguments_mpi.xmds`` under your XMDS2 installation directory.
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>wigner</name>
-      <author>Graham Dennis and Joe Hope</author>
-      <description>
-        Simulation of the Wigner function for an anharmonic oscillator with the initial state
-        being a coherent state.
-      </description>
-      <features>
-        <benchmark />
-        <globals>
-          <![CDATA[
-            real Uint_hbar_on16;
-          ]]>
-        </globals>
-        <arguments>
-          <argument name="omega" type="real" default_value="0.0" />
-          <argument name="alpha_0"     type="real" default_value="3.0" />
-          <argument name="absorb"     type="real" default_value="8.0" />
-          <argument name="width" type="real" default_value="0.3" />
-          <argument name="Uint_hbar" type="real" default_value="1.0" />
-          <![CDATA[
-            /* derived constants */
-            Uint_hbar_on16 = Uint_hbar/16.0;
-          ]]>
-        </arguments>
-        <bing />
-        <fftw plan="patient" />
-        <openmp />
-      </features>
-
-      <driver name="distributed-mpi" />
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="128"  domain="(-6, 6)" />
-          <dimension name="y" lattice="128"  domain="(-6, 6)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="main" initial_basis="x y" type="complex">
-        <components> W </components>
-        <initialisation>
-          <![CDATA[
-            W = 2.0/M_PI * exp(-2.0*(y*y + (x-alpha_0)*(x-alpha_0)));
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="dampConstants" initial_basis="x y" type="real">
-        <components>damping</components>
-        <initialisation>
-          <![CDATA[
-          if (sqrt(x*x + y*y) > _max_x-width)
-            damping = 0.0;
-          else
-            damping = 1.0;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <sequence>
-        <integrate algorithm="ARK89" tolerance="1e-7" interval="7.0e-4" steps="100000">
-          <samples>50</samples>
-          <operators>
-            <operator kind="ex" constant="yes">
-              <operator_names>Lx Ly Lxxx Lxxy Lxyy Lyyy</operator_names>
-              <![CDATA[
-                Lx = i*kx;
-                Ly = i*ky;
-                Lxxx = -i*kx*kx*kx;
-                Lxxy = -i*kx*kx*ky;
-                Lxyy = -i*kx*ky*ky;
-                Lyyy = -i*ky*ky*ky;
-              ]]>
-            </operator>
-            <integration_vectors>main</integration_vectors>
-            <dependencies>dampConstants</dependencies>
-            <![CDATA[
-            real rotation = omega + Uint_hbar*(-1.0 + x*x + y*y);
-
-            dW_dt = damping * ( rotation * (x*Ly[W] - y*Lx[W]) 
-                        - Uint_hbar_on16*( x*(Lxxy[W] + Lyyy[W]) - y*(Lxyy[W] + Lxxx[W]) )
-                    );
-            ]]>
-          </operators>
-        </integrate>
-      </sequence>
-
-      <output>
-        <sampling_group basis="x y" initial_sample="yes">
-          <moments>WR WI</moments>
-          <dependencies>main</dependencies>
-          <![CDATA[
-            _SAMPLE_COMPLEX(W);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-This example demonstrates two new features of XMDS2.  The first is the use of parallel processing for a deterministic problem.  The FFTW library only allows MPI processing of multidimensional vectors.  For multidimensional simulations, the generated program can be parallelised simply by adding the ``name="distributed-mpi"`` argument to the ``<driver>`` element.  
-
-.. code-block:: xpdeint
-
-    $ xmds2 wigner_argument_mpi.xmds 
-    xmds2 version 2.1 "Happy Mollusc" (r2680)
-    Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
-                        and the xmds team
-    Generating source code...
-    ... done
-    Compiling simulation...
-    ... done. Type './wigner' to run.
-        
-To use multiple processors, the final program is then called using the (implementation specific) MPI wrapper:
-
-.. code-block:: xpdeint
-
-    $ mpirun -np 2 ./wigner
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Sampled field (for moment group #1) at t = 0.000000e+00
-    Current timestep: 5.908361e-06
-    Sampled field (for moment group #1) at t = 1.400000e-05
-    Current timestep: 4.543131e-06
-    
-    ...
-
-The possible acceleration achievable when parallelising a given simulation depends on a great many things including available memory and cache.  As a general rule, it will improve as the simulation size gets larger, but the easiest way to find out is to test.  The optimum speed up is obviously proportional to the number of available processing cores.
-
-The second new feature in this simulation is the ``<arguments>`` element in the ``<features>`` block.  This is a way of specifying global variables with a given type that can then be input at run time.  The variables are specified in a self explanatory way
-
-.. code-block:: xpdeint
-
-        <arguments>
-          <argument name="omega" type="real" default_value="0.0" />
-            ...
-          <argument name="Uint_hbar" type="real" default_value="1.0" />
-        </arguments>
-        
-where the "default_value" is used as the valuable of the variable if no arguments are given.  In the absence of the generating script, the program can document its options with the ``--help`` argument:
-
-.. code-block:: none
-
-    $ ./wigner --help
-    Usage: wigner --omega <real> --alpha_0 <real> --absorb <real> --width <real> --Uint_hbar <real>
-
-    Details:
-    Option		Type		Default value
-    -o,  --omega	real 		0.0
-    -a,  --alpha_0	real 		3.0
-    -b,  --absorb	real 		8.0
-    -w,  --width	real 		0.3
-    -U,  --Uint_hbar	real 		1.0
-
-We can change one or more of these variables' values in the simulation by passing it at run time.
-
-.. code-block:: none
-
-    $ mpirun -np 2 ./wigner --omega 0.1 --alpha_0 2.5 --Uint_hbar 0
-    Found enlightenment... (Importing wisdom)
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Planning for (distributed x, y) <---> (distributed ky, kx) transform... done.
-    Sampled field (for moment group #1) at t = 0.000000e+00
-    Current timestep: 1.916945e-04
-    
-    ...
-    
-The values that were used for the variables, whether default or passed in, are stored in the output file (wigner.xsil).
-
-.. code-block:: xpdeint
-
-    <info>
-    Script compiled with XMDS2 version 2.1 "Happy Mollusc" (r2680)
-    See http://www.xmds.org for more information.
-
-    Variables that can be specified on the command line:
-      Command line argument omega = 1.000000e-01
-      Command line argument alpha_0 = 2.500000e+00
-      Command line argument absorb = 8.000000e+00
-      Command line argument width = 3.000000e-01
-      Command line argument Uint_hbar = 0.000000e+00
-    </info>
-    
-Finally, note the shorthand used in the output group
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        _SAMPLE_COMPLEX(W);
-      ]]>
-
-which is short for
-
-.. code-block:: xpdeint
-
-      <![CDATA[
-        WR = W.Re();
-        WI = W.Im();
-      ]]>
- 
-
-.. _GroundStateBEC:
-
-Finding the Ground State of a BEC (continuous renormalisation)
---------------------------------------------------------------
-
-This simulation solves another partial differential equation, but introduces several powerful new features in XMDS2.  The nominal problem is the calculation of the lowest energy eigenstate of a non-linear Schrödinger equation:
-
-.. math::
-    \frac{\partial \phi}{\partial t} = i \left[\frac{1}{2}\frac{\partial^2}{\partial y^2} - V(y) - U_{int}|\phi|^2\right]\phi
-
-which can be found by evolving the above equation in imaginary time while keeping the normalisation constant.  This causes eigenstates to exponentially decay at the rate of their eigenvalue, so after a short time only the state with the lowest eigenvalue remains.  The evolution equation is straightforward:
-
-.. math::
-    \frac{\partial \phi}{\partial t} = \left[\frac{1}{2}\frac{\partial^2}{\partial y^2} - V(y) - U_{int}|\phi|^2\right]\phi
-
-but we will need to use new XMDS2 features to manage the normalisation of the function :math:`\phi(y,t)`.  The normalisation for a non-linear Schrödinger equation is given by :math:`\int dy |\phi(y,t)|^2 = N_{particles}`, where :math:`N_{particles}` is the number of particles described by the wavefunction.  
-
-The code for this simulation can be found in ``examples/groundstate_workedexamples.xmds``:
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>groundstate</name>
-      <author>Joe Hope</author>
-      <description>
-        Calculate the ground state of the non-linear Schrodinger equation in a harmonic magnetic trap.
-        This is done by evolving it in imaginary time while re-normalising each timestep.
-      </description>
-
-      <features>
-        <auto_vectorise />
-        <benchmark />
-        <bing />
-        <fftw plan="exhaustive" />
-        <globals>
-          <![CDATA[
-            const real Uint = 2.0;
-            const real Nparticles = 5.0;
-          ]]>
-        </globals>
-      </features>
-
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="y" lattice="256"  domain="(-15.0, 15.0)" />
-        </transverse_dimensions>
-      </geometry>
-
-      <vector name="potential" initial_basis="y" type="real">
-        <components> V1 </components>
-        <initialisation>
-          <![CDATA[
-            V1  = 0.5*y*y;
-          ]]>
-        </initialisation>
-      </vector>
-
-      <vector name="wavefunction" initial_basis="y" type="complex">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-            if (fabs(y) < 3.0) {
-              phi = 1.0;
-              // This will be automatically normalised later
-            } else {
-              phi = 0.0;
-            }
-                ]]>
-        </initialisation>
-      </vector>
-
-      <computed_vector name="normalisation" dimensions="" type="real">
-        <components> Ncalc </components>
-        <evaluation>
-          <dependencies basis="y">wavefunction</dependencies>
-          <![CDATA[
-            // Calculate the current normalisation of the wave function.
-            Ncalc = mod2(phi);
-          ]]>
-        </evaluation>
-      </computed_vector>
-
-      <sequence>
-          <filter>
-            <![CDATA[
-              printf("Hello world from a filter segment!\n");
-            ]]>
-          </filter>
-
-        <filter>
-            <dependencies>normalisation wavefunction</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);
-          ]]>
-        </filter>
-
-        <integrate algorithm="ARK45" interval="1.0" steps="4000" tolerance="1e-10">
-          <samples>25 4000</samples>
-          <filters where="step end">
-            <filter>
-              <dependencies>wavefunction normalisation</dependencies>
-              <![CDATA[
-                // Correct normalisation of the wavefunction
-                phi *= sqrt(Nparticles/Ncalc);
-              ]]>
-            </filter>
-          </filters>
-          <operators>
-            <operator kind="ip" constant="yes">
-              <operator_names>T</operator_names>
-              <![CDATA[
-                T = -0.5*ky*ky;
-              ]]>
-            </operator>
-            <integration_vectors>wavefunction</integration_vectors>
-            <dependencies>potential</dependencies>
-            <![CDATA[
-              dphi_dt = T[phi] - (V1 + Uint*mod2(phi))*phi;
-            ]]>
-          </operators>
-        </integrate>
-
-        <breakpoint filename="groundstate_break.xsil">
-          <dependencies basis="ky">wavefunction </dependencies>
-        </breakpoint>
-
-      </sequence>
-
-      <output>
-        <sampling_group basis="y" initial_sample="yes">
-          <moments>norm_dens</moments>
-          <dependencies>wavefunction normalisation</dependencies>
-          <![CDATA[
-            norm_dens = mod2(phi);
-          ]]>
-        </sampling_group>
-        
-        <sampling_group initial_sample="yes">
-          <moments>norm</moments>
-          <dependencies>normalisation</dependencies>
-          <![CDATA[
-            norm = Ncalc;
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-We have used the ``plan="exhasutive"`` option in the ``<fftw>`` element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the ~/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.
-
-This simulation introduces the first example of a very powerful feature in XMDS2: the ``<computed_vector>`` element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vector can never be used as an integration vector, as its values are not stored.  [...]
-
-The difference between a computed vector and a stored vector is emphasised by the replacement of the ``<initialisation>`` element with an ``<evaluation>`` element.  Apart from the name, they have virtually identical purpose and syntax.  
-
-.. code-block:: xpdeint
-
-  <computed_vector name="normalisation" dimensions="" type="real">
-    <components> Ncalc </components>
-    <evaluation>
-      <dependencies basis="y">wavefunction</dependencies>
-      <![CDATA[
-        // Calculate the current normalisation of the wave function.
-        Ncalc = mod2(phi);
-      ]]>
-    </evaluation>
-  </computed_vector>
-
-Here, our computed vector has no transverse dimensions and depends on the components of "wavefunction", so the extra transverse dimensions are integrated out.  This code therefore integrates the square modulus of the field, and returns it in the variable "Ncalc".  This will be used below to renormalise the "phi" field.  Before we examine that process, we have to introduce the ``<filter>`` element.
-
-The ``<filter>`` element can be placed in the ``<sequence>`` element, or inside ``<integrate>`` elements as we will see next.  Elements placed in the ``<sequence>`` element are executed in the order they are found in the .xmds file.  Filter elements place the included CDATA block directly into the generated program at the designated position.  If the element does not contain any dependencies, like in our first example, then the code is placed alone:
-
-.. code-block:: xpdeint
-
-    <filter>
-      <![CDATA[
-        printf("Hello world from a filter segment!\n");
-      ]]>
-    </filter>
-
-This filter block merely prints a string into the output when the generated program is run.  If the ``<filter>`` element contains dependencies, then the variables defined in those vectors (or computed vectors, or noise vectors) will be available, and the CDATA block will be placed inside loops that run over all the transverse dimensions used by the included vectors.  The second filter block in this example depends on both the "wavefunction" and "normalisation" vectors:
-
-.. code-block:: xpdeint
-
-    <filter>
-        <dependencies>normalisation wavefunction</dependencies>
-      <![CDATA[
-        phi *= sqrt(Nparticles/Ncalc);
-      ]]>
-    </filter>
-
-Since this filter depends on a vector with the transverse dimension "y", this filter will execute for each point in "y".  This code multiplies the value of the field "phi" by the factor required to produce a normalised function in the sense that  :math:`\int dy |\phi(y,t)|^2 = N_{particles}`.
-
-The next usage of a ``<filter>`` element in this program is inside the ``<integrate>`` element, where all filters are placed inside a ``<filters>`` element.
-
-.. code-block:: xpdeint
-
-    <filters where="step end">
-      <filter>
-        <dependencies>wavefunction normalisation</dependencies>
-        <![CDATA[
-          // Correct normalisation of the wavefunction
-          phi *= sqrt(Nparticles/Ncalc);
-        ]]>
-      </filter>
-    </filters>
-
-Filters placed in an integration block are applied each integration step.  The "where" flag is used to determine whether the filter should be applied directly before or directly after each integration step.  The default value for the where flag is ``where="step start"``, but in this case we chose "step end" to make sure that the final output was normalised after the last integration step.
-
-At the end of the sequence element we introduce the ``<breakpoint>`` element.  This serves two purposes.  The first is a simple matter of convenience.  Often when we manage our input and output from a simulation, we are interested solely in storing the exact state of our integration vectors.  A breakpoint element does exactly that, storing the components of any vectors contained within, taking all the normal options of the ``<output>`` element but not requiring any ``<sampling_group>`` e [...]
-
-.. code-block:: xpdeint
-
-    <breakpoint filename="groundstate_break.xsil">
-      <dependencies basis="ky">wavefunction</dependencies>
-    </breakpoint>
-
-If the filename argument is omitted, the output filenames are numbered sequentially.  Any given ``<breakpoint>`` element must only depend on vectors with identical dimensions.
-
-This program begins with a very crude guess to the ground state, but it rapidly converges to the lowest eigenstate.
-
-.. figure:: images/groundstateU2.*
-    :align: center
-    
-    The shape of the ground state rapidly approaches the lowest eigenstate.  For weak nonlinearities, it is nearly Gaussian.
-    
-.. figure:: images/groundstateU20.*
-    :align: center
-
-    When the nonlinear term is larger (:math:`U=20`), the ground state is wider and more parabolic.
-
-
-
-
-.. _HermiteGaussGroundStateBEC:
-
-Finding the Ground State of a BEC again
----------------------------------------
-
-Here we repeat the same simulation as in the :ref:`GroundStateBEC` example, using a different transform basis.  While spectral methods are very effective, and Fourier transforms are typically very efficient due to the Fast Fourier transform algorithm, it is often desirable to describe nonlocal evolution in bases other than the Fourier basis.  The previous calculation was the Schrödinger equation with a harmonic potential and a nonlinear term.  The eigenstates of such a system are known a [...]
-
-.. math::
-    \left[-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2\right]\phi_n(x) = E_n \phi_n(x)
-
-where
-
-.. math::
-    \phi_n(x,t) = \sqrt{\frac{1}{2^n n!}} \left(\frac{m \omega}{\hbar \pi}\right)^\frac{1}{4} e^{-\frac{m \omega x^2}{2\hbar}} H_n\left(\sqrt{\frac{m \omega}{\hbar}x}\right),\;\;\;\;\;\;E_n = \left(n+\frac{1}{2}\right) \omega
-
-where :math:`H_n(u)` are the physicist's version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire :math:`-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2` term as a diagonal term in the hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a simplified version of the ``examples/hermitegauss_gro [...]
-
-.. code-block:: xpdeint
-
-    <simulation xmds-version="2">
-      <name>hermitegauss_groundstate</name>
-      <author>Graham Dennis</author>
-      <description>
-        Solve for the groundstate of the Gross-Pitaevskii equation using the hermite-Gauss basis.
-      </description>
-  
-      <features>
-        <benchmark />
-        <bing />
-        <validation kind="run-time" />
-        <globals>
-          <![CDATA[
-            const real omegaz = 2*M_PI*20;
-            const real omegarho = 2*M_PI*200;
-            const real hbar = 1.05457148e-34;
-            const real M = 1.409539200000000e-25;
-            const real g = 9.8;
-            const real scatteringLength = 5.57e-9;
-            const real transverseLength = 1e-5;
-            const real Uint = 4.0*M_PI*hbar*hbar*scatteringLength/M/transverseLength/transverseLength;
-            const real Nparticles = 5.0e5;
-        
-            /* offset constants */
-            const real EnergyOffset = 0.3*pow(pow(3.0*Nparticles/4*omegarho*Uint,2.0)*M/2.0,1/3.0); // 1D   
-          ]]>
-        </globals>
-      </features>
-  
-      <geometry>
-        <propagation_dimension> t </propagation_dimension>
-        <transverse_dimensions>
-          <dimension name="x" lattice="100" length_scale="sqrt(hbar/(M*omegarho))" transform="hermite-gauss" />
-        </transverse_dimensions>
-      </geometry>
-  
-      <vector name="wavefunction" initial_basis="x" type="complex">
-        <components> phi </components>
-        <initialisation>
-          <![CDATA[
-          phi = sqrt(Nparticles) * pow(M*omegarho/(hbar*M_PI), 0.25) * exp(-0.5*(M*omegarho/hbar)*x*x);
-          ]]>
-        </initialisation>
-      </vector>
-  
-      <computed_vector name="normalisation" dimensions="" type="real">
-        <components> Ncalc </components>
-        <evaluation>
-          <dependencies basis="x">wavefunction</dependencies>
-          <![CDATA[
-            // Calculate the current normalisation of the wave function.
-            Ncalc = mod2(phi);
-          ]]>
-        </evaluation>
-      </computed_vector>
-  
-      <sequence>
-        <integrate algorithm="ARK45" interval="1.0e-2" steps="4000"  tolerance="1e-10">
-          <samples>100 100</samples>
-          <filters>
-            <filter>
-              <dependencies>wavefunction normalisation</dependencies>
-              <![CDATA[
-                // Correct normalisation of the wavefunction
-                phi *= sqrt(Nparticles/Ncalc);
-              ]]>
-            </filter>
-          </filters>
-          <operators>
-            <operator kind="ip" constant="yes" type="real">
-              <operator_names>L</operator_names>
-              <![CDATA[
-                L = EnergyOffset/hbar - (nx + 0.5)*omegarho;
-              ]]>
-            </operator>
-            <integration_vectors>wavefunction</integration_vectors>
-            <![CDATA[
-              dphi_dt = L[phi] - Uint/hbar*mod2(phi)*phi;
-            ]]>
-          </operators>
-        </integrate>
-
-        <filter>
-            <dependencies>normalisation wavefunction</dependencies>
-          <![CDATA[
-            phi *= sqrt(Nparticles/Ncalc);
-          ]]>
-        </filter>
-    
-        <breakpoint filename="hermitegauss_groundstate_break.xsil" format="ascii">
-          <dependencies basis="nx">wavefunction</dependencies>
-        </breakpoint>
-      </sequence>
-  
-      <output>
-        <sampling_group basis="x" initial_sample="yes">
-          <moments>dens</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            dens = mod2(phi);
-          ]]>
-        </sampling_group>
-        <sampling_group basis="kx" initial_sample="yes">
-          <moments>dens</moments>
-          <dependencies>wavefunction</dependencies>
-          <![CDATA[
-            dens = mod2(phi);
-          ]]>
-        </sampling_group>
-      </output>
-    </simulation>
-
-The major difference in this simulation code, aside from the switch back from dimensionless units, is the new transverse dimension type in the ``<geometry>`` element.
-
-.. code-block:: xpdeint
- 
-          <dimension name="x" lattice="100" length_scale="sqrt(hbar/(M*omegarho))" transform="hermite-gauss" />
-
-We have explicitly defined the "transform" option, which by defaults expects the Fourier transform.  The ``transform="hermite-gauss"`` option requires the 'mpmath' package installed, just as Fourier transforms require the FFTW package to be installed.  The "lattice" option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polynomial and increases.  The number of hermite-Gaussian modes fully determines the irregular spatial grid  [...]
-
-The ``length_scale="sqrt(hbar/(M*omegarho))"`` option requires a real number, but since this script defines it in terms of variables, XMDS2 is unable to verify that the resulting function is real-valued at the time of generating the code.  XMDS2 will therefore fail to compile this program without the feature:
-
-.. code-block:: xpdeint
-
-        <validation kind="run-time" />
-
-which disables many of these checks at the time of writing the C-code.
-
-.. _2DMultistateSE:
-
-Multi-component Schrödinger equation
-------------------------------------
-
-This example demonstrates a simple method for doing matrix calculations in XMDS2.  We are solving the multi-component PDE
-
-.. math::
-    \frac{\partial \phi_j(x,y)}{\partial t} = \frac{i}{2}\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right)\phi_j(x,y) - i U(x,y) \sum_k V_{j k}\phi_k(x,y)
-    
-where the last term is more commonly written as a matrix multiplication.  Writing this term out explicitly is feasible for a small number of components, but when the number of components becomes large, or perhaps :math:`V_{j k}` should be precomputed for efficiency reasons, it is useful to be able to perform this sum over the integer dimensions automatically.  This example show how this can be done naturally using a computed vector.  The XMDS2 script is as follows:
-
-.. code-block:: xpdeint
-
-        <simulation xmds-version="2">
-          <name>2DMSse</name>
-
-          <author>Joe Hope</author>
-          <description>
-            Schroedinger equation for multiple internal states in two spatial dimensions.
-          </description>
-
-          <features>
-              <benchmark />
-              <bing />
-              <fftw plan="patient" />
-              <openmp />
-              <auto_vectorise />
-             </features>
-
-          <geometry>
-              <propagation_dimension> t </propagation_dimension>
-              <transverse_dimensions>
-                  <dimension name="x" lattice="32"  domain="(-6, 6)" />
-                  <dimension name="y" lattice="32"  domain="(-6, 6)" />
-                  <dimension name="j" type="integer" lattice="2" domain="(0,1)" aliases="k"/>
-              </transverse_dimensions>
-           </geometry>
-
-          <vector name="wavefunction" type="complex" dimensions="x y j">
-            <components> phi </components>
-            <initialisation>
-              <![CDATA[
-              phi = j*sqrt(2/sqrt(M_PI/2))*exp(-(x*x+y*y)/4)*exp(i*0.1*x);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <vector name="spatialInteraction" type="real" dimensions="x y">
-            <components> U </components>
-            <initialisation>
-              <![CDATA[
-              U=exp(-(x*x+y*y)/4);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <vector name="internalInteraction" type="real" dimensions="j k">
-            <components> V </components>
-            <initialisation>
-              <![CDATA[
-              V=3*(j*(1-k)+(1-j)*k);
-              ]]>
-            </initialisation>
-          </vector>
-
-          <computed_vector name="coupling" dimensions="x y j" type="complex">
-            <components>
-              VPhi
-            </components>
-            <evaluation>
-              <dependencies basis="x y j k">internalInteraction wavefunction</dependencies>
-              <![CDATA[
-                // Calculate the current normalisation of the wave function.
-                VPhi = V*phi(j => k);
-              ]]>
-            </evaluation>
-          </computed_vector>
-
-          <sequence>
-            <integrate algorithm="ARK45" interval="2.0" tolerance="1e-7">
-              <samples>20 100</samples>
-              <operators>
-                <integration_vectors>wavefunction</integration_vectors>
-                <operator kind="ex" constant="yes">
-                  <operator_names>Ltt</operator_names>
-                  <![CDATA[
-                    Ltt = -i*(kx*kx+ky*ky)*0.5;
-                  ]]>
-                </operator>
-                <![CDATA[
-                dphi_dt = Ltt[phi] -i*U*VPhi;
-                ]]>
-                <dependencies>spatialInteraction coupling</dependencies>
-              </operators>
-            </integrate>
-          </sequence>
-
-          <output>
-            <sampling_group basis="x y j" initial_sample="yes">
-              <moments>density</moments>
-              <dependencies>wavefunction</dependencies>
-              <![CDATA[
-                density = mod2(phi);
-              ]]>
-            </sampling_group>
-            <sampling_group basis="x(0) y(0) j" initial_sample="yes">
-              <moments>normalisation</moments>
-              <dependencies>wavefunction</dependencies>
-              <![CDATA[
-                normalisation = mod2(phi);
-              ]]>
-            </sampling_group>
-          </output>
-        </simulation>
-
-The only truly new feature in this script is the "aliases" option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  :math:`V_{j k}` term is required to be a square array of dimension of this number of components.  If we wrote the k-index of :math:`V_{j k}` using a separate ``<dimension>`` element, then we would not be enforcing the requirement that the matrix be square.  Instead, we note that we will be using mul [...]
-
-.. code-block:: xpdeint
-
-                  <dimension name="j" type="integer" lattice="2" domain="(0,1)" aliases="k"/>
-
-This means that we can use the index "k", which will have exactly the same properties as the "j" index.  This is used to define the "V" function in the "internalInteraction" vector.  Now, just as we use a computed vector to perform an integration over our fields, we use a computed vector to calculate the sum.
-
-.. code-block:: xpdeint
-
-        <computed_vector name="coupling" dimensions="x y j" type="complex">
-          <components>
-            VPhi
-          </components>
-          <evaluation>
-            <dependencies basis="x y j k">internalInteraction wavefunction</dependencies>
-            <![CDATA[
-              // Calculate the current normalisation of the wave function.
-              VPhi = V*phi(j => k);
-            ]]>
-          </evaluation>
-        </computed_vector>
-
-Since the output dimensions of the computed vector do not include a "k" index, this index is integrated.  The volume element for this summation is the spacing between neighbouring values of "j", and since this spacing is one, this integration is just a sum over k, as required.
-
-
-By this point, we have introduced most of the important features in XMDS2.  More details on other transform options and rarely used features can be found in the :ref:`advancedTopics` section.
-
-
diff --git a/documentation/_sources/xsil2graphics2.txt b/documentation/_sources/xsil2graphics2.txt
deleted file mode 100644
index 0665961..0000000
--- a/documentation/_sources/xsil2graphics2.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-.. _xsil2graphics2:
-
-xsil2graphics2
-===============
-
-**xsil2graphics2** is a way of converting ".xsil" files to formats that other programs can read.  The syntax is described in the :ref:`QuickStartTutorial`, and by using the ``xsil2graphics2 --help`` option.  It currently can covert any output format for use by Mathematica.
-
-We recommend HDF5 format instead of the binary format for output and input, as many visualisation tools can already read/write to this format directly.
\ No newline at end of file
diff --git a/documentation/_static/basic.css b/documentation/_static/basic.css
index a04c8e1..43e8baf 100644
--- a/documentation/_static/basic.css
+++ b/documentation/_static/basic.css
@@ -4,7 +4,7 @@
  *
  * Sphinx stylesheet -- basic theme.
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/documentation/_static/default.css b/documentation/_static/default.css
index e534a07..21f3f50 100644
--- a/documentation/_static/default.css
+++ b/documentation/_static/default.css
@@ -4,7 +4,7 @@
  *
  * Sphinx stylesheet -- default theme.
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/documentation/_static/doctools.js b/documentation/_static/doctools.js
index 8614442..d4619fd 100644
--- a/documentation/_static/doctools.js
+++ b/documentation/_static/doctools.js
@@ -4,7 +4,7 @@
  *
  * Sphinx JavaScript utilities for all documentation.
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -32,7 +32,7 @@ if (!window.console || !console.firebug) {
  */
 jQuery.urldecode = function(x) {
   return decodeURIComponent(x).replace(/\+/g, ' ');
-};
+}
 
 /**
  * small helper function to urlencode strings
@@ -62,6 +62,18 @@ jQuery.getQueryParameters = function(s) {
 };
 
 /**
+ * small function to check if an array contains
+ * a given item.
+ */
+jQuery.contains = function(arr, item) {
+  for (var i = 0; i < arr.length; i++) {
+    if (arr[i] == item)
+      return true;
+  }
+  return false;
+};
+
+/**
  * highlight a given string on a jquery object by wrapping it in
  * span elements with the given class name.
  */
diff --git a/documentation/_static/jquery.js b/documentation/_static/jquery.js
index 83589da..7c24308 100644
--- a/documentation/_static/jquery.js
+++ b/documentation/_static/jquery.js
@@ -1,2 +1,154 @@
-/*! jQuery v1.8.3 jquery.com | jquery.org/license */
-(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){retur [...]
\ No newline at end of file
+/*!
+ * jQuery JavaScript Library v1.4.2
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Sat Feb 13 22:33:48 2010 -0500
+ */
+(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j); [...]
+e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget) [...]
+j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g," [...]
+"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua [...]
+true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]* [...]
+Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if(( [...]
+(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagNam [...]
+a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.c [...]
+"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:fu [...]
+function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.i [...]
+c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMConten [...]
+L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"construc [...]
+"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Functi [...]
+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d) [...]
+d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++ [...]
+a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d [...]
+!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if [...]
+true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left [...]
+var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select [...]
+parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCl [...]
+false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="non [...]
+s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embe [...]
+applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.rem [...]
+else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c. [...]
+a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a; [...]
+w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|inpu [...]
+cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.cla [...]
+i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+ [...]
+" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);thi [...]
+this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j< [...]
+e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",t [...]
+c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type proper [...]
+a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=functi [...]
+function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1) [...]
+k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n [...]
+C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove [...]
+null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf(" [...]
+e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(! [...]
+f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.e [...]
+if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange at [...]
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b. [...]
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.e [...]
+"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type) [...]
+a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented [...]
+isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submit [...]
+{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialS [...]
+if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_ [...]
+e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.t [...]
+"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventLi [...]
+d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a=== [...]
+!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return  [...]
+toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j| [...]
+u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unl [...]
+function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++ [...]
+if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?: [...]
+e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g]) [...]
+t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||( [...]
+g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q [...]
+for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.spli [...]
+1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG" [...]
+CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attr [...]
+relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m+ [...]
+l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){ [...]
+h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG: [...]
+CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m [...]
+g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:functio [...]
+text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.no [...]
+setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q=== [...]
+h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0; [...]
+m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m [...]
+"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+) [...]
+h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocume [...]
+!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createR [...]
+h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!= [...]
+q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTM [...]
+if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l]; [...]
+(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPositi [...]
+function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Unti [...]
+gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f+ [...]
+c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=thi [...]
+{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||t [...]
+"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"par [...]
+d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeNam [...]
+a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeTy [...]
+1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b, [...]
+a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn. [...]
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(th [...]
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChi [...]
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.pa [...]
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChi [...]
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].i [...]
+""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith [...]
+this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagNam [...]
+u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childN [...]
+1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length=== [...]
+return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec [...]
+""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.pu [...]
+c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b [...]
+c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styl [...]
+function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")| [...]
+Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c [...]
+"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedSty [...]
+a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters. [...]
+a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:funct [...]
+"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}}) [...]
+serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess [...]
+function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url: [...]
+global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{} [...]
+e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka [...]
+"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;i [...]
+false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if [...]
+false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.se [...]
+c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q== [...]
+d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h [...]
+g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status== [...]
+1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="st [...]
+"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w) [...]
+if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a], [...]
+this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!==" [...]
+"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacit [...]
+animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){ [...]
+j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a [...]
+this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.f [...]
+"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this [...]
+c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.n [...]
+this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.st [...]
+this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this. [...]
+e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a [...]
+c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClien [...]
+function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:fun [...]
+this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.cu [...]
+k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o. [...]
+f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></d [...]
+a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j [...]
+c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b= [...]
+d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{ [...]
+f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pag [...]
+"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return" [...]
+e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
diff --git a/documentation/_static/pygments.css b/documentation/_static/pygments.css
index ed79e79..1683ee9 100644
--- a/documentation/_static/pygments.css
+++ b/documentation/_static/pygments.css
@@ -13,11 +13,11 @@
 .highlight .gr { color: #FF0000 } /* Generic.Error */
 .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
 .highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #333333 } /* Generic.Output */
+.highlight .go { color: #303030 } /* Generic.Output */
 .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
 .highlight .gs { font-weight: bold } /* Generic.Strong */
 .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
 .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
 .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
 .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
diff --git a/documentation/_static/searchtools.js b/documentation/_static/searchtools.js
index 56676b2..663be4c 100644
--- a/documentation/_static/searchtools.js
+++ b/documentation/_static/searchtools.js
@@ -4,11 +4,38 @@
  *
  * Sphinx JavaScript utilties for the full-text search.
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
 
+/**
+ * helper function to return a node containing the
+ * search summary for a given text. keywords is a list
+ * of stemmed words, hlwords is the list of normal, unstemmed
+ * words. the first one is used to find the occurance, the
+ * latter for highlighting it.
+ */
+
+jQuery.makeSearchSummary = function(text, keywords, hlwords) {
+  var textLower = text.toLowerCase();
+  var start = 0;
+  $.each(keywords, function() {
+    var i = textLower.indexOf(this.toLowerCase());
+    if (i > -1)
+      start = i;
+  });
+  start = Math.max(start - 120, 0);
+  var excerpt = ((start > 0) ? '...' : '') +
+  $.trim(text.substr(start, 240)) +
+  ((start + 240 - text.length) ? '...' : '');
+  var rv = $('<div class="context"></div>').text(excerpt);
+  $.each(hlwords, function() {
+    rv = rv.highlightText(this, 'highlighted');
+  });
+  return rv;
+}
+
 
 /**
  * Porter Stemmer
@@ -193,38 +220,6 @@ var Stemmer = function() {
 }
 
 
-
-/**
- * Simple result scoring code.
- */
-var Scorer = {
-  // Implement the following function to further tweak the score for each result
-  // The function takes a result array [filename, title, anchor, descr, score]
-  // and returns the new score.
-  /*
-  score: function(result) {
-    return result[4];
-  },
-  */
-
-  // query matches the full name of an object
-  objNameMatch: 11,
-  // or matches in the last dotted part of the object name
-  objPartialMatch: 6,
-  // Additive scores depending on the priority of the object
-  objPrio: {0:  15,   // used to be importantResults
-            1:  5,   // used to be objectResults
-            2: -5},  // used to be unimportantResults
-  //  Used when the priority is not in the mapping.
-  objPrioDefault: 0,
-
-  // query found in title
-  title: 15,
-  // query found in terms
-  term: 5
-};
-
-
 /**
  * Search Module
  */
@@ -244,13 +239,8 @@ var Search = {
   },
 
   loadIndex : function(url) {
-    $.ajax({type: "GET", url: url, data: null,
-            dataType: "script", cache: true,
-            complete: function(jqxhr, textstatus) {
-              if (textstatus != "success") {
-                document.getElementById("searchindexloader").src = url;
-              }
-            }});
+    $.ajax({type: "GET", url: url, data: null, success: null,
+            dataType: "script", cache: true});
   },
 
   setIndex : function(index) {
@@ -278,20 +268,19 @@ var Search = {
     if (this._pulse_status >= 0)
         return;
     function pulse() {
-      var i;
       Search._pulse_status = (Search._pulse_status + 1) % 4;
       var dotString = '';
-      for (i = 0; i < Search._pulse_status; i++)
+      for (var i = 0; i < Search._pulse_status; i++)
         dotString += '.';
       Search.dots.text(dotString);
       if (Search._pulse_status > -1)
         window.setTimeout(pulse, 500);
-    }
+    };
     pulse();
   },
 
   /**
-   * perform a search for something (or wait until index is loaded)
+   * perform a search for something
    */
   performSearch : function(query) {
     // create the required interface elements
@@ -311,46 +300,41 @@ var Search = {
       this.deferQuery(query);
   },
 
-  /**
-   * execute search (requires search index to be loaded)
-   */
   query : function(query) {
-    var i;
-    var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
+    var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"];
 
-    // stem the searchterms and add them to the correct list
+    // Stem the searchterms and add them to the correct list
     var stemmer = new Stemmer();
     var searchterms = [];
     var excluded = [];
     var hlterms = [];
     var tmp = query.split(/\s+/);
     var objectterms = [];
-    for (i = 0; i < tmp.length; i++) {
-      if (tmp[i] !== "") {
+    for (var i = 0; i < tmp.length; i++) {
+      if (tmp[i] != "") {
           objectterms.push(tmp[i].toLowerCase());
       }
 
       if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
-          tmp[i] === "") {
+          tmp[i] == "") {
         // skip this "word"
         continue;
       }
       // stem the word
       var word = stemmer.stemWord(tmp[i]).toLowerCase();
-      var toAppend;
       // select the correct list
       if (word[0] == '-') {
-        toAppend = excluded;
+        var toAppend = excluded;
         word = word.substr(1);
       }
       else {
-        toAppend = searchterms;
+        var toAppend = searchterms;
         hlterms.push(tmp[i].toLowerCase());
       }
       // only add if not already in the list
-      if (!$u.contains(toAppend, word))
+      if (!$.contains(toAppend, word))
         toAppend.push(word);
-    }
+    };
     var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
 
     // console.debug('SEARCH: searching for:');
@@ -358,51 +342,89 @@ var Search = {
     // console.info('excluded: ', excluded);
 
     // prepare search
+    var filenames = this._index.filenames;
+    var titles = this._index.titles;
     var terms = this._index.terms;
-    var titleterms = this._index.titleterms;
-
-    // array of [filename, title, anchor, descr, score]
-    var results = [];
+    var fileMap = {};
+    var files = null;
+    // different result priorities
+    var importantResults = [];
+    var objectResults = [];
+    var regularResults = [];
+    var unimportantResults = [];
     $('#search-progress').empty();
 
     // lookup as object
-    for (i = 0; i < objectterms.length; i++) {
-      var others = [].concat(objectterms.slice(0, i),
-                             objectterms.slice(i+1, objectterms.length));
-      results = results.concat(this.performObjectSearch(objectterms[i], others));
+    for (var i = 0; i < objectterms.length; i++) {
+      var others = [].concat(objectterms.slice(0,i),
+                             objectterms.slice(i+1, objectterms.length))
+      var results = this.performObjectSearch(objectterms[i], others);
+      // Assume first word is most likely to be the object,
+      // other words more likely to be in description.
+      // Therefore put matches for earlier words first.
+      // (Results are eventually used in reverse order).
+      objectResults = results[0].concat(objectResults);
+      importantResults = results[1].concat(importantResults);
+      unimportantResults = results[2].concat(unimportantResults);
     }
 
-    // lookup as search terms in fulltext
-    results = results.concat(this.performTermsSearch(searchterms, excluded, terms, Scorer.term))
-                     .concat(this.performTermsSearch(searchterms, excluded, titleterms, Scorer.title));
-
-    // let the scorer override scores with a custom scoring function
-    if (Scorer.score) {
-      for (i = 0; i < results.length; i++)
-        results[i][4] = Scorer.score(results[i]);
+    // perform the search on the required terms
+    for (var i = 0; i < searchterms.length; i++) {
+      var word = searchterms[i];
+      // no match but word was a required one
+      if ((files = terms[word]) == null)
+        break;
+      if (files.length == undefined) {
+        files = [files];
+      }
+      // create the mapping
+      for (var j = 0; j < files.length; j++) {
+        var file = files[j];
+        if (file in fileMap)
+          fileMap[file].push(word);
+        else
+          fileMap[file] = [word];
+      }
     }
 
-    // now sort the results by score (in opposite order of appearance, since the
-    // display function below uses pop() to retrieve items) and then
-    // alphabetically
-    results.sort(function(a, b) {
-      var left = a[4];
-      var right = b[4];
-      if (left > right) {
-        return 1;
-      } else if (left < right) {
-        return -1;
-      } else {
-        // same score: sort alphabetically
-        left = a[1].toLowerCase();
-        right = b[1].toLowerCase();
-        return (left > right) ? -1 : ((left < right) ? 1 : 0);
+    // now check if the files don't contain excluded terms
+    for (var file in fileMap) {
+      var valid = true;
+
+      // check if all requirements are matched
+      if (fileMap[file].length != searchterms.length)
+        continue;
+
+      // ensure that none of the excluded terms is in the
+      // search result.
+      for (var i = 0; i < excluded.length; i++) {
+        if (terms[excluded[i]] == file ||
+            $.contains(terms[excluded[i]] || [], file)) {
+          valid = false;
+          break;
+        }
       }
+
+      // if we have still a valid result we can add it
+      // to the result list
+      if (valid)
+        regularResults.push([filenames[file], titles[file], '', null]);
+    }
+
+    // delete unused variables in order to not waste
+    // memory until list is retrieved completely
+    delete filenames, titles, terms;
+
+    // now sort the regular results descending by title
+    regularResults.sort(function(a, b) {
+      var left = a[1].toLowerCase();
+      var right = b[1].toLowerCase();
+      return (left > right) ? -1 : ((left < right) ? 1 : 0);
     });
 
-    // for debugging
-    //Search.lastresults = results.slice();  // a copy
-    //console.info('search results:', Search.lastresults);
+    // combine all results
+    var results = unimportantResults.concat(regularResults)
+      .concat(objectResults).concat(importantResults);
 
     // print the results
     var resultCount = results.length;
@@ -411,7 +433,7 @@ var Search = {
       if (results.length) {
         var item = results.pop();
         var listItem = $('<li style="display:none"></li>');
-        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
+        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX == '') {
           // dirhtml builder
           var dirname = item[0] + '/';
           if (dirname.match(/\/index\/$/)) {
@@ -435,18 +457,16 @@ var Search = {
             displayNextItem();
           });
         } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
-                  dataType: "text",
-                  complete: function(jqxhr, textstatus) {
-                    var data = jqxhr.responseText;
-                    if (data !== '') {
-                      listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
-                    }
-                    Search.output.append(listItem);
-                    listItem.slideDown(5, function() {
-                      displayNextItem();
-                    });
-                  }});
+          $.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' +
+                item[0] + '.txt', function(data) {
+            if (data != '') {
+              listItem.append($.makeSearchSummary(data, searchterms, hlterms));
+              Search.output.append(listItem);
+            }
+            listItem.slideDown(5, function() {
+              displayNextItem();
+            });
+          }, "text");
         } else {
           // no source available, just display title
           Search.output.append(listItem);
@@ -469,32 +489,20 @@ var Search = {
     displayNextItem();
   },
 
-  /**
-   * search for object names
-   */
   performObjectSearch : function(object, otherterms) {
     var filenames = this._index.filenames;
     var objects = this._index.objects;
     var objnames = this._index.objnames;
     var titles = this._index.titles;
 
-    var i;
-    var results = [];
+    var importantResults = [];
+    var objectResults = [];
+    var unimportantResults = [];
 
     for (var prefix in objects) {
       for (var name in objects[prefix]) {
         var fullname = (prefix ? prefix + '.' : '') + name;
         if (fullname.toLowerCase().indexOf(object) > -1) {
-          var score = 0;
-          var parts = fullname.split('.');
-          // check for different match types: exact matches of full name or
-          // "last name" (i.e. last dotted part)
-          if (fullname == object || parts[parts.length - 1] == object) {
-            score += Scorer.objNameMatch;
-          // matches in last name
-          } else if (parts[parts.length - 1].indexOf(object) > -1) {
-            score += Scorer.objPartialMatch;
-          }
           var match = objects[prefix][name];
           var objname = objnames[match[1]][2];
           var title = titles[match[0]];
@@ -504,7 +512,7 @@ var Search = {
             var haystack = (prefix + ' ' + name + ' ' +
                             objname + ' ' + title).toLowerCase();
             var allfound = true;
-            for (i = 0; i < otherterms.length; i++) {
+            for (var i = 0; i < otherterms.length; i++) {
               if (haystack.indexOf(otherterms[i]) == -1) {
                 allfound = false;
                 break;
@@ -515,107 +523,37 @@ var Search = {
             }
           }
           var descr = objname + _(', in ') + title;
-
-          var anchor = match[3];
-          if (anchor === '')
+          anchor = match[3];
+          if (anchor == '')
             anchor = fullname;
           else if (anchor == '-')
             anchor = objnames[match[1]][1] + '-' + fullname;
-          // add custom score for some objects according to scorer
-          if (Scorer.objPrio.hasOwnProperty(match[2])) {
-            score += Scorer.objPrio[match[2]];
-          } else {
-            score += Scorer.objPrioDefault;
+          result = [filenames[match[0]], fullname, '#'+anchor, descr];
+          switch (match[2]) {
+          case 1: objectResults.push(result); break;
+          case 0: importantResults.push(result); break;
+          case 2: unimportantResults.push(result); break;
           }
-          results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]);
         }
       }
     }
 
-    return results;
-  },
-
-  /**
-   * search for full-text terms in the index
-   */
-  performTermsSearch : function(searchterms, excluded, terms, score) {
-    var filenames = this._index.filenames;
-    var titles = this._index.titles;
-
-    var i, j, file, files;
-    var fileMap = {};
-    var results = [];
-
-    // perform the search on the required terms
-    for (i = 0; i < searchterms.length; i++) {
-      var word = searchterms[i];
-      // no match but word was a required one
-      if (!(files = terms[word]))
-        break;
-      if (files.length === undefined) {
-        files = [files];
-      }
-      // create the mapping
-      for (j = 0; j < files.length; j++) {
-        file = files[j];
-        if (file in fileMap)
-          fileMap[file].push(word);
-        else
-          fileMap[file] = [word];
-      }
-    }
-
-    // now check if the files don't contain excluded terms
-    for (file in fileMap) {
-      var valid = true;
-
-      // check if all requirements are matched
-      if (fileMap[file].length != searchterms.length)
-          continue;
-
-      // ensure that none of the excluded terms is in the search result
-      for (i = 0; i < excluded.length; i++) {
-        if (terms[excluded[i]] == file ||
-          $u.contains(terms[excluded[i]] || [], file)) {
-          valid = false;
-          break;
-        }
-      }
-
-      // if we have still a valid result we can add it to the result list
-      if (valid) {
-        results.push([filenames[file], titles[file], '', null, score]);
-      }
-    }
-    return results;
-  },
+    // sort results descending
+    objectResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
 
-  /**
-   * helper function to return a node containing the
-   * search summary for a given text. keywords is a list
-   * of stemmed words, hlwords is the list of normal, unstemmed
-   * words. the first one is used to find the occurance, the
-   * latter for highlighting it.
-   */
-  makeSearchSummary : function(text, keywords, hlwords) {
-    var textLower = text.toLowerCase();
-    var start = 0;
-    $.each(keywords, function() {
-      var i = textLower.indexOf(this.toLowerCase());
-      if (i > -1)
-        start = i;
+    importantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
     });
-    start = Math.max(start - 120, 0);
-    var excerpt = ((start > 0) ? '...' : '') +
-      $.trim(text.substr(start, 240)) +
-      ((start + 240 - text.length) ? '...' : '');
-    var rv = $('<div class="context"></div>').text(excerpt);
-    $.each(hlwords, function() {
-      rv = rv.highlightText(this, 'highlighted');
+
+    unimportantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
     });
-    return rv;
+
+    return [importantResults, objectResults, unimportantResults]
   }
-};
+}
 
 $(document).ready(function() {
   Search.init();
diff --git a/documentation/_static/sidebar.js b/documentation/_static/sidebar.js
index 874a890..a45e192 100644
--- a/documentation/_static/sidebar.js
+++ b/documentation/_static/sidebar.js
@@ -16,20 +16,12 @@
  * Once the browser is closed the cookie is deleted and the position
  * reset to the default (expanded).
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
 
 $(function() {
-  
-  
-  
-  
-  
-  
-  
-
   // global elements used by the functions.
   // the 'sidebarbutton' element is defined as global after its
   // creation, in the add_sidebar_button function
@@ -142,7 +134,7 @@ $(function() {
     var items = document.cookie.split(';');
     for(var k=0; k<items.length; k++) {
       var key_val = items[k].split('=');
-      var key = key_val[0].replace(/ /, "");  // strip leading spaces
+      var key = key_val[0];
       if (key == 'sidebar') {
         var value = key_val[1];
         if ((value == 'collapsed') && (!sidebar_is_collapsed()))
@@ -156,4 +148,4 @@ $(function() {
   add_sidebar_button();
   var sidebarbutton = $('#sidebarbutton');
   set_position_from_cookie();
-});
\ No newline at end of file
+});
diff --git a/documentation/_static/underscore.js b/documentation/_static/underscore.js
index 5b55f32..5d89914 100644
--- a/documentation/_static/underscore.js
+++ b/documentation/_static/underscore.js
@@ -1,31 +1,23 @@
-// Underscore.js 1.3.1
-// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
-// Underscore is freely distributable under the MIT license.
-// Portions of Underscore are inspired or borrowed from Prototype,
+// Underscore.js 0.5.5
+// (c) 2009 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the terms of the MIT license.
+// Portions of Underscore are inspired by or borrowed from Prototype.js,
 // Oliver Steele's Functional, and John Resig's Micro-Templating.
 // For all details and documentation:
-// http://documentcloud.github.com/underscore
-(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object [...]
-c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h i [...]
-h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var [...]
-b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.l [...]
-null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.f [...]
-function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g, [...]
-e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d) [...]
-function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a [...]
-return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedInd [...]
-c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length- [...]
-b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];retur [...]
-return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=func [...]
-d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d; [...]
-var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.mem [...]
-c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c)) [...]
-a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)] [...]
-b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function( [...]
-1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){ret [...]
-b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a) [...]
-b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin [...]
-function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return [...]
-u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=func [...]
-function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.ch [...]
-true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
+// http://documentcloud.github.com/underscore/
+(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length [...]
+a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bin [...]
+var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b [...]
+d);var e=true;b.each(a,function(f,g,h){(e=e&&c.call(d,f,g,h))||b.breakLoop()});return e};b.any=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.some))return a.some(c,d);var e=false;b.each(a,function(f,g,h){if(e=c.call(d,f,g,h))b.breakLoop()});return e};b.include=function(a,c){if(b.isArray(a))return b.indexOf(a,c)!=-1;var d=false;b.each(a,function(e){if(d=e===c)b.breakLoop()});return d};b.invoke=function(a,c){var d=b.rest(arguments,2);return b.map(a,function(e){return(c?e[c]:e).apply( [...]
+function(a,c){return b.map(a,function(d){return d[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g>=e.computed&&(e={value:f,computed:g})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g<e.computed&&(e={value:f,computed:g})});return e.value};b.sortBy=function(a,c,d){retur [...]
+function(e,f,g){return{value:e,criteria:c.call(d,e,f,g)}}).sort(function(e,f){e=e.criteria;f=f.criteria;return e<f?-1:e>f?1:0}),"value")};b.sortedIndex=function(a,c,d){d=d||b.identity;for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?(e=g+1):(f=g)}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return k.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=function(a,c,d){return  [...]
+0,c):a[0]};b.rest=function(a,c,d){return k.call(a,b.isUndefined(c)||d?1:c)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.select(a,function(c){return!!c})};b.flatten=function(a){return b.reduce(a,[],function(c,d){if(b.isArray(d))return c.concat(b.flatten(d));c.push(d);return c})};b.without=function(a){var c=b.rest(arguments);return b.select(a,function(d){return!b.include(c,d)})};b.uniq=function(a,c){return b.reduce(a,[],function(d,e,f){if(0==f||(c===true?b.last( [...]
+e)))d.push(e);return d})};b.intersect=function(a){var c=b.rest(arguments);return b.select(b.uniq(a),function(d){return b.all(c,function(e){return b.indexOf(e,d)>=0})})};b.zip=function(){for(var a=b.toArray(arguments),c=b.max(b.pluck(a,"length")),d=new Array(c),e=0;e<c;e++)d[e]=b.pluck(a,String(e));return d};b.indexOf=function(a,c){if(a.indexOf)return a.indexOf(c);for(var d=0,e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,c){if(a.lastIndexOf)return a.lastIndexO [...]
+a.length;d--;)if(a[d]===c)return d;return-1};b.range=function(a,c,d){var e=b.toArray(arguments),f=e.length<=1;a=f?0:e[0];c=f?e[0]:e[1];d=e[2]||1;e=Math.ceil((c-a)/d);if(e<=0)return[];e=new Array(e);f=a;for(var g=0;1;f+=d){if((d>0?f-c:c-f)>=0)return e;e[g++]=f}};b.bind=function(a,c){var d=b.rest(arguments,2);return function(){return a.apply(c||j,d.concat(b.toArray(arguments)))}};b.bindAll=function(a){var c=b.rest(arguments);if(c.length==0)c=b.functions(a);b.each(c,function(d){a[d]=b.bind( [...]
+return a};b.delay=function(a,c){var d=b.rest(arguments,2);return setTimeout(function(){return a.apply(a,d)},c)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(b.rest(arguments)))};b.wrap=function(a,c){return function(){var d=[a].concat(b.toArray(arguments));return c.apply(c,d)}};b.compose=function(){var a=b.toArray(arguments);return function(){for(var c=b.toArray(arguments),d=a.length-1;d>=0;d--)c=[a[d].apply(this,c)];return c[0]}};b.keys=function(a){if(b.isArray(a))return b.ran [...]
+var c=[];for(var d in a)q.call(a,d)&&c.push(d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=function(a){return b.select(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a,c){for(var d in c)a[d]=c[d];return a};b.clone=function(a){if(b.isArray(a))return a.slice(0);return b.extend({},a)};b.tap=function(a,c){c(a);return a};b.isEqual=function(a,c){if(a===c)return true;var d=typeof a;if(d!=typeof c)return false;if(a==c)return true;if(!a&&c|| [...]
+if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return true;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return false;if(a.length&&a.length!==c.length)return false;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return false;for(var f in a)if(!b.isEqual(a[f],c[f]))return false;return true};b.isEmpty=function(a [...]
+0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=function(a){return!!(a&&a.concat&&a.unshift)};b.isArguments=function(a){return a&&b.isNumber(a.length)&&!b.isArray(a)&&!r.call(a,"length")};b.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return p.call(a)==="[object Number]"};b.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};b.isRegExp=func [...]
+a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};b.isNaN=function(a){return b.isNumber(a)&&isNaN(a)};b.isNull=function(a){return a===null};b.isUndefined=function(a){return typeof a=="undefined"};b.noConflict=function(){j._=n;return this};b.identity=function(a){return a};b.breakLoop=function(){throw m;};var s=0;b.uniqueId=function(a){var c=s++;return a?a+c:c};b.template=function(a,c){a=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.re [...]
+" ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"',$1,'").split("<%").join("');").split("%>").join("p.push('")+"');}return p.join('');");return c?a(c):a};b.forEach=b.each;b.foldl=b.inject=b.reduce;b.foldr=b.reduceRight;b.filter=b.select;b.every=b.all;b.some=b.any;b.head=b.first;b.tail=b.rest;b.methods=b.functions;var l=function(a,c){return c?b(a).chain():a};b.each(b.functions(b),function(a){var c=b[a];i.prototype[a]=function(){var d=b [...]
+o.call(d,this._wrapped);return l(c.apply(b,d),this._chain)}});b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){c.apply(this._wrapped,arguments);return l(this._wrapped,this._chain)}});b.each(["concat","join","slice"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){return l(c.apply(this._wrapped,arguments),this._chain)}});i.prototype.chain=function(){this._chain=true;return this};i.prototype.valu [...]
diff --git a/documentation/_static/websupport.js b/documentation/_static/websupport.js
index 19fcda5..e9bd1b8 100644
--- a/documentation/_static/websupport.js
+++ b/documentation/_static/websupport.js
@@ -4,7 +4,7 @@
  *
  * sphinx.websupport utilties for all documentation.
  *
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/documentation/advanced_topics.html b/documentation/advanced_topics.html
index f0969ae..74f8870 100644
--- a/documentation/advanced_topics.html
+++ b/documentation/advanced_topics.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Advanced Topics — XMDS2 2.1.4 documentation</title>
+    <title>Advanced Topics — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,13 +46,13 @@
           <div class="body">
             
   <div class="section" id="advanced-topics">
-<span id="advancedtopics"></span><h1>Advanced Topics<a class="headerlink" href="#advanced-topics" title="Permalink to this headline">¶</a></h1>
+<span id="advancedtopics"></span><span id="index-0"></span><h1>Advanced Topics<a class="headerlink" href="#advanced-topics" title="Permalink to this headline">¶</a></h1>
 <p>This section has further details on some important topics.</p>
 <p><a class="reference internal" href="#importing"><em>Importing data</em></a> (importing data into XMDS2, and data formats used in the export)</p>
 <p><a class="reference internal" href="#convolutions"><em>Convolutions and Fourier transforms</em></a> (extra information on the Fourier transforms used in XMDS2, and applications to defining convolutions)</p>
 <p><a class="reference internal" href="#dimensionaliases"><em>Dimension aliases</em></a> (dimensions which are declared to be identical, useful for correlation functions)</p>
 <div class="section" id="importing-data">
-<span id="importing"></span><h2>Importing data<a class="headerlink" href="#importing-data" title="Permalink to this headline">¶</a></h2>
+<span id="importing"></span><span id="index-1"></span><h2>Importing data<a class="headerlink" href="#importing-data" title="Permalink to this headline">¶</a></h2>
 <p>There are many cases where it is advantageous to import previously acquired data into XMDS2. For example, the differential equation you wish to solve may depend on a complicated functional form, which is more easily obtained via an analytical package such as Mathematica or Maple. Furthermore, importing data from another source can be quicker than needlessly performing calculations in XMDS2. In this tutorial, we shall consider an example of importing into XMDS2 a function generated in  [...]
 <p>Suppose we want to import the following function into XMDS2:</p>
 <div class="math">
@@ -167,7 +169,7 @@ Export["func.h5", {func, x1, y1}, {"Datasets", { "funct
 <p>and imported into XMDS2 as outlined above.</p>
 </div>
 <div class="section" id="convolutions-and-fourier-transforms">
-<span id="convolutions"></span><h2>Convolutions and Fourier transforms<a class="headerlink" href="#convolutions-and-fourier-transforms" title="Permalink to this headline">¶</a></h2>
+<span id="convolutions"></span><span id="index-2"></span><h2>Convolutions and Fourier transforms<a class="headerlink" href="#convolutions-and-fourier-transforms" title="Permalink to this headline">¶</a></h2>
 <p>When evaluating a numerical Fourier transform, XMDS2 doesn’t behave as expected. While many simulations have ranges in their spatial coordinate (here assumed to be x) that range from some negative value <span class="math">\(x_\text{min}\)</span> to some positive value <span class="math">\(x_\text{max}\)</span>, the Fourier transform used in XMDS2 treats all spatial coordinates as starting at zero. The result of this is that a phase factor of the form <span class="math">\(e^{-i x [...]
 <p>The standard Fourier transform is</p>
 <div class="math">
@@ -199,10 +201,10 @@ Export["func.h5", {func, x1, y1}, {"Datasets", { "funct
 </div>
 </div>
 <div class="section" id="loose-geometry-matching-mode">
-<span id="loosegeometrymatchingmode"></span><h2>‘Loose’ <tt class="docutils literal"><span class="pre">geometry_matching_mode</span></tt><a class="headerlink" href="#loose-geometry-matching-mode" title="Permalink to this headline">¶</a></h2>
+<span id="loosegeometrymatchingmode"></span><span id="index-3"></span><h2>‘Loose’ <tt class="docutils literal"><span class="pre">geometry_matching_mode</span></tt><a class="headerlink" href="#loose-geometry-matching-mode" title="Permalink to this headline">¶</a></h2>
 </div>
 <div class="section" id="dimension-aliases">
-<span id="dimensionaliases"></span><h2>Dimension aliases<a class="headerlink" href="#dimension-aliases" title="Permalink to this headline">¶</a></h2>
+<span id="dimensionaliases"></span><span id="index-4"></span><h2>Dimension aliases<a class="headerlink" href="#dimension-aliases" title="Permalink to this headline">¶</a></h2>
 <p>Dimension aliases specify that two or more dimensions have exactly the same <tt class="docutils literal"><span class="pre">lattice</span></tt>, <tt class="docutils literal"><span class="pre">domain</span></tt> and <tt class="docutils literal"><span class="pre">transform</span></tt>.  This can be useful in situations where the problem enforces this, for example when computing correlation functions or representing square matrices.</p>
 <p>Dimension aliases are not just a short-hand for defining an additional dimension, they also permit dimensions to be accessed <a class="reference internal" href="reference_elements.html#referencingnonlocal"><em>non-locally</em></a>, which is essential when computing spatial correlation functions.</p>
 <p>Here is how to compute a spatial correlation function <span class="math">\(g^{(1)}(x, x') = \psi^*(x) \psi(x')\)</span> of the quantity <tt class="docutils literal"><span class="pre">psi</span></tt>:</p>
@@ -292,13 +294,13 @@ Export["func.h5", {func, x1, y1}, {"Datasets", { "funct
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/bulirschStoer.html b/documentation/bulirschStoer.html
new file mode 100644
index 0000000..4b34919
--- /dev/null
+++ b/documentation/bulirschStoer.html
@@ -0,0 +1,130 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Modified Midpoint Method — XMDS2 2.2.0 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
+    <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="modified-midpoint-method">
+<span id="mmdetail"></span><span id="index-0"></span><h1>Modified Midpoint Method<a class="headerlink" href="#modified-midpoint-method" title="Permalink to this headline">¶</a></h1>
+<p>The modified midpoint can be used standalone as an ordinary differential equation integrator, however it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.</p>
+<p>The modified midpoint method advances a vector of dependent variables <span class="math">\(y(x)\)</span> from a point <span class="math">\(x\)</span>, to a point <span class="math">\(x + H\)</span> by a sequence of <span class="math">\(n\)</span> substeps, each of size <span class="math">\(h=H/n\)</span>.</p>
+<p>The number of right-hand side evaluations required by the modified midpoint method is <span class="math">\(n+1\)</span>.  The formulas for the method are</p>
+<div class="math">
+\[\begin{split}z_0 &= y(x) \\
+z_1 &= z_0 + h f(x, z_0) \\
+z_{m+1} &= z_{m-1} + 2 h f(x + m h, z_m)\; \text{ for } m = 1, 2, \dots, n-1 \\
+y(x+H) \approx y_n &= \frac{1}{2} \left[ z_n + z_{n-1} + h f(x + H, z_n) \right]\end{split}\]</div>
+<p>The error of this, expressed as a power series in <span class="math">\(h\)</span>, the stepsize, contains only even powers of <span class="math">\(h\)</span>.</p>
+<div class="math">
+\[\begin{split}y_n - y(x + H) &= \sum_{i=1}^{\infty} \alpha_i h^{2i}\end{split}\]</div>
+<p>Where <span class="math">\(H\)</span> is held constant, but <span class="math">\(h\)</span> changes <span class="math">\(y\)</span> by varing the <span class="math">\(n\)</span> in <span class="math">\(h = H/n\)</span>.</p>
+<p>The importance of this even power series is that using Richardson Extrapolation to combine steps and knock out higher-order error terms gains us two orders at a time.</p>
+<p>The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires 1 derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.</p>
+</div>
+<div class="section" id="bulirsch-stoer-algorithm">
+<span id="bsdetail"></span><span id="index-1"></span><h1>Bulirsch-Stoer Algorithm<a class="headerlink" href="#bulirsch-stoer-algorithm" title="Permalink to this headline">¶</a></h1>
+<p>The Bulirsch-Stoer algorithm utilizes three core concepts in its design. These are;</p>
+<p>Firstly, the usage of Richardson Extrapolation</p>
+<img alt="_images/richardsonExtrapolation.png" class="align-center" src="_images/richardsonExtrapolation.png" />
+<p>Richardson Extrapolation considers the final answer of a numerical calculation, as being an analytic function of an adjustable parameter such as the stepsize <span class="math">\(h\)</span>. That analytic function can be probed by performing the calculation with various values of <span class="math">\(h\)</span>, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it, [...]
+<p>Secondly, the usage of rational function extrapolation in Richardson-type applications. Rational function fits can remain good approximations to analytic functions even after the various terms in powers of <span class="math">\(h\)</span>, all have comparable magnitudes. In other words, <span class="math">\(h\)</span> can be so large as to make the whole notion of the “order” of the method meaningless — and the method can still work superbly.</p>
+<p>The third idea is to use an integration method whose error function is strictly even, allowing the rational function or polynomial approximation to be in terms of the variable <span class="math">\(h^2\)</span> instead of just <span class="math">\(h\)</span>.</p>
+<p>These three ideas give us the Bulirsch-Stoer method, where a single step takes us from <span class="math">\(x\)</span> to <span class="math">\(x + H\)</span>, where <span class="math">\(H\)</span> is supposed to be a significantly large distance. That single step consists of many substeps of the modified midpoint method, which is then extrapolated to zero stepsize.</p>
+<p>(Excerpts derived from <strong>Numerical Recipes: The Art of Scientific Computing</strong>, Third Edition (2007), p1256; Cambridge University Press; ISBN-10: 0521880688, <a class="reference external" href="http://www.nr.com/">http://www.nr.com/</a>)</p>
+</div>
+<div class="section" id="error-scaling-behaviour">
+<span id="errorscaling"></span><span id="index-2"></span><h1>Error Scaling Behaviour<a class="headerlink" href="#error-scaling-behaviour" title="Permalink to this headline">¶</a></h1>
+<img alt="_images/error_scaling.png" class="align-center" src="_images/error_scaling.png" style="width: 800px; height: 600px;" />
+<p>The graph above shows the error scaling behaviour for the Bulirsch-Stoer method. This was generated using data from XMDS2 for a simple problem whose analytical solution was known. For more information and to generate this plot yourself see the testsuite/integrators/richardson_extrapolation/error_scaling directory. There you will find the .xmds files for generating the data and a python script to generate the plot above (requires gnuplot).</p>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/xmds_logo.png" alt="Logo"/>
+            </a></p>
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Modified Midpoint Method</a></li>
+<li><a class="reference internal" href="#bulirsch-stoer-algorithm">Bulirsch-Stoer Algorithm</a></li>
+<li><a class="reference internal" href="#error-scaling-behaviour">Error Scaling Behaviour</a></li>
+</ul>
+
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/documentation/developer.html b/documentation/developer.html
index 0a74719..1db0108 100644
--- a/documentation/developer.html
+++ b/documentation/developer.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Developer Documentation — XMDS2 2.1.4 documentation</title>
+    <title>Developer Documentation — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,10 +46,10 @@
           <div class="body">
             
   <div class="section" id="developer-documentation">
-<h1>Developer Documentation<a class="headerlink" href="#developer-documentation" title="Permalink to this headline">¶</a></h1>
+<span id="developerdocumentation"></span><h1>Developer Documentation<a class="headerlink" href="#developer-documentation" title="Permalink to this headline">¶</a></h1>
 <p>Developers need to know more than users.  For example, they need to know about the test suite, and writing test cases.  They need to know how to perform a developer installation.  They need to know how to edit and compile this documentation.  They need a step-by-step release process.</p>
 <div class="section" id="test-scripts">
-<span id="testscripts"></span><h2>Test scripts<a class="headerlink" href="#test-scripts" title="Permalink to this headline">¶</a></h2>
+<span id="testscripts"></span><span id="index-0"></span><h2>Test scripts<a class="headerlink" href="#test-scripts" title="Permalink to this headline">¶</a></h2>
 <p>Every time you add a new feature and/or fix a new and exciting bug, it is a great idea to make sure that the new feature works and/or the bug stays fixed.  Fortunately, it is pleasantly easy to add a test case to the testing suite.</p>
 <ol class="arabic simple">
 <li>Write normal XMDS script that behaves as you expect.</li>
@@ -90,16 +92,90 @@
 <span id="momentgroupelement"></span><h3>moment_group element<a class="headerlink" href="#moment-group-element" title="Permalink to this headline">¶</a></h3>
 </div>
 </div>
-<div class="section" id="steps-to-update-xmds-script-validator-xml-schema">
-<h2>Steps to update <tt class="docutils literal"><span class="pre">XMDS</span></tt> script validator (XML schema)<a class="headerlink" href="#steps-to-update-xmds-script-validator-xml-schema" title="Permalink to this headline">¶</a></h2>
-<ol class="arabic simple">
-<li>Modify <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rnc</span></tt>. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes.</li>
-<li>Run <tt class="docutils literal"><span class="pre">make</span></tt> in <tt class="docutils literal"><span class="pre">xpdeint/support/</span></tt> to update <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rng</span></tt>. This is the file which is actually used, which is in RelaxNG format, but RelaxNG compact is easier to read and edit.</li>
-<li>Commit both <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rnc</span></tt> and <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rng</span></tt>.</li>
-</ol>
+<div class="section" id="xmds-documentation">
+<span id="userdocumentation"></span><span id="index-1"></span><h2>XMDS Documentation<a class="headerlink" href="#xmds-documentation" title="Permalink to this headline">¶</a></h2>
+<p>Documentation in XMDS is written as reStructuredText files (.rst), which are then parsed into HTML files to be displayed on their website.</p>
+<p>You can find the user documentation folder located <tt class="docutils literal"><span class="pre">admin/userdoc-source</span></tt>. This is where all of the .rst files are kept. If you’re wanting to add documentation to the site, you’ll need to create your own .rst file, with the name of the webpage as the filename.</p>
+<p>RST is a relatively simple language, which is basically simplified HTML markup. For documentation on how to make Lists, Href Links, Embed images etc, you should check here;</p>
+<p><a class="reference external" href="http://docutils.sourceforge.net/docs/user/rst/quickref.html">http://docutils.sourceforge.net/docs/user/rst/quickref.html</a>
+<a class="reference external" href="http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html">http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html</a></p>
+<p>However, you should easily be able to use some of the pre-existing .rst files in the project as a template to create yours.</p>
+<p>Once your documentation is in this folder, it should be deployed along with the project to their website when you run create_release_version.sh, which can be found in the /Trunk/xpdeint/admin folder. If you would like to test to see what your rst file generates without running this shell script, you can use the Makefile in the userdoc-source folder, by running “make html”.</p>
+<p>NOTE: Before you can run the create_release_version.sh file, there are a few packages you will need. This command uses latex to generate the XMDS2 pdf, so you’ll be needing the following packages; <tt class="docutils literal"><span class="pre">texlive-fonts-recommended</span></tt>, <tt class="docutils literal"><span class="pre">texlive-lang-cjk</span></tt>, <tt class="docutils literal"><span class="pre">texlive-latex-base</span></tt>.</p>
+</div>
+<div class="section" id="how-to-update-xmds2-script-validator-xml-schema">
+<span id="howtoaddelementtovalidator"></span><span id="index-2"></span><h2>How to update <tt class="docutils literal"><span class="pre">XMDS2</span></tt> script validator (XML schema)<a class="headerlink" href="#how-to-update-xmds2-script-validator-xml-schema" title="Permalink to this headline">¶</a></h2>
+<img alt="_images/IntroduceNewElement.png" class="align-right" src="_images/IntroduceNewElement.png" />
+<p>This is a short guide to adding an element to XMDS2, so that it can be validated by the XMDS2 script validator. In this guide, the example being used will be the addition of a matrix element to the validator.  The matrix will have a  ‘name’ and a ‘type’ (so it can be called later, and the type is known for future reference). Each matrix will also need a ‘row’ component, and possibly an initialisation value.</p>
+<p>Navigate to <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rnc</span></tt>. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes. Add the following lines to the end of the file (so that it is outside all other brackets in the file):</p>
+<div class="highlight-none"><div class="highlight"><pre>Matrix = element matrix {
+    attribute name { text }
+    , attribute type { text }?
+    , element components { text }
+    , element initialisation {
+        attribute kind { text }?
+    }?
+}
+</pre></div>
+</div>
+<p>Save this file, and then in the terminal navigate to the folder <tt class="docutils literal"><span class="pre">xpdeint/support/</span></tt> and run <tt class="docutils literal"><span class="pre">make</span></tt>. This updates the XML based file <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rng</span></tt>, which is the file the parser uses to validate elements in XMDS2. This file which is  used is in RelaxNG format, but RelaxNG compact is easier to read and edit.</p>
+<p>Commit both <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rnc</span></tt> and <tt class="docutils literal"><span class="pre">xpdeint/support/xpdeint.rng</span></tt> to the code repository.</p>
+</div>
+<div class="section" id="how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment">
+<span id="howtoaddintegrator"></span><span id="index-3"></span><h2>How to introduce a new integrator Stepper into the XMDS2 environment<a class="headerlink" href="#how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment" title="Permalink to this headline">¶</a></h2>
+<img alt="_images/IntroduceNewIntegrationTechnique.png" class="align-right" src="_images/IntroduceNewIntegrationTechnique.png" />
+<p>This is a short guide to adding a new stepper containing a new mathematical technique to XMDS2, which can then be used by to integrate equations. This guide describes the logistics of introducing a new stepper and as such, the code inside the stepper template is outside the scope of this document. The new stepper which will be used in this guide will be called ‘IntegrateMethodStepper’.</p>
+<p>Navigate to the <tt class="docutils literal"><span class="pre">xpdeint/Segments/Integrators</span></tt> directory. Create a file called <tt class="docutils literal"><span class="pre">IntegrateMethodStepper.tmpl</span></tt> in this directory. In this file, implement the new integration algorithm (follow the convention of existing steppers in that folder). In this same folder, open the file named <tt class="docutils literal"><span class="pre">__init__.py</span></tt> and add the followin [...]
+<div class="highlight-none"><div class="highlight"><pre>import IntegrateMethodStepper
+</pre></div>
+</div>
+<p>Navigate up until you are in the <tt class="docutils literal"><span class="pre">xpdeint</span></tt> directory. Open the file <tt class="docutils literal"><span class="pre">XMDS2Parser.py</span></tt>, and ‘find’ the algorithm map (Ctrl+F > algorithmMap works for most text editors). The mnemonic ‘IM’ will be used for our Stepper. If the stepper uses fixed step sizes, then add the following line to the algorithm map:</p>
+<div class="highlight-none"><div class="highlight"><pre>'IM':   (Integrators.FixedStep.FixedStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+</pre></div>
+</div>
+<p>Otherwise, if your stepper is an adaptive Stepper, add the following line:</p>
+<div class="highlight-none"><div class="highlight"><pre>'IM':   (Integrators.AdaptiveStep.AdaptiveStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+</pre></div>
+</div>
+<p>In the terminal, navigate to the <tt class="docutils literal"><span class="pre">xpdeint</span></tt> directory, and run make over the entire directory. ‘IM’ can now be used to specify the new Stepper as your integration algorithm inside your .xmds files, e.g.</p>
+<div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><integrate</span> <span class="na">algorithm=</span><span class="s">"IM"</span> <span class="na">interval=</span><span class="s">"5.0"</span> <span class="na">steps=</span><span class="s">"2000"</span><span class="nt">></span>
+    ...
+<span class="nt"></integrate></span>
+</pre></div>
+</div>
+<span class="target" id="logicalbreakdownparsingprocess"></span></div>
+<div class="section" id="logical-breakdown-of-xmds2-parsing-process">
+<span id="index-4"></span><h2>Logical breakdown of XMDS2 Parsing Process<a class="headerlink" href="#logical-breakdown-of-xmds2-parsing-process" title="Permalink to this headline">¶</a></h2>
+<p>The following information is intended to assist developers in understanding the logical process undertaken by the XMDS2 system when parsing an .xmds file. The documentation was not designed to be exhaustive, but rather to help paint a picture of part of the way XMDS2 works.</p>
+<p>The flowcharts have been created in open source diagram drawing program Dia, and compiled into .png files which are displayed below. This page contains links to the original .dia files, so if you find any error in the information below (or you’d like to extend it, by adding in more information), please update the .dia files and commit them (and their compiled versions) to svn.</p>
+<div class="section" id="overall-process-for-parsing-xml-file-in-xmds2">
+<h3>Overall process for parsing XML file in XMDS2<a class="headerlink" href="#overall-process-for-parsing-xml-file-in-xmds2" title="Permalink to this headline">¶</a></h3>
+<img alt="_images/Overall_Flowchart.png" class="align-center" src="_images/Overall_Flowchart.png" />
+<p>The original .dia file can be downloaded <a class="reference external" href="_images/Overall_Flowchart.dia">here</a>.</p>
+</div>
+<div class="section" id="parser2-py-parses-xml-file-sub-process-3">
+<h3>parser2.py parses XML file (Sub process 3)<a class="headerlink" href="#parser2-py-parses-xml-file-sub-process-3" title="Permalink to this headline">¶</a></h3>
+<img alt="_images/Subprocess3_ParsingXMLFile.png" class="align-center" src="_images/Subprocess3_ParsingXMLFile.png" />
+<p>You can download the original dia file <a class="reference external" href="_images/Subprocess3_ParsingXMLFile.dia">here</a>.</p>
+</div>
+<div class="section" id="pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4">
+<h3>Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)<a class="headerlink" href="#pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4" title="Permalink to this headline">¶</a></h3>
+<img alt="_images/Subprocess3_4_parseXMLDocument.png" class="align-center" src="_images/Subprocess3_4_parseXMLDocument.png" />
+<p>You can download the original dia file <a class="reference external" href="_images/Subprocess3_4_parseXMLDocument.dia">here</a>.</p>
+</div>
+<div class="section" id="parse-top-level-sequence-elements-sub-process-3-4-11">
+<h3>Parse Top Level Sequence elements (Sub process 3.4.11)<a class="headerlink" href="#parse-top-level-sequence-elements-sub-process-3-4-11" title="Permalink to this headline">¶</a></h3>
+<img alt="_images/Subprocess3_4_11_ParseTopLvlSeqElements.png" class="align-center" src="_images/Subprocess3_4_11_ParseTopLvlSeqElements.png" />
+<p>You can download the original dia file <a class="reference external" href="_images/Subprocess3_4_11_ParseTopLvlSeqElements.dia">here</a>.</p>
+</div>
+<div class="section" id="parse-integrate-element-sub-process-3-4-11-2">
+<h3>Parse Integrate Element (Sub process 3.4.11.2)<a class="headerlink" href="#parse-integrate-element-sub-process-3-4-11-2" title="Permalink to this headline">¶</a></h3>
+<img alt="_images/Subprocess3_4_11_2_ParseIntegrateElement.png" class="align-center" src="_images/Subprocess3_4_11_2_ParseIntegrateElement.png" />
+<p>You can download the original dia file <a class="reference external" href="_images/Subprocess3_4_11_2_ParseIntegrateElement.dia">here</a>.</p>
+</div>
 </div>
 <div class="section" id="directory-layout">
-<h2>Directory layout<a class="headerlink" href="#directory-layout" title="Permalink to this headline">¶</a></h2>
+<span id="index-5"></span><h2>Directory layout<a class="headerlink" href="#directory-layout" title="Permalink to this headline">¶</a></h2>
 <div class="section" id="xmds2-s-code-and-templates">
 <h3>XMDS2’s code and templates<a class="headerlink" href="#xmds2-s-code-and-templates" title="Permalink to this headline">¶</a></h3>
 <p>All <tt class="docutils literal"><span class="pre">.tmpl</span></tt> files are Cheetah template files.  These are used to generate C++ code.  These templates are compiled as part of the XMDS2 build process to <tt class="docutils literal"><span class="pre">.py</span></tt> files of the same name.  Do not edit the generated <tt class="docutils literal"><span class="pre">.py</span></tt> files, always edit the <tt class="docutils literal"><span class="pre">.tmpl</span></tt> files and regen [...]
@@ -218,7 +294,17 @@
 <li><a class="reference internal" href="#moment-group-element">moment_group element</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#steps-to-update-xmds-script-validator-xml-schema">Steps to update <tt class="docutils literal"><span class="pre">XMDS</span></tt> script validator (XML schema)</a></li>
+<li><a class="reference internal" href="#xmds-documentation">XMDS Documentation</a></li>
+<li><a class="reference internal" href="#how-to-update-xmds2-script-validator-xml-schema">How to update <tt class="docutils literal"><span class="pre">XMDS2</span></tt> script validator (XML schema)</a></li>
+<li><a class="reference internal" href="#how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment">How to introduce a new integrator Stepper into the XMDS2 environment</a></li>
+<li><a class="reference internal" href="#logical-breakdown-of-xmds2-parsing-process">Logical breakdown of XMDS2 Parsing Process</a><ul>
+<li><a class="reference internal" href="#overall-process-for-parsing-xml-file-in-xmds2">Overall process for parsing XML file in XMDS2</a></li>
+<li><a class="reference internal" href="#parser2-py-parses-xml-file-sub-process-3">parser2.py parses XML file (Sub process 3)</a></li>
+<li><a class="reference internal" href="#pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4">Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)</a></li>
+<li><a class="reference internal" href="#parse-top-level-sequence-elements-sub-process-3-4-11">Parse Top Level Sequence elements (Sub process 3.4.11)</a></li>
+<li><a class="reference internal" href="#parse-integrate-element-sub-process-3-4-11-2">Parse Integrate Element (Sub process 3.4.11.2)</a></li>
+</ul>
+</li>
 <li><a class="reference internal" href="#directory-layout">Directory layout</a><ul>
 <li><a class="reference internal" href="#xmds2-s-code-and-templates">XMDS2’s code and templates</a></li>
 <li><a class="reference internal" href="#support-files">Support files</a></li>
@@ -251,13 +337,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/doctrees/advanced_topics.doctree b/documentation/doctrees/advanced_topics.doctree
index b74da9d..768d8d9 100644
Binary files a/documentation/doctrees/advanced_topics.doctree and b/documentation/doctrees/advanced_topics.doctree differ
diff --git a/documentation/doctrees/bulirschStoer.doctree b/documentation/doctrees/bulirschStoer.doctree
new file mode 100644
index 0000000..ba98274
Binary files /dev/null and b/documentation/doctrees/bulirschStoer.doctree differ
diff --git a/documentation/doctrees/developer.doctree b/documentation/doctrees/developer.doctree
index d35b5b9..16b0b93 100644
Binary files a/documentation/doctrees/developer.doctree and b/documentation/doctrees/developer.doctree differ
diff --git a/documentation/doctrees/documentation_toc.doctree b/documentation/doctrees/documentation_toc.doctree
index 484ebb2..babdfb9 100644
Binary files a/documentation/doctrees/documentation_toc.doctree and b/documentation/doctrees/documentation_toc.doctree differ
diff --git a/documentation/doctrees/environment.pickle b/documentation/doctrees/environment.pickle
index 59b0ff3..419b43a 100644
Binary files a/documentation/doctrees/environment.pickle and b/documentation/doctrees/environment.pickle differ
diff --git a/documentation/doctrees/faq.doctree b/documentation/doctrees/faq.doctree
index c6a8747..808c0b2 100644
Binary files a/documentation/doctrees/faq.doctree and b/documentation/doctrees/faq.doctree differ
diff --git a/documentation/doctrees/index.doctree b/documentation/doctrees/index.doctree
index b9b3762..33e154a 100644
Binary files a/documentation/doctrees/index.doctree and b/documentation/doctrees/index.doctree differ
diff --git a/documentation/doctrees/installation.doctree b/documentation/doctrees/installation.doctree
index 2d58a38..c7245f8 100644
Binary files a/documentation/doctrees/installation.doctree and b/documentation/doctrees/installation.doctree differ
diff --git a/documentation/doctrees/introduction.doctree b/documentation/doctrees/introduction.doctree
index f8da832..bd8b34c 100644
Binary files a/documentation/doctrees/introduction.doctree and b/documentation/doctrees/introduction.doctree differ
diff --git a/documentation/doctrees/licensing.doctree b/documentation/doctrees/licensing.doctree
index 0b59a30..652eccd 100644
Binary files a/documentation/doctrees/licensing.doctree and b/documentation/doctrees/licensing.doctree differ
diff --git a/documentation/doctrees/news.doctree b/documentation/doctrees/news.doctree
index ffddd34..0246d78 100644
Binary files a/documentation/doctrees/news.doctree and b/documentation/doctrees/news.doctree differ
diff --git a/documentation/doctrees/news_content.doctree b/documentation/doctrees/news_content.doctree
new file mode 100644
index 0000000..74038fa
Binary files /dev/null and b/documentation/doctrees/news_content.doctree differ
diff --git a/documentation/doctrees/optimisation_hints.doctree b/documentation/doctrees/optimisation_hints.doctree
index b4a699f..905e2c4 100644
Binary files a/documentation/doctrees/optimisation_hints.doctree and b/documentation/doctrees/optimisation_hints.doctree differ
diff --git a/documentation/doctrees/reference_elements.doctree b/documentation/doctrees/reference_elements.doctree
index 98230a5..9d395c6 100644
Binary files a/documentation/doctrees/reference_elements.doctree and b/documentation/doctrees/reference_elements.doctree differ
diff --git a/documentation/doctrees/reference_index.doctree b/documentation/doctrees/reference_index.doctree
index 70e2246..866b7b9 100644
Binary files a/documentation/doctrees/reference_index.doctree and b/documentation/doctrees/reference_index.doctree differ
diff --git a/documentation/doctrees/reference_installation_and_configuration.doctree b/documentation/doctrees/reference_installation_and_configuration.doctree
index d900121..acfb0e7 100644
Binary files a/documentation/doctrees/reference_installation_and_configuration.doctree and b/documentation/doctrees/reference_installation_and_configuration.doctree differ
diff --git a/documentation/doctrees/reference_schema.doctree b/documentation/doctrees/reference_schema.doctree
index cef0a70..895b331 100644
Binary files a/documentation/doctrees/reference_schema.doctree and b/documentation/doctrees/reference_schema.doctree differ
diff --git a/documentation/doctrees/reference_usefulXMLSyntax.doctree b/documentation/doctrees/reference_usefulXMLSyntax.doctree
index 666efb8..8727a53 100644
Binary files a/documentation/doctrees/reference_usefulXMLSyntax.doctree and b/documentation/doctrees/reference_usefulXMLSyntax.doctree differ
diff --git a/documentation/doctrees/tutorial.doctree b/documentation/doctrees/tutorial.doctree
index 4113525..325d012 100644
Binary files a/documentation/doctrees/tutorial.doctree and b/documentation/doctrees/tutorial.doctree differ
diff --git a/documentation/doctrees/upgrade.doctree b/documentation/doctrees/upgrade.doctree
index 4884623..cecb50d 100644
Binary files a/documentation/doctrees/upgrade.doctree and b/documentation/doctrees/upgrade.doctree differ
diff --git a/documentation/doctrees/worked_examples.doctree b/documentation/doctrees/worked_examples.doctree
index b308922..12a36bf 100644
Binary files a/documentation/doctrees/worked_examples.doctree and b/documentation/doctrees/worked_examples.doctree differ
diff --git a/documentation/doctrees/xsil2graphics2.doctree b/documentation/doctrees/xsil2graphics2.doctree
index 832a899..cfcc35d 100644
Binary files a/documentation/doctrees/xsil2graphics2.doctree and b/documentation/doctrees/xsil2graphics2.doctree differ
diff --git a/documentation/documentation_toc.html b/documentation/documentation_toc.html
index 8afb8b5..0985b08 100644
--- a/documentation/documentation_toc.html
+++ b/documentation/documentation_toc.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Welcome to the documentation for XMDS2! — XMDS2 2.1.4 documentation</title>
+    <title>Welcome to the documentation for XMDS2! — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -72,6 +74,9 @@
 <li class="toctree-l2"><a class="reference internal" href="reference_usefulXMLSyntax.html">Useful XML Syntax</a></li>
 <li class="toctree-l2"><a class="reference internal" href="reference_schema.html">XMDS2 XML Schema</a></li>
 <li class="toctree-l2"><a class="reference internal" href="reference_elements.html">XMDS2 script elements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html">Modified Midpoint Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html#bulirsch-stoer-algorithm">Bulirsch-Stoer Algorithm</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html#error-scaling-behaviour">Error Scaling Behaviour</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="advanced_topics.html">Advanced Topics</a><ul>
@@ -103,12 +108,20 @@
 <li class="toctree-l1"><a class="reference internal" href="xsil2graphics2.html">xsil2graphics2</a></li>
 <li class="toctree-l1"><a class="reference internal" href="developer.html">Developer Documentation</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="developer.html#test-scripts">Test scripts</a></li>
-<li class="toctree-l2"><a class="reference internal" href="developer.html#steps-to-update-xmds-script-validator-xml-schema">Steps to update <tt class="docutils literal"><span class="pre">XMDS</span></tt> script validator (XML schema)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#xmds-documentation">XMDS Documentation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#how-to-update-xmds2-script-validator-xml-schema">How to update <tt class="docutils literal"><span class="pre">XMDS2</span></tt> script validator (XML schema)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment">How to introduce a new integrator Stepper into the XMDS2 environment</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#logical-breakdown-of-xmds2-parsing-process">Logical breakdown of XMDS2 Parsing Process</a></li>
 <li class="toctree-l2"><a class="reference internal" href="developer.html#directory-layout">Directory layout</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a></li>
+<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="licensing.html#gnu-general-public-license">GNU General Public License</a></li>
+<li class="toctree-l2"><a class="reference internal" href="licensing.html#gnu-free-documentation-license">GNU Free Documentation License</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="news.html">News</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
@@ -152,13 +165,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/faq.html b/documentation/faq.html
index 927c875..207984d 100644
--- a/documentation/faq.html
+++ b/documentation/faq.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Frequently Asked Questions — XMDS2 2.1.4 documentation</title>
+    <title>Frequently Asked Questions — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,7 @@
           <div class="body">
             
   <div class="section" id="frequently-asked-questions">
-<span id="faq"></span><h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1>
+<span id="faq"></span><span id="index-0"></span><h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1>
 <div class="section" id="xmds-scripts-look-complicated-how-do-i-start">
 <h2>XMDS scripts look complicated! How do I start?<a class="headerlink" href="#xmds-scripts-look-complicated-how-do-i-start" title="Permalink to this headline">¶</a></h2>
 <p>If you’re unfamiliar with XMDS2, writing a script from scratch might seem difficult. In most cases, however, the best approach is to take an existing script and modify it for your needs. At the most basic level, you can simply take a script from the /examples directory that is similar to what you want to do, change the name of the integration variable(s) and replace the line describing the differential equation to use your DE instead. That’s all you need to do, and will en [...]
@@ -56,26 +58,26 @@
 <p>You should also feel free to email questions to the XMDS users’ mailing list at <a class="reference external" href="mailto:xmds-users%40lists.sourceforge.net">xmds-users<span>@</span>lists<span>.</span>sourceforge<span>.</span>net</a>, where the developers and other users can assist you. You can join the mailing list by going to <a class="reference external" href="http://sourceforge.net/projects/xmds/">http://sourceforge.net/projects/xmds/</a> and [...]
 </div>
 <div class="section" id="how-should-i-cite-xmds2">
-<h2>How should I cite XMDS2?<a class="headerlink" href="#how-should-i-cite-xmds2" title="Permalink to this headline">¶</a></h2>
+<span id="index-1"></span><h2>How should I cite XMDS2?<a class="headerlink" href="#how-should-i-cite-xmds2" title="Permalink to this headline">¶</a></h2>
 <p>If you publish work that has involved XMDS2, please cite it as: <a class="reference external" href="http://dx.doi.org/10.1016/j.cpc.2012.08.016">Comput. Phys. Commun. 184, 201-208 (2013)</a>.</p>
 </div>
 <div class="section" id="i-think-i-found-a-bug-where-should-i-report-it">
-<h2>I think I found a bug! Where should I report it?<a class="headerlink" href="#i-think-i-found-a-bug-where-should-i-report-it" title="Permalink to this headline">¶</a></h2>
+<span id="index-2"></span><h2>I think I found a bug! Where should I report it?<a class="headerlink" href="#i-think-i-found-a-bug-where-should-i-report-it" title="Permalink to this headline">¶</a></h2>
 <p>Please report bugs to the developer mailing list at <a class="reference external" href="mailto:xmds-devel%40lists.sourceforge.net">xmds-devel<span>@</span>lists<span>.</span>sourceforge<span>.</span>net</a>. In your email, please include a description of the problem and attach the XMDS2 script that triggers the bug.</p>
 </div>
 <div class="section" id="how-do-i-put-time-dependence-into-my-vectors">
-<h2>How do I put time dependence into my vectors?<a class="headerlink" href="#how-do-i-put-time-dependence-into-my-vectors" title="Permalink to this headline">¶</a></h2>
+<span id="index-3"></span><h2>How do I put time dependence into my vectors?<a class="headerlink" href="#how-do-i-put-time-dependence-into-my-vectors" title="Permalink to this headline">¶</a></h2>
 <p>Standard vectors can’t have time dependence (or, more accurately, depend on the <tt class="docutils literal"><span class="pre">propagation_dimension</span></tt> variable), but computed vectors can. So, for example, if you have set your <tt class="docutils literal"><span class="pre">propagation_dimension</span></tt> as “t”, you can simply use the variable “t” in your computed vector and it will work.</p>
 <p>Alternatively, you can explicitly use the <tt class="docutils literal"><span class="pre">propagation_dimension</span></tt> variable in your differential equation inside the <tt class="docutils literal"><span class="pre"><operators></span></tt> block.</p>
 </div>
 <div class="section" id="can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time">
-<h2>Can I specify the range of my domain and number of grid points at run-time?<a class="headerlink" href="#can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time" title="Permalink to this headline">¶</a></h2>
+<span id="index-4"></span><h2>Can I specify the range of my domain and number of grid points at run-time?<a class="headerlink" href="#can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time" title="Permalink to this headline">¶</a></h2>
 <p>Yes, you can. In your script, specify the domain and number of grid points as arguments to be passed in at run-time, use those variables in your <tt class="docutils literal"><span class="pre"><geometry></span></tt> block rather than explicitly specifying them, and use the <tt class="docutils literal"><span class="pre"><validation</span> <span class="pre">kind="run-time"</span> <span class="pre">/></span></tt> feature. See the <a class="reference internal" href="r [...]
 <p>While the domain can always be specified in this way, specifying the lattice size at run-time is currently only allowed with the following transforms: ‘dct’, ‘dst’, ‘dft’ and ‘none’ (see <a class="reference internal" href="reference_elements.html#validation"><em>Transforms</em></a> in the Reference section).</p>
 <p>Also note that for some multi-dimensional spaces using different transforms, XMDS2 will sometimes optimise the code it generates based on the relative sizes of the dimensions. If one or more of the lattices are specified at run-time it is unable to do this and will have to make guesses. In some situations this may result in slightly slower code.</p>
 </div>
 <div class="section" id="when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators">
-<h2>When can I use IP operators (and why should I) and when must I use EX operators?<a class="headerlink" href="#when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators" title="Permalink to this headline">¶</a></h2>
+<span id="index-5"></span><h2>When can I use IP operators (and why should I) and when must I use EX operators?<a class="headerlink" href="#when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators" title="Permalink to this headline">¶</a></h2>
 <p>An <a class="reference internal" href="reference_elements.html#operatornameselement"><em><operator></em></a> that specifies named operators to be used in integration equations can have the <tt class="docutils literal"><span class="pre">kind="IP"</span></tt> or <tt class="docutils literal"><span class="pre">kind="EX"</span></tt> attribute, standing for ‘interaction picture’ and ‘explicit’ operators respectively.  Explicit operators can  [...]
 <p>Some explanation is in order.  The IP algorithm applies the operator separately to the rest of the evolution.  The reason this can be so effective is that the separate evolution can be performed exactly.  The solution of the equation <span class="math">\(\frac{d \psi}{dt} = L \psi\)</span> is <span class="math">\(\psi(t+\Delta t) = exp(L \Delta t) \psi(t)\)</span> for arbitrarily large timestep <span class="math">\(\Delta t\)</span>.  For a diagonal linear <tt class="docutils literal" [...]
 <p>Therefore, the limitations of IP operators themselves means that they can only be applied to to named components of one of the integration vectors, and not functions of those components.  Furthermore, an IP operator acting on a component must only be used in the derivative for that particular component.  Secondly, due to the implementation of IP operators in XMDS2, it is not safe to use them in comments, or in conjunction with declared variables.  It is also not safe to multiply or di [...]
@@ -133,13 +135,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/genindex.html b/documentation/genindex.html
index d4bb2e7..0f0a06b 100644
--- a/documentation/genindex.html
+++ b/documentation/genindex.html
@@ -1,4 +1,7 @@
 
+
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -7,15 +10,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Index — XMDS2 2.1.4 documentation</title>
+    <title>Index — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -26,7 +29,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -35,7 +38,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -48,8 +51,982 @@
 <h1 id="index">Index</h1>
 
 <div class="genindex-jumpbox">
+ <a href="#_"><strong>_</strong></a>
+ | <a href="#A"><strong>A</strong></a>
+ | <a href="#B"><strong>B</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#E"><strong>E</strong></a>
+ | <a href="#F"><strong>F</strong></a>
+ | <a href="#G"><strong>G</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#K"><strong>K</strong></a>
+ | <a href="#L"><strong>L</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#O"><strong>O</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ | <a href="#V"><strong>V</strong></a>
+ | <a href="#X"><strong>X</strong></a>
  
 </div>
+<h2 id="_">_</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-93">_dx</a>
+  </dt>
+
+      
+  <dt><a href="reference_elements.html#index-93">_lattice</a>
+  </dt>
+
+      
+  <dt><a href="reference_elements.html#index-93">_max</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-93">_min</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-12">_SAMPLE_COMPLEX</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="developer.html#index-3">Adding an integrator</a>
+  </dt>
+
+      
+  <dt><a href="advanced_topics.html#index-0">Advanced topics</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-14">Aliases</a>, <a href="reference_elements.html#index-29">[1]</a>, <a href="reference_elements.html#index-32">[2]</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-40">Boundary conditions</a>, <a href="reference_elements.html#index-81">[1]</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-40">(Bessel)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-36">(DCT)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-34">(DFT)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-38">(DST)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="faq.html#index-2">Bug reports</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="bulirschStoer.html#index-1">Bulirsch-Stoer algorithm</a>
+  </dt>
+
+      
+  <dt><a href="bulirschStoer.html#index-2">Bulirsch-Stoer error scaling</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="faq.html#index-1">Citing XMDS2</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-11">Command line arguments</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-13">Computed vectors</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="advanced_topics.html#index-2">Convolutions and Fourier transforms</a>
+  </dt>
+
+      
+  <dt><a href="reference_elements.html#index-78">Cross-propagation</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="advanced_topics.html#index-4">Dimension aliases</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-9">Distributed MPI</a>
+  </dt>
+
+      
+  <dt><a href="developer.html#index-1">Documentation format</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-21">Double precision</a>
+  </dt>
+
+      
+  <dt>
+    Driver examples
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="worked_examples.html#index-10">distributed-mpi</a>
+  </dt>
+
+        
+  <dt><a href="worked_examples.html#index-7">mpi-multi-path</a>
+  </dt>
+
+        
+  <dt><a href="worked_examples.html#index-3">multi-path</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    Drivers
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-23">adaptive-mpi-multi-path"</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-23">distributed-mpi"</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-23">mpi-multi-path"</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-23">multi-path"</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-76">EX operators</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-0">Examples</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="xsil2graphics2.html#index-0">Exporting data</a>, <a href="tutorial.html#index-1">[1]</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="faq.html#index-0">FAQ</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-5">Fibre noise</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="advanced_topics.html#index-3">Geometry matching mode - loose</a>
+  </dt>
+
+      
+  <dt><a href="licensing.html#index-2">GNU Free Documentation License</a>
+  </dt>
+
+      
+  <dt><a href="licensing.html#index-1">GNU General Public License</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="licensing.html#index-1">GPL</a>
+  </dt>
+
+      
+  <dt><a href="faq.html#index-4">Grid specification at run-time</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="advanced_topics.html#index-1">Importing data</a>
+  </dt>
+
+      
+  <dt><a href="installation.html#index-1">Installers - linux</a>
+  </dt>
+
+      
+  <dt><a href="installation.html#index-2">Installers - Max OS X</a>
+  </dt>
+
+      
+  <dt><a href="installation.html#index-3">Installing via source</a>
+  </dt>
+
+      
+  <dt><a href="installation.html#index-0">Installing XMDS2</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-8">Integer dimensions</a>
+  </dt>
+
+      
+  <dt>
+    Integration algorithms
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-85">Richardson extrapolation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-83">Runge-Kutta (RK)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-84">adaptive Runge-Kutta (ARK)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-68">all</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-82">semi-implicit (SI)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference_elements.html#index-76">IP operators</a>
+  </dt>
+
+      
+  <dt><a href="faq.html#index-5">IP versus EX operators</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="K">K</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-2">Kubo oscillator</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="licensing.html#index-0">Licensing</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="bulirschStoer.html#index-0">Modified midpoint method</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-9">MPI</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-50">non-local vector access</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-6">Multi-path MPI</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="news.html#index-0">News</a>
+  </dt>
+
+      
+  <dt>
+    Noise
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-60">gaussian</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-63">jump</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-62">poissonian</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-59">uniform</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-61">wiener</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="worked_examples.html#index-4">Noise vector example</a>
+  </dt>
+
+      
+  <dt><a href="worked_examples.html#index-1">Nonlinear Schroedinger equation</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="O">O</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-70">Operators</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-75">EX</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-75">IP</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-21">Precision</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-0">Reference</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-90">Sampling</a>
+  </dt>
+
+      
+  <dt><a href="reference_elements.html#index-0">Script elements</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="reference_elements.html#index-21">Single precision</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="developer.html#index-0">Test scripts</a>
+  </dt>
+
+      
+  <dt><a href="faq.html#index-3">Time dependence in vectors</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    Transforms
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-39">bessel</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-35">dct</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-33">dft</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-37">dst</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-42">hermite-gauss</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-41">spherical-bessel</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="tutorial.html#index-0">Tutorial</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="V">V</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    Vectors
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-29">non-local access</a>, <a href="reference_elements.html#index-49">[1]</a>, <a href="reference_elements.html#index-50">[2]</a>, <a href="reference_elements.html#index-72">[3]</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="X">X</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="developer.html#index-4">XMDS2 parsing process</a>
+  </dt>
+
+      
+  <dt><a href="developer.html#index-5">XMDS2 project directory layout</a>
+  </dt>
+
+      
+  <dt><a href="reference_schema.html#index-0">XMDS2 XML schema</a>
+  </dt>
+
+      
+  <dt>
+    XML element attributes
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-68">algorithm</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-29">aliases</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-55">basis (dependencies element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-92">basis (sampling_group element)</a>, <a href="reference_elements.html#index-93">[1]</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-77">constant</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-79">cross-propagation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-64">cycles</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-8">default_value</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-57">dimensions (computed vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">dimensions (noise vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-28">domain</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-87">filename (breakpoint element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-89">filename (output element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-87">format (breakpoint element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-89">format (output element)</a>, <a href="reference_elements.html#index-89">[1]</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-53">geometry_matching_mode</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">initial_basis (noise vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-47">initial_basis (vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-92">initial_sample</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-68">interval</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-22">kind</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-80">kind (boundary_condition element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-52">kind (initialisation element)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">kind (noise vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-74">kind (operator)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-28">lattice</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-43">length_scale</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">method</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-8">name</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-57">name (computed vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-27">name (dimension)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-23">name (driver)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-66">name (filter)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">name (noise vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-45">name (vector)</a>, <a href="reference_elements.html#index-48">[1]</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-18">plan</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">seed</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-68">steps</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-68">tolerance</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-31">transform</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-8">type</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-57">type (computed vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-27">type (dimension)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">type (noise vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-45">type (vector)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-30">volume_prefactor</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-86">where</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference_elements.html#index-0">XML Elements</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    XML elements
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="reference_elements.html#index-7">argument</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-6">arguments</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-3">author</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-9">autovectorise</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-10">benchmark</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-11">bing</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-80">boundary_conditions</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-87">breakpoint</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-12">cflags</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-13">chunked_output</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-46">components</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-56">computed_vector</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-54">dependencies</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-4">description</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-14">diagnostics</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-27">dimension</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-23">driver</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-15">error_check</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-57">evaluation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-5">features</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-17">fftw</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-51">filename</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-65">filter</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-86">filters</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-24">geometry</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-19">globals</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-16">halt_non_finite</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-48">initialisation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-67">integrate</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-71">integration_vectors</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-2">name (of simulation)</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-58">noise_vector</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-20">openmp</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-73">operator</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-70">operators</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-88">output</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-21">precision</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-25">propagation_dimension</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-69">samples</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-91">sampling_group</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-64">sequence</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-1">simulation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-26">transverse_dimensions</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-22">validation</a>
+  </dt>
+
+        
+  <dt><a href="reference_elements.html#index-44">vector</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="reference_schema.html#index-0">XML schema</a>
+  </dt>
+
+      
+  <dt><a href="developer.html#index-2">XML schema updates</a>
+  </dt>
+
+      
+  <dt><a href="xsil2graphics2.html#index-0">xsil2graphics2</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
 
 
           </div>
@@ -83,13 +1060,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/index.html b/documentation/index.html
index afe0423..8e74ded 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Welcome to XMDS2! — XMDS2 2.1.4 documentation</title>
+    <title>Welcome to XMDS2! — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="#" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="#" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="#">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="#">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -52,7 +54,24 @@
 <p>To get a flavour of what XMDS2 can do, take a look at our <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a>, then take a look at our comprehensive  <a class="reference internal" href="documentation_toc.html#documentation"><em>documentation</em></a>.  Automated installers are available for Linux and Mac OS X, refer to our <a class="reference internal" href="installation.html#installation"><em>installation instructions</em></a> for de [...]
 </div>
 <div class="section" id="news">
-<span id="id1"></span><h2>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h2>
+<h2>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
+<h3>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h3>
+<p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
+<ul class="simple">
+<li>Separated IP operators.  This is a significant performance optimisation (~30%) for problems with two or more dimensions.  It requires separating IP operators of the form “f(kx) + g(ky)” (e.g. kinetic energy for quantum physics) into <em>two</em> IP operators and explicitly setting the dimensions=”x” and dimensions=”y” attributes on each.  See <a class="reference internal" href="optimisation_hints.html#optimisationhints"><em>Optimisation hints</em>< [...]
+<li>Significant speed optimisations for adaptive integrators with IP operators (past IP operator calculations are re-used if the time-step hasn’t changed).</li>
+<li>The “constant” attribute for IP/EX operators is now unnecessary and considered advanced usage.  If you don’t know whether to specify constant=”yes” or constant=”no”, don’t specify either.</li>
+<li>The xsil2graphics2 data exporter now supports Matlab, Octave, Mathematica and Python in all output formats, as well as R (HDF5 only).  The Matlab/Octave scripts are now identical.  A script generated for one will work for the other.</li>
+<li>Bessel-Neumann transforms have been implemented.  Set transform=”bessel-neumann” if you want a Bessel (Hankel) transform but have zero derivative at the boundary (Neumann boundary conditions) instead of zero function value (Dirichlet boundary conditions).  If you don’t care about your boundary condition, stick with the “bessel” transform.</li>
+<li>A Bulirisch-Stoer integrator.  This can be useful for problems which are very smooth as you can use an arbitrarily high order algorithm.  Specify algorithm=”RE” and extrapolations=”5” to have a 10th order integrator.  Currently this is fixed-step only.</li>
+<li>“adaptive-mpi-multipath” driver.  This implements a load scheduler that better spreads the work across different CPUs when different paths can take very different amounts of time. Also useful in heterogeneous clusters.</li>
+<li>XMDS2 is currently undergoing acceptance into Debian linux and will soon be able to be installed via the package manager. In the meantime you can find it in the private APT repository at <a class="reference external" href="http://xmds.laboissiere.net">http://xmds.laboissiere.net</a>.</li>
+<li>A number of bug fixes.</li>
+<li>Expanded and improved documentation.</li>
+</ul>
+<p>Many thanks to all who contributed to this release!</p>
+</div>
 <div class="section" id="xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">
 <h3>XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)<a class="headerlink" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013" title="Permalink to this headline">¶</a></h3>
 <p>The XMDS 2.1.4 update contains many new improvements and bugfixes:</p>
@@ -160,6 +179,7 @@
 <li><a class="reference internal" href="#">Welcome to XMDS2!</a><ul>
 <li><a class="reference internal" href="#getting-started">Getting Started</a></li>
 <li><a class="reference internal" href="#news">News</a><ul>
+<li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
@@ -194,13 +214,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="#">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="#">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/installation.html b/documentation/installation.html
index 041b744..7fc03c8 100644
--- a/documentation/installation.html
+++ b/documentation/installation.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Installation — XMDS2 2.1.4 documentation</title>
+    <title>Installation — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,11 +46,12 @@
           <div class="body">
             
   <div class="section" id="installation">
-<span id="id1"></span><h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
+<span id="index-0"></span><span id="id1"></span><h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
 <p><strong>XMDS2</strong> can be installed on any unix-like system including Linux, Tru64, and Mac OS X.  It requires a C++ compiler, python, and several installed packages.  Many of these packages are optional, but a good idea to obtain full functionality.</p>
 <div class="section" id="installers">
 <h2>Installers<a class="headerlink" href="#installers" title="Permalink to this headline">¶</a></h2>
-<p>The easiest way to get started is with an installer.  If we don’t have an installer for your system, follow the <a class="reference internal" href="#manualinstallation"><em>manual installation</em></a> instructions.</p>
+<p>If you are using Debian GNU/Linux, XMDS2 will eventually be available in the Debian “jessie” distribution.  In the meanwhile, a temporary APT repository has been set up, which works for both the current stable (a.k.a “wheezy”) and testing (a.k.a. “jessie”) distributions.  For using this repository, follow the instructions at <a class="reference external" href="http://xmds.laboissiere.net">http://xmds.laboissiere.net</a>.</p>
+<p>If you’re not using Debian, the easiest way to get started is with an installer.  If we don’t have an installer for your system, follow the <a class="reference internal" href="#manualinstallation"><em>manual installation</em></a> instructions.</p>
 <table border="1" class="docutils">
 <colgroup>
 <col width="60%" />
@@ -73,7 +76,7 @@
 <p>If you have one of the supported operating systems listed above, but you find the installer doesn’t work for you, please let us know by emailing xmds-devel <at> lists.sourceforge.net. If you’d like to tweak the linux installer to work on a distribution we haven’t tested, we’d love you to do that and let us know!</p>
 </div>
 <div class="section" id="linux-installer-instructions">
-<span id="linux-installation"></span><h2>Linux installer instructions<a class="headerlink" href="#linux-installer-instructions" title="Permalink to this headline">¶</a></h2>
+<span id="linux-installation"></span><span id="index-1"></span><h2>Linux installer instructions<a class="headerlink" href="#linux-installer-instructions" title="Permalink to this headline">¶</a></h2>
 <p>The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: <a class="reference external" href="http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh">http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh</a></p>
 <p>Once you have downloaded it, make the installer executable and run it by typing the following into a terminal:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre>chmod u+x linux_installer.sh
@@ -90,7 +93,7 @@
 <p>Once XMDS2 has been installed, you can run it from the terminal by typing <tt class="docutils literal"><span class="pre">xmds2</span></tt>. See the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a> for next steps.</p>
 </div>
 <div class="section" id="mac-os-x-installation">
-<span id="mac-installation"></span><h2>Mac OS X Installation<a class="headerlink" href="#mac-os-x-installation" title="Permalink to this headline">¶</a></h2>
+<span id="mac-installation"></span><span id="index-2"></span><h2>Mac OS X Installation<a class="headerlink" href="#mac-os-x-installation" title="Permalink to this headline">¶</a></h2>
 <div class="section" id="download">
 <h3>Download<a class="headerlink" href="#download" title="Permalink to this headline">¶</a></h3>
 <p>Mac OS X 10.6 (Snow Leopard) or later XMDS 2 installer: <a class="reference external" href="http://sourceforge.net/projects/xmds/files/">http://sourceforge.net/projects/xmds/files/</a></p>
@@ -105,7 +108,7 @@
 </div>
 </div>
 <div class="section" id="manual-installation-from-source">
-<span id="manualinstallation"></span><h2>Manual installation from source<a class="headerlink" href="#manual-installation-from-source" title="Permalink to this headline">¶</a></h2>
+<span id="manualinstallation"></span><span id="index-3"></span><h2>Manual installation from source<a class="headerlink" href="#manual-installation-from-source" title="Permalink to this headline">¶</a></h2>
 <p>This installation guide will take you through a typical full install step by step. A large part of this procedure is obtaining and installing other libraries that XMDS2 requires, before installing XMDS2 itself.</p>
 <p>While the instructions below detail these packages individually, if you have administrative privileges (or can request packages from your administrator) and if you are using an Ubuntu, Debian, Fedora or Red Hat linux distribution, you can install all required and optional dependencies (but not XMDS2 itself) via</p>
 <p>Ubuntu / Debian:</p>
@@ -262,7 +265,7 @@ After downloading the source, execute <tt class="docutils literal"><span class="
 </div></blockquote>
 </li>
 <li><dl class="first docutils">
-<dt>Install XMDS2 into your python path by running (in the xmds-2.1.4/ directory):</dt>
+<dt>Install XMDS2 into your python path by running (in the xmds-2.2.0/ directory):</dt>
 <dd><p class="first"><tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">./setup.py</span> <span class="pre">develop</span></tt></p>
 <p>If you want to install it into your home directory, type <tt class="docutils literal"><span class="pre">./setup.py</span> <span class="pre">develop</span> <span class="pre">--prefix=~</span></tt></p>
 <p>This step requires access to the net, as it downloads any dependent packages.  If you are behind a firewall, you may need to set your HTTP_PROXY environment variable in order to do this.</p>
@@ -270,13 +273,13 @@ After downloading the source, execute <tt class="docutils literal"><span class="
 <li><dl class="first docutils">
 <dt>Developer only instructions:</dt>
 <dd><p class="first last">The Cheetah templates (*.tmpl) must be compiled into python.
-To do this, run <tt class="docutils literal"><span class="pre">make</span></tt> in the xmds-2.1.4/ directory.</p>
+To do this, run <tt class="docutils literal"><span class="pre">make</span></tt> in the xmds-2.2.0/ directory.</p>
 </dd>
 </dl>
 </li>
 <li><dl class="first docutils">
 <dt>Developer-only instructions:</dt>
-<dd><p class="first last">If you have ‘numpy’ installed, test XMDS2 by typing <tt class="docutils literal"><span class="pre">./run_tests.py</span></tt> in the xmds-2.1.4/ directory.
+<dd><p class="first last">If you have ‘numpy’ installed, test XMDS2 by typing <tt class="docutils literal"><span class="pre">./run_tests.py</span></tt> in the xmds-2.2.0/ directory.
 The package ‘numpy’ is one of the optional packages, with installation instructions below.</p>
 </dd>
 </dl>
@@ -285,9 +288,9 @@ The package ‘numpy’ is one of the optional packages, with installati
 <dt>Developer-only instructions:</dt>
 <dd><p class="first">To build the user documentation, you first need to install sphinx, either via your package manager or:
 <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">easy_install</span> <span class="pre">Sphinx</span></tt></p>
-<p>Then, to build the documentation, in the xmds-2.1.4/admin/userdoc-source/ directory run: <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt></p>
+<p>Then, to build the documentation, in the xmds-2.2.0/admin/userdoc-source/ directory run: <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt></p>
 <p>If this results in an error, you may need to run <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">./setup.py</span> <span class="pre">develop</span></tt></p>
-<p class="last">The generated html documentation will then be found at xmds-2.1.4/documentation/index.html</p>
+<p class="last">The generated html documentation will then be found at xmds-2.2.0/documentation/index.html</p>
 </dd>
 </dl>
 </li>
@@ -307,7 +310,7 @@ The package ‘numpy’ is one of the optional packages, with installati
 </div></blockquote>
 </li>
 </ol>
-<p><strong>Congratulations!</strong> You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the “xmds-2.1.4/examples” directory, and follow the worked examples in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a> and <a class="reference internal" href="worked_examples.html#workedexamples"><em>Worked Examples</em></a>.</p>
+<p><strong>Congratulations!</strong> You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the “xmds-2.2.0/examples” directory, and follow the worked examples in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a> and <a class="reference internal" href="worked_examples.html#workedexamples"><em>Worked Examples</em></a>.</p>
 </div>
 </div>
 
@@ -358,13 +361,13 @@ The package ‘numpy’ is one of the optional packages, with installati
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/introduction.html b/documentation/introduction.html
index 0f602ee..3d2b5f2 100644
--- a/documentation/introduction.html
+++ b/documentation/introduction.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Introduction — XMDS2 2.1.4 documentation</title>
+    <title>Introduction — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -102,13 +104,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/latex/IntroduceNewElement.png b/documentation/latex/IntroduceNewElement.png
new file mode 100644
index 0000000..db55dde
Binary files /dev/null and b/documentation/latex/IntroduceNewElement.png differ
diff --git a/documentation/latex/IntroduceNewIntegrationTechnique.png b/documentation/latex/IntroduceNewIntegrationTechnique.png
new file mode 100644
index 0000000..9a2d64a
Binary files /dev/null and b/documentation/latex/IntroduceNewIntegrationTechnique.png differ
diff --git a/documentation/latex/Makefile b/documentation/latex/Makefile
index 6b87ad8..76e7c3e 100644
--- a/documentation/latex/Makefile
+++ b/documentation/latex/Makefile
@@ -16,11 +16,11 @@ all-ps: all-dvi
 	for f in *.dvi; do dvips $$f; done
 
 all-pdf-ja:
-	for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
+	for f in *.pdf *.png *.gif *.jpg *.jpeg; do ebb $$f; done
 	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
 	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
 	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
-	-for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
+	for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
 	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
 	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
 	for f in *.dvi; do dvipdfmx $$f; done
diff --git a/documentation/latex/Overall_Flowchart.png b/documentation/latex/Overall_Flowchart.png
new file mode 100644
index 0000000..02d52b3
Binary files /dev/null and b/documentation/latex/Overall_Flowchart.png differ
diff --git a/documentation/latex/Subprocess3_4_11_2_ParseIntegrateElement.png b/documentation/latex/Subprocess3_4_11_2_ParseIntegrateElement.png
new file mode 100644
index 0000000..6516377
Binary files /dev/null and b/documentation/latex/Subprocess3_4_11_2_ParseIntegrateElement.png differ
diff --git a/documentation/latex/Subprocess3_4_11_ParseTopLvlSeqElements.png b/documentation/latex/Subprocess3_4_11_ParseTopLvlSeqElements.png
new file mode 100644
index 0000000..b9a6181
Binary files /dev/null and b/documentation/latex/Subprocess3_4_11_ParseTopLvlSeqElements.png differ
diff --git a/documentation/latex/Subprocess3_4_parseXMLDocument.png b/documentation/latex/Subprocess3_4_parseXMLDocument.png
new file mode 100644
index 0000000..be02807
Binary files /dev/null and b/documentation/latex/Subprocess3_4_parseXMLDocument.png differ
diff --git a/documentation/latex/Subprocess3_ParsingXMLFile.png b/documentation/latex/Subprocess3_ParsingXMLFile.png
new file mode 100644
index 0000000..b0ce0fb
Binary files /dev/null and b/documentation/latex/Subprocess3_ParsingXMLFile.png differ
diff --git a/documentation/latex/error_scaling.png b/documentation/latex/error_scaling.png
new file mode 100644
index 0000000..3af9e16
Binary files /dev/null and b/documentation/latex/error_scaling.png differ
diff --git a/documentation/latex/richardsonExtrapolation.png b/documentation/latex/richardsonExtrapolation.png
new file mode 100644
index 0000000..b72345b
Binary files /dev/null and b/documentation/latex/richardsonExtrapolation.png differ
diff --git a/documentation/latex/sphinx.sty b/documentation/latex/sphinx.sty
index 9b083cc..08adec9 100644
--- a/documentation/latex/sphinx.sty
+++ b/documentation/latex/sphinx.sty
@@ -8,9 +8,8 @@
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)]
 
-\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}}
-
 \RequirePackage{textcomp}
+\RequirePackage{fancyhdr}
 \RequirePackage{fancybox}
 \RequirePackage{titlesec}
 \RequirePackage{tabulary}
@@ -46,13 +45,6 @@
 %\renewcommand{\paperwidth}{8.5in}   % typical squarish manual
 %\renewcommand{\paperwidth}{7in}     % O'Reilly ``Programmming Python''
 
-% use pdfoutput for pTeX and dvipdfmx
-\ifx\kanjiskip\undefined\else
-  \ifx\Gin at driver{dvipdfmx.def}\undefined\else
-    \newcount\pdfoutput\pdfoutput=0
-  \fi
-\fi
-
 % For graphicx, check if we are compiling under latex or pdflatex.
 \ifx\pdftexversion\undefined
   \usepackage{graphicx}
@@ -102,7 +94,8 @@
 \sloppy
 \hbadness = 5000                % don't print trivial gripes
 
-\pagestyle{empty}               % start this way
+\pagestyle{empty}               % start this way; change for
+\pagenumbering{roman}           % ToC & chapters
 
 % Use this to set the font family for headers and other decor:
 \newcommand{\py at HeaderFamily}{\sffamily\bfseries}
@@ -118,10 +111,6 @@
     \fancyhead[LE,RO]{{\py at HeaderFamily \@title, \py at release}}
     \renewcommand{\headrulewidth}{0.4pt}
     \renewcommand{\footrulewidth}{0.4pt}
-    % define chaptermark with \@chappos when \@chappos is available for Japanese
-    \ifx\@chappos\undefined\else
-      \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}
-    \fi
   }
   % Update the plain style so we get the page number & footer line,
   % but not a chapter or section title.  This is to keep the first
@@ -136,7 +125,7 @@
 
 % Some custom font markup commands.
 %
-\newcommand{\strong}[1]{{\textbf{#1}}}
+\newcommand{\strong}[1]{{\bf #1}}
 \newcommand{\code}[1]{\texttt{#1}}
 \newcommand{\bfcode}[1]{\code{\bfseries#1}}
 \newcommand{\email}[1]{\textsf{#1}}
@@ -254,7 +243,7 @@
   \addtolength{\py at noticelength}{-2\fboxsep}
   \addtolength{\py at noticelength}{-2\fboxrule}
   %\setlength{\shadowsize}{3pt}
-  \noindent\Sbox
+  \Sbox
   \minipage{\py at noticelength}
 }
 \newcommand{\py at endheavybox}{
@@ -265,12 +254,12 @@
 
 \newcommand{\py at lightbox}{{%
   \setlength\parskip{0pt}\par
-  \noindent\rule[0ex]{\linewidth}{0.5pt}%
-  \par\noindent\vspace{-0.5ex}%
+  \rule[0ex]{\linewidth}{0.5pt}%
+  \par\vspace{-0.5ex}%
   }}
 \newcommand{\py at endlightbox}{{%
   \setlength{\parskip}{0pt}%
-  \par\noindent\rule[0.5ex]{\linewidth}{0.5pt}%
+  \par\rule[0.5ex]{\linewidth}{0.5pt}%
   \par\vspace{-0.5ex}%
   }}
 
@@ -332,7 +321,7 @@
 \@ifundefined{ChTitleVar}{}{
   \ChNameVar{\raggedleft\normalsize\py at HeaderFamily}
   \ChNumVar{\raggedleft \bfseries\Large\py at HeaderFamily}
-  \ChTitleVar{\raggedleft \textrm{\Huge\py at HeaderFamily}}
+  \ChTitleVar{\raggedleft \rm\Huge\py at HeaderFamily}
   % This creates chapter heads without the leading \vspace*{}:
   \def\@makechapterhead#1{%
     {\parindent \z@ \raggedright \normalfont
@@ -412,20 +401,23 @@
   \fi%
 }
 
-% to make pdf with correct encoded bookmarks in Japanese
-% this should precede the hyperref package
-\ifx\kanjiskip\undefined\else
-  \usepackage{atbegshi}
-  \ifx\ucs\undefined
-    \ifnum 42146=\euc"A4A2
-      \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
-    \else
-      \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}
-    \fi
-  \else
-    \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}}
-  \fi
-\fi
+
+% Fix the index environment to add an entry to the Table of
+% Contents; this is much nicer than just having to jump to the end of the book
+% and flip around, especially with multiple indexes.
+%
+% A similiar fix must be done to the bibliography environment, although
+% dependant on document class. In particular, the '\addcontentsline' command
+% should use 'chapter' for a report and 'section' for an article.
+% See sphinxmanual.cls and sphinxhowto.cls for specific fixes.
+%
+\let\py at OldTheindex=\theindex
+\renewcommand{\theindex}{
+  \cleardoublepage
+  \phantomsection
+  \py at OldTheindex
+  \addcontentsline{toc}{chapter}{\indexname}
+}
 
 % Include hyperref last.
 \RequirePackage[colorlinks,breaklinks,
@@ -484,37 +476,3 @@
     \@gobble
 }
 \def\FN at sf@gobble at twobracket[#1]#2{}
-
-% adjust the margins for footer,
-% this works with the jsclasses only (Japanese standard document classes)
-\ifx\@jsc at uplatextrue\undefined\else
-  \hypersetup{setpagesize=false}
-  \setlength\footskip{2\baselineskip}
-  \addtolength{\textheight}{-2\baselineskip}
-\fi
-
-% fix the double index and bibliography on the table of contents
-% in jsclasses (Japanese standard document classes)
-\ifx\@jsc at uplatextrue\undefined\else
-  \renewcommand{\theindex}{
-    \cleardoublepage
-    \phantomsection
-    \py at OldTheindex
-  }
-  \renewcommand{\thebibliography}[1]{
-    \cleardoublepage
-    \phantomsection
-    \py at OldThebibliography{1}
-  }
-\fi
-
-% do not use \@chappos in Appendix in pTeX
-\ifx\kanjiskip\undefined\else
-  \renewcommand{\appendix}{\par
-    \setcounter{chapter}{0}
-      \setcounter{section}{0}
-      \gdef\@chapapp{\appendixname}
-      \gdef\@chappos{}
-      \gdef\thechapter{\@Alph\c at chapter}
-  }
-\fi
diff --git a/documentation/latex/sphinxhowto.cls b/documentation/latex/sphinxhowto.cls
index 26e63a7..f4e3d2f 100644
--- a/documentation/latex/sphinxhowto.cls
+++ b/documentation/latex/sphinxhowto.cls
@@ -1,5 +1,5 @@
 %
-% sphinxhowto.cls for Sphinx (http://sphinx-doc.org/)
+% sphinxhowto.cls for Sphinx (http://sphinx.pocoo.org/)
 %
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
@@ -90,15 +90,3 @@
   \py at OldThebibliography{1}
   \addcontentsline{toc}{section}{\bibname}
 }
-
-% Same for the indices.
-% The memoir class already does this, so we don't duplicate it in that case.
-%
-\@ifclassloaded{memoir}{}{
-  \let\py at OldTheindex=\theindex
-  \renewcommand{\theindex}{
-    \phantomsection
-    \py at OldTheindex
-    \addcontentsline{toc}{section}{\indexname}
-  }
-}
diff --git a/documentation/latex/sphinxmanual.cls b/documentation/latex/sphinxmanual.cls
index 26df488..57fad1a 100644
--- a/documentation/latex/sphinxmanual.cls
+++ b/documentation/latex/sphinxmanual.cls
@@ -1,5 +1,5 @@
 %
-% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/)
+% sphinxmanual.cls for Sphinx (http://sphinx.pocoo.org/)
 %
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
@@ -114,7 +114,6 @@
   \pagenumbering{arabic}%
   \@ifundefined{fancyhf}{}{\pagestyle{normal}}%
 }
-\pagenumbering{roman}
 
 % This is needed to get the width of the section # area wide enough in the
 % library reference.  Doing it here keeps it the same for all the manuals.
@@ -132,16 +131,3 @@
   \py at OldThebibliography{1}
   \addcontentsline{toc}{chapter}{\bibname}
 }
-
-% Same for the indices.
-% The memoir class already does this, so we don't duplicate it in that case.
-%
-\@ifclassloaded{memoir}{}{
-  \let\py at OldTheindex=\theindex
-  \renewcommand{\theindex}{
-    \cleardoublepage
-    \phantomsection
-    \py at OldTheindex
-    \addcontentsline{toc}{chapter}{\indexname}
-  }
-}
diff --git a/documentation/latex/xmds2.aux b/documentation/latex/xmds2.aux
index 4d2cdc7..65a7974 100644
--- a/documentation/latex/xmds2.aux
+++ b/documentation/latex/xmds2.aux
@@ -1,424 +1,551 @@
 \relax 
-\providecommand\hyper at newdestlabel[2]{}
-\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
-\HyperFirstAtBeginDocument{\ifx\hyper at anchor\@undefined
-\global\let\oldcontentsline\contentsline
-\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
-\global\let\oldnewlabel\newlabel
-\gdef\newlabel#1#2{\newlabelxx{#1}#2}
-\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
-\AtEndDocument{\ifx\hyper at anchor\@undefined
-\let\contentsline\oldcontentsline
-\let\newlabel\oldnewlabel
-\fi}
-\fi}
-\global\let\hyper at last\relax 
-\gdef\HyperFirstAtBeginDocument#1{#1}
-\providecommand\HyField at AuxAddToFields[1]{}
-\providecommand\HyField at AuxAddToCoFields[2]{}
+\ifx\hyper at anchor\@undefined
+\global \let \oldcontentsline\contentsline
+\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global \let \oldnewlabel\newlabel
+\gdef \newlabel#1#2{\newlabelxx{#1}#2}
+\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\let \contentsline\oldcontentsline
+\let \newlabel\oldnewlabel}
+\else
+\global \let \hyper at last\relax 
+\fi
+
 \select at language{english}
 \@writefile{toc}{\select at language{english}}
 \@writefile{lof}{\select at language{english}}
 \@writefile{lot}{\select at language{english}}
-\newlabel{documentation_toc::doc}{{}{1}{}{section*.2}{}}
+\newlabel{documentation_toc::doc}{{}{1}{\relax }{section*.2}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{introduction:introduction}{{1}{1}{Introduction}{chapter.1}{}}
-\newlabel{introduction:documentation}{{1}{1}{Introduction}{chapter.1}{}}
-\newlabel{introduction::doc}{{1}{1}{Introduction}{chapter.1}{}}
-\newlabel{introduction:welcome-to-the-documentation-for-xmds2}{{1}{1}{Introduction}{chapter.1}{}}
-\newlabel{introduction:xmdshistory}{{1}{1}{Introduction}{section*.3}{}}
+\newlabel{introduction:introduction}{{1}{1}{Introduction\relax }{chapter.1}{}}
+\newlabel{introduction:documentation}{{1}{1}{Introduction\relax }{chapter.1}{}}
+\newlabel{introduction::doc}{{1}{1}{Introduction\relax }{chapter.1}{}}
+\newlabel{introduction:welcome-to-the-documentation-for-xmds2}{{1}{1}{Introduction\relax }{chapter.1}{}}
+\newlabel{introduction:xmdshistory}{{1}{1}{Introduction\relax }{section*.3}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {2}Installation}{3}{chapter.2}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{installation:installation}{{2}{3}{Installation}{chapter.2}{}}
-\newlabel{installation::doc}{{2}{3}{Installation}{chapter.2}{}}
-\newlabel{installation:id1}{{2}{3}{Installation}{chapter.2}{}}
+\newlabel{installation:installation}{{2}{3}{Installation\relax }{chapter.2}{}}
+\newlabel{installation:index-0}{{2}{3}{Installation\relax }{chapter.2}{}}
+\newlabel{installation::doc}{{2}{3}{Installation\relax }{chapter.2}{}}
+\newlabel{installation:id1}{{2}{3}{Installation\relax }{chapter.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.1}Installers}{3}{section.2.1}}
-\newlabel{installation:installers}{{2.1}{3}{Installers}{section.2.1}{}}
+\newlabel{installation:installers}{{2.1}{3}{Installers\relax }{section.2.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.2}Linux installer instructions}{3}{section.2.2}}
-\newlabel{installation:linux-installation}{{2.2}{3}{Linux installer instructions}{section.2.2}{}}
-\newlabel{installation:linux-installer-instructions}{{2.2}{3}{Linux installer instructions}{section.2.2}{}}
+\newlabel{installation:linux-installation}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
+\newlabel{installation:index-1}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
+\newlabel{installation:linux-installer-instructions}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.3}Mac OS X Installation}{4}{section.2.3}}
-\newlabel{installation:mac-os-x-installation}{{2.3}{4}{Mac OS X Installation}{section.2.3}{}}
-\newlabel{installation:mac-installation}{{2.3}{4}{Mac OS X Installation}{section.2.3}{}}
+\newlabel{installation:mac-os-x-installation}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
+\newlabel{installation:index-2}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
+\newlabel{installation:mac-installation}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Download}{4}{subsection.2.3.1}}
-\newlabel{installation:download}{{2.3.1}{4}{Download}{subsection.2.3.1}{}}
+\newlabel{installation:download}{{2.3.1}{4}{Download\relax }{subsection.2.3.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Using the Mac OS X Installer}{4}{subsection.2.3.2}}
-\newlabel{installation:using-the-mac-os-x-installer}{{2.3.2}{4}{Using the Mac OS X Installer}{subsection.2.3.2}{}}
+\newlabel{installation:using-the-mac-os-x-installer}{{2.3.2}{4}{Using the Mac OS X Installer\relax }{subsection.2.3.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.4}Manual installation from source}{4}{section.2.4}}
-\newlabel{installation:manualinstallation}{{2.4}{4}{Manual installation from source}{section.2.4}{}}
-\newlabel{installation:manual-installation-from-source}{{2.4}{4}{Manual installation from source}{section.2.4}{}}
-\newlabel{installation:hdf5-installation}{{4}{5}{Manual installation from source}{section*.4}{}}
+\newlabel{installation:manualinstallation}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
+\newlabel{installation:manual-installation-from-source}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
+\newlabel{installation:index-3}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
+\newlabel{installation:hdf5-installation}{{4}{5}{Manual installation from source\relax }{section*.4}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {3}Quickstart Tutorial}{9}{chapter.3}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{tutorial::doc}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
-\newlabel{tutorial:quickstart-tutorial}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
-\newlabel{tutorial:quickstarttutorial}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
+\newlabel{tutorial:index-0}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
+\newlabel{tutorial::doc}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
+\newlabel{tutorial:quickstart-tutorial}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
+\newlabel{tutorial:quickstarttutorial}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {4}Worked Examples}{15}{chapter.4}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{worked_examples:worked-examples}{{4}{15}{Worked Examples}{chapter.4}{}}
-\newlabel{worked_examples::doc}{{4}{15}{Worked Examples}{chapter.4}{}}
-\newlabel{worked_examples:workedexamples}{{4}{15}{Worked Examples}{chapter.4}{}}
+\newlabel{worked_examples:index-0}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
+\newlabel{worked_examples:worked-examples}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
+\newlabel{worked_examples::doc}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
+\newlabel{worked_examples:workedexamples}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.1}The nonlinear Schr\IeC {\"o}dinger equation}{15}{section.4.1}}
-\newlabel{worked_examples:nonlinearschrodingerequation}{{4.1}{15}{The nonlinear Schrödinger equation}{section.4.1}{}}
-\newlabel{worked_examples:the-nonlinear-schrodinger-equation}{{4.1}{15}{The nonlinear Schrödinger equation}{section.4.1}{}}
+\newlabel{worked_examples:nonlinearschrodingerequation}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
+\newlabel{worked_examples:the-nonlinear-schrodinger-equation}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
+\newlabel{worked_examples:index-1}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.2}Kubo Oscillator}{19}{section.4.2}}
-\newlabel{worked_examples:kubo}{{4.2}{19}{Kubo Oscillator}{section.4.2}{}}
-\newlabel{worked_examples:kubo-oscillator}{{4.2}{19}{Kubo Oscillator}{section.4.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.3}Fibre Noise}{21}{section.4.3}}
-\newlabel{worked_examples:fibre}{{4.3}{21}{Fibre Noise}{section.4.3}{}}
-\newlabel{worked_examples:fibre-noise}{{4.3}{21}{Fibre Noise}{section.4.3}{}}
+\newlabel{worked_examples:kubo}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
+\newlabel{worked_examples:kubo-oscillator}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
+\newlabel{worked_examples:index-2}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces The mean value of the real and imaginary components of the z variable for a single path of the simulation.}}{22}{figure.4.1}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces The mean and standard error of the z variable averaged over 10000 paths, as given by this simulation. It agrees within the standard error with the expected result of $\qopname  \relax o{exp}(-t/2)$.}}{22}{figure.4.2}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.3}Fibre Noise}{23}{section.4.3}}
+\newlabel{worked_examples:fibre}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
+\newlabel{worked_examples:fibre-noise}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
+\newlabel{worked_examples:index-5}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces The momentum space density of the field as a function of time for a single path realisation.}}{25}{figure.4.3}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.4}Integer Dimensions}{25}{section.4.4}}
-\newlabel{worked_examples:integer-dimensions}{{4.4}{25}{Integer Dimensions}{section.4.4}{}}
-\newlabel{worked_examples:integerdimensionexample}{{4.4}{25}{Integer Dimensions}{section.4.4}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces The momentum space density of the field as a function of time for an average of 1024 paths.}}{26}{figure.4.4}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.4}Integer Dimensions}{27}{section.4.4}}
+\newlabel{worked_examples:integer-dimensions}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
+\newlabel{worked_examples:integerdimensionexample}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
+\newlabel{worked_examples:index-8}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.5}Wigner Function}{28}{section.4.5}}
-\newlabel{worked_examples:wigner-function}{{4.5}{28}{Wigner Function}{section.4.5}{}}
-\newlabel{worked_examples:wignerarguments}{{4.5}{28}{Wigner Function}{section.4.5}{}}
+\newlabel{worked_examples:wigner-function}{{4.5}{28}{Wigner Function\relax }{section.4.5}{}}
+\newlabel{worked_examples:wignerarguments}{{4.5}{28}{Wigner Function\relax }{section.4.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.6}Finding the Ground State of a BEC (continuous renormalisation)}{31}{section.4.6}}
-\newlabel{worked_examples:groundstatebec}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)}{section.4.6}{}}
-\newlabel{worked_examples:finding-the-ground-state-of-a-bec-continuous-renormalisation}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)}{section.4.6}{}}
+\newlabel{worked_examples:groundstatebec}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)\relax }{section.4.6}{}}
+\newlabel{worked_examples:finding-the-ground-state-of-a-bec-continuous-renormalisation}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)\relax }{section.4.6}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.7}Finding the Ground State of a BEC again}{35}{section.4.7}}
-\newlabel{worked_examples:finding-the-ground-state-of-a-bec-again}{{4.7}{35}{Finding the Ground State of a BEC again}{section.4.7}{}}
-\newlabel{worked_examples:hermitegaussgroundstatebec}{{4.7}{35}{Finding the Ground State of a BEC again}{section.4.7}{}}
+\newlabel{worked_examples:finding-the-ground-state-of-a-bec-again}{{4.7}{35}{Finding the Ground State of a BEC again\relax }{section.4.7}{}}
+\newlabel{worked_examples:hermitegaussgroundstatebec}{{4.7}{35}{Finding the Ground State of a BEC again\relax }{section.4.7}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces The shape of the ground state rapidly approaches the lowest eigenstate. For weak nonlinearities, it is nearly Gaussian.}}{36}{figure.4.5}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces When the nonlinear term is larger ($U=20$), the ground state is wider and more parabolic.}}{37}{figure.4.6}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{39}{section.4.8}}
-\newlabel{worked_examples:dmultistatese}{{4.8}{39}{Multi-component Schrödinger equation}{section.4.8}{}}
-\newlabel{worked_examples:multi-component-schrodinger-equation}{{4.8}{39}{Multi-component Schrödinger equation}{section.4.8}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{40}{section.4.8}}
+\newlabel{worked_examples:dmultistatese}{{4.8}{40}{Multi-component Schrödinger equation\relax }{section.4.8}{}}
+\newlabel{worked_examples:multi-component-schrodinger-equation}{{4.8}{40}{Multi-component Schrödinger equation\relax }{section.4.8}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {5}Reference section}{43}{chapter.5}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{reference_index:reference-section}{{5}{43}{Reference section}{chapter.5}{}}
-\newlabel{reference_index::doc}{{5}{43}{Reference section}{chapter.5}{}}
+\newlabel{reference_index:reference-section}{{5}{43}{Reference section\relax }{chapter.5}{}}
+\newlabel{reference_index::doc}{{5}{43}{Reference section\relax }{chapter.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.1}Configuration, installation and runtime options}{43}{section.5.1}}
-\newlabel{reference_installation_and_configuration:referenceconfigurationinstallationruntime}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
-\newlabel{reference_installation_and_configuration::doc}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
-\newlabel{reference_installation_and_configuration:configuration-installation-and-runtime-options}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
+\newlabel{reference_installation_and_configuration:referenceconfigurationinstallationruntime}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
+\newlabel{reference_installation_and_configuration::doc}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
+\newlabel{reference_installation_and_configuration:configuration-installation-and-runtime-options}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.2}Useful XML Syntax}{44}{section.5.2}}
-\newlabel{reference_usefulXMLSyntax::doc}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
-\newlabel{reference_usefulXMLSyntax:referenceusefulxmlsyntax}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
-\newlabel{reference_usefulXMLSyntax:useful-xml-syntax}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax::doc}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax:referenceusefulxmlsyntax}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax:useful-xml-syntax}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.3}XMDS2 XML Schema}{44}{section.5.3}}
-\newlabel{reference_schema:xmds2-xml-schema}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
-\newlabel{reference_schema::doc}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
-\newlabel{reference_schema:referenceschema}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
+\newlabel{reference_schema:xmds2-xml-schema}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
+\newlabel{reference_schema:index-0}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
+\newlabel{reference_schema::doc}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
+\newlabel{reference_schema:referenceschema}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.4}XMDS2 script elements}{46}{section.5.4}}
-\newlabel{reference_elements:xmds2-script-elements}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
-\newlabel{reference_elements::doc}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
-\newlabel{reference_elements:referenceelements}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
+\newlabel{reference_elements:index-0}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
+\newlabel{reference_elements:xmds2-script-elements}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
+\newlabel{reference_elements::doc}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
+\newlabel{reference_elements:referenceelements}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Simulation element}{47}{subsection.5.4.1}}
-\newlabel{reference_elements:simulation-element}{{5.4.1}{47}{Simulation element}{subsection.5.4.1}{}}
-\newlabel{reference_elements:simulationelement}{{5.4.1}{47}{Simulation element}{subsection.5.4.1}{}}
+\newlabel{reference_elements:simulation-element}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
+\newlabel{reference_elements:simulationelement}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
+\newlabel{reference_elements:index-1}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}Name element}{47}{subsection.5.4.2}}
-\newlabel{reference_elements:name-element}{{5.4.2}{47}{Name element}{subsection.5.4.2}{}}
-\newlabel{reference_elements:nameelement}{{5.4.2}{47}{Name element}{subsection.5.4.2}{}}
+\newlabel{reference_elements:name-element}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
+\newlabel{reference_elements:nameelement}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
+\newlabel{reference_elements:index-2}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}Author element}{47}{subsection.5.4.3}}
-\newlabel{reference_elements:author-element}{{5.4.3}{47}{Author element}{subsection.5.4.3}{}}
-\newlabel{reference_elements:authorelement}{{5.4.3}{47}{Author element}{subsection.5.4.3}{}}
+\newlabel{reference_elements:author-element}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
+\newlabel{reference_elements:authorelement}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
+\newlabel{reference_elements:index-3}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}Description element}{47}{subsection.5.4.4}}
-\newlabel{reference_elements:descriptionelement}{{5.4.4}{47}{Description element}{subsection.5.4.4}{}}
-\newlabel{reference_elements:description-element}{{5.4.4}{47}{Description element}{subsection.5.4.4}{}}
+\newlabel{reference_elements:index-4}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
+\newlabel{reference_elements:descriptionelement}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
+\newlabel{reference_elements:description-element}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.5}Features Elements}{47}{subsection.5.4.5}}
-\newlabel{reference_elements:features-elements}{{5.4.5}{47}{Features Elements}{subsection.5.4.5}{}}
-\newlabel{reference_elements:featureselement}{{5.4.5}{47}{Features Elements}{subsection.5.4.5}{}}
+\newlabel{reference_elements:features-elements}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
+\newlabel{reference_elements:featureselement}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
+\newlabel{reference_elements:index-5}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Arguments Element}{48}{subsubsection*.5}}
-\newlabel{reference_elements:argumentselement}{{5.4.5}{48}{Arguments Element}{subsubsection*.5}{}}
-\newlabel{reference_elements:arguments-element}{{5.4.5}{48}{Arguments Element}{subsubsection*.5}{}}
+\newlabel{reference_elements:index-6}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
+\newlabel{reference_elements:argumentselement}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
+\newlabel{reference_elements:arguments-element}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
 \@writefile{toc}{\contentsline {paragraph}{Argument element}{49}{paragraph*.6}}
-\newlabel{reference_elements:argument-element}{{5.4.5}{49}{Argument element}{paragraph*.6}{}}
-\newlabel{reference_elements:argumentelement}{{5.4.5}{49}{Argument element}{paragraph*.6}{}}
+\newlabel{reference_elements:argument-element}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
+\newlabel{reference_elements:index-7}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
+\newlabel{reference_elements:argumentelement}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Auto\_vectorise element}{49}{subsubsection*.7}}
-\newlabel{reference_elements:autovectorise}{{5.4.5}{49}{Auto\_vectorise element}{subsubsection*.7}{}}
-\newlabel{reference_elements:auto-vectorise-element}{{5.4.5}{49}{Auto\_vectorise element}{subsubsection*.7}{}}
+\newlabel{reference_elements:autovectorise}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
+\newlabel{reference_elements:auto-vectorise-element}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
+\newlabel{reference_elements:index-9}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Benchmark}{49}{subsubsection*.8}}
-\newlabel{reference_elements:benchmark}{{5.4.5}{49}{Benchmark}{subsubsection*.8}{}}
-\newlabel{reference_elements:id1}{{5.4.5}{49}{Benchmark}{subsubsection*.8}{}}
+\newlabel{reference_elements:benchmark}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
+\newlabel{reference_elements:index-10}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
+\newlabel{reference_elements:id1}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Bing}{49}{subsubsection*.9}}
-\newlabel{reference_elements:bing}{{5.4.5}{49}{Bing}{subsubsection*.9}{}}
-\newlabel{reference_elements:id2}{{5.4.5}{49}{Bing}{subsubsection*.9}{}}
+\newlabel{reference_elements:bing}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
+\newlabel{reference_elements:id2}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
+\newlabel{reference_elements:index-11}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
 \@writefile{toc}{\contentsline {subsubsection}{C Flags}{49}{subsubsection*.10}}
-\newlabel{reference_elements:c-flags}{{5.4.5}{49}{C Flags}{subsubsection*.10}{}}
-\newlabel{reference_elements:cflags}{{5.4.5}{49}{C Flags}{subsubsection*.10}{}}
+\newlabel{reference_elements:c-flags}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
+\newlabel{reference_elements:index-12}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
+\newlabel{reference_elements:cflags}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Chunked Output}{49}{subsubsection*.11}}
-\newlabel{reference_elements:chunked-output}{{5.4.5}{49}{Chunked Output}{subsubsection*.11}{}}
-\newlabel{reference_elements:chunkedoutput}{{5.4.5}{49}{Chunked Output}{subsubsection*.11}{}}
+\newlabel{reference_elements:chunked-output}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
+\newlabel{reference_elements:index-13}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
+\newlabel{reference_elements:chunkedoutput}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Diagnostics}{50}{subsubsection*.12}}
-\newlabel{reference_elements:id3}{{5.4.5}{50}{Diagnostics}{subsubsection*.12}{}}
-\newlabel{reference_elements:diagnostics}{{5.4.5}{50}{Diagnostics}{subsubsection*.12}{}}
+\newlabel{reference_elements:index-14}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
+\newlabel{reference_elements:id3}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
+\newlabel{reference_elements:diagnostics}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Error Check}{50}{subsubsection*.13}}
-\newlabel{reference_elements:errorcheck}{{5.4.5}{50}{Error Check}{subsubsection*.13}{}}
-\newlabel{reference_elements:error-check}{{5.4.5}{50}{Error Check}{subsubsection*.13}{}}
+\newlabel{reference_elements:errorcheck}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
+\newlabel{reference_elements:error-check}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
+\newlabel{reference_elements:index-15}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Halt\_Non\_Finite}{50}{subsubsection*.14}}
-\newlabel{reference_elements:halt-non-finite}{{5.4.5}{50}{Halt\_Non\_Finite}{subsubsection*.14}{}}
-\newlabel{reference_elements:haltnonfinite}{{5.4.5}{50}{Halt\_Non\_Finite}{subsubsection*.14}{}}
+\newlabel{reference_elements:index-16}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
+\newlabel{reference_elements:halt-non-finite}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
+\newlabel{reference_elements:haltnonfinite}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
 \@writefile{toc}{\contentsline {subsubsection}{fftw element}{50}{subsubsection*.15}}
-\newlabel{reference_elements:fftw}{{5.4.5}{50}{fftw element}{subsubsection*.15}{}}
-\newlabel{reference_elements:fftw-element}{{5.4.5}{50}{fftw element}{subsubsection*.15}{}}
+\newlabel{reference_elements:index-17}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
+\newlabel{reference_elements:fftw}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
+\newlabel{reference_elements:fftw-element}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Globals}{51}{subsubsection*.16}}
-\newlabel{reference_elements:id4}{{5.4.5}{51}{Globals}{subsubsection*.16}{}}
-\newlabel{reference_elements:globals}{{5.4.5}{51}{Globals}{subsubsection*.16}{}}
+\newlabel{reference_elements:id4}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
+\newlabel{reference_elements:globals}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
+\newlabel{reference_elements:index-19}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
 \@writefile{toc}{\contentsline {subsubsection}{OpenMP}{51}{subsubsection*.17}}
-\newlabel{reference_elements:openmp}{{5.4.5}{51}{OpenMP}{subsubsection*.17}{}}
-\newlabel{reference_elements:id5}{{5.4.5}{51}{OpenMP}{subsubsection*.17}{}}
+\newlabel{reference_elements:openmp}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
+\newlabel{reference_elements:index-20}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
+\newlabel{reference_elements:id5}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Precision}{51}{subsubsection*.18}}
-\newlabel{reference_elements:id6}{{5.4.5}{51}{Precision}{subsubsection*.18}{}}
-\newlabel{reference_elements:precision}{{5.4.5}{51}{Precision}{subsubsection*.18}{}}
+\newlabel{reference_elements:id6}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
+\newlabel{reference_elements:index-21}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
+\newlabel{reference_elements:precision}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Validation}{52}{subsubsection*.19}}
-\newlabel{reference_elements:id7}{{5.4.5}{52}{Validation}{subsubsection*.19}{}}
-\newlabel{reference_elements:validation}{{5.4.5}{52}{Validation}{subsubsection*.19}{}}
+\newlabel{reference_elements:index-22}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
+\newlabel{reference_elements:validation}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
+\newlabel{reference_elements:id7}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.6}Driver Element}{52}{subsection.5.4.6}}
-\newlabel{reference_elements:driver-element}{{5.4.6}{52}{Driver Element}{subsection.5.4.6}{}}
-\newlabel{reference_elements:driverelement}{{5.4.6}{52}{Driver Element}{subsection.5.4.6}{}}
+\newlabel{reference_elements:driver-element}{{5.4.6}{52}{Driver Element\relax }{subsection.5.4.6}{}}
+\newlabel{reference_elements:driverelement}{{5.4.6}{52}{Driver Element\relax }{subsection.5.4.6}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.7}Geometry Element}{53}{subsection.5.4.7}}
-\newlabel{reference_elements:geometry-element}{{5.4.7}{53}{Geometry Element}{subsection.5.4.7}{}}
-\newlabel{reference_elements:geometryelement}{{5.4.7}{53}{Geometry Element}{subsection.5.4.7}{}}
-\newlabel{reference_elements:propagationdimensionelement}{{5.4.7}{53}{Geometry Element}{section*.20}{}}
-\newlabel{reference_elements:transversedimensionselement}{{5.4.7}{53}{Geometry Element}{section*.21}{}}
-\newlabel{reference_elements:dimensionelement}{{5.4.7}{53}{Geometry Element}{section*.22}{}}
-\newlabel{reference_elements:transforms}{{5.4.7}{53}{Geometry Element}{section*.23}{}}
+\newlabel{reference_elements:geometry-element}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
+\newlabel{reference_elements:index-24}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
+\newlabel{reference_elements:geometryelement}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
+\newlabel{reference_elements:propagationdimensionelement}{{5.4.7}{53}{Geometry Element\relax }{section*.20}{}}
+\newlabel{reference_elements:transversedimensionselement}{{5.4.7}{53}{Geometry Element\relax }{section*.21}{}}
+\newlabel{reference_elements:dimensionelement}{{5.4.7}{53}{Geometry Element\relax }{section*.22}{}}
+\newlabel{reference_elements:transforms}{{5.4.7}{54}{Geometry Element\relax }{section*.23}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``dft'' transform}{54}{subsubsection*.24}}
-\newlabel{reference_elements:dft-transform}{{5.4.7}{54}{The ``dft'' transform}{subsubsection*.24}{}}
-\newlabel{reference_elements:the-dft-transform}{{5.4.7}{54}{The ``dft'' transform}{subsubsection*.24}{}}
+\newlabel{reference_elements:dft-transform}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
+\newlabel{reference_elements:the-dft-transform}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
+\newlabel{reference_elements:index-33}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``dct'' transform}{55}{subsubsection*.25}}
-\newlabel{reference_elements:the-dct-transform}{{5.4.7}{55}{The ``dct'' transform}{subsubsection*.25}{}}
-\@writefile{toc}{\contentsline {subsubsection}{The ``dst'' transform}{55}{subsubsection*.26}}
-\newlabel{reference_elements:the-dst-transform}{{5.4.7}{55}{The ``dst'' transform}{subsubsection*.26}{}}
-\@writefile{toc}{\contentsline {subsubsection}{The ``bessel'' transform}{56}{subsubsection*.27}}
-\newlabel{reference_elements:the-bessel-transform}{{5.4.7}{56}{The ``bessel'' transform}{subsubsection*.27}{}}
-\newlabel{reference_elements:besseltransform}{{5.4.7}{56}{The ``bessel'' transform}{subsubsection*.27}{}}
+\newlabel{reference_elements:dct-transform}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
+\newlabel{reference_elements:the-dct-transform}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
+\newlabel{reference_elements:index-35}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
+\@writefile{toc}{\contentsline {subsubsection}{The ``dst'' transform}{56}{subsubsection*.26}}
+\newlabel{reference_elements:dst-transform}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
+\newlabel{reference_elements:the-dst-transform}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
+\newlabel{reference_elements:index-37}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
+\@writefile{toc}{\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{56}{subsubsection*.27}}
+\newlabel{reference_elements:the-bessel-and-bessel-neumann-transforms}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
+\newlabel{reference_elements:index-39}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
+\newlabel{reference_elements:besseltransform}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``spherical-bessel'' transform}{57}{subsubsection*.28}}
-\newlabel{reference_elements:the-spherical-bessel-transform}{{5.4.7}{57}{The ``spherical-bessel'' transform}{subsubsection*.28}{}}
+\newlabel{reference_elements:the-spherical-bessel-transform}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
+\newlabel{reference_elements:index-41}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
+\newlabel{reference_elements:spherical-bessel-transform}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``hermite-gauss'' transform}{58}{subsubsection*.29}}
-\newlabel{reference_elements:the-hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform}{subsubsection*.29}{}}
+\newlabel{reference_elements:hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
+\newlabel{reference_elements:the-hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
+\newlabel{reference_elements:index-42}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.8}Vector Element}{59}{subsection.5.4.8}}
-\newlabel{reference_elements:vector-element}{{5.4.8}{59}{Vector Element}{subsection.5.4.8}{}}
-\newlabel{reference_elements:vectorelement}{{5.4.8}{59}{Vector Element}{subsection.5.4.8}{}}
-\newlabel{reference_elements:componentselement}{{5.4.8}{59}{Vector Element}{section*.30}{}}
-\newlabel{reference_elements:initialisationelement}{{5.4.8}{59}{Vector Element}{section*.31}{}}
-\newlabel{reference_elements:referencingnonlocal}{{5.4.8}{59}{Vector Element}{section*.32}{}}
-\newlabel{reference_elements:filenameelement}{{5.4.8}{60}{Vector Element}{section*.33}{}}
-\@writefile{toc}{\contentsline {subsubsection}{The dependencies element}{60}{subsubsection*.34}}
-\newlabel{reference_elements:the-dependencies-element}{{5.4.8}{60}{The dependencies element}{subsubsection*.34}{}}
-\newlabel{reference_elements:dependencies}{{5.4.8}{60}{The dependencies element}{subsubsection*.34}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{61}{subsection.5.4.9}}
-\newlabel{reference_elements:computedvectorelement}{{5.4.9}{61}{Computed Vector Element}{subsection.5.4.9}{}}
-\newlabel{reference_elements:computed-vector-element}{{5.4.9}{61}{Computed Vector Element}{subsection.5.4.9}{}}
-\newlabel{reference_elements:evaluationelement}{{5.4.9}{61}{Computed Vector Element}{section*.35}{}}
+\newlabel{reference_elements:index-44}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
+\newlabel{reference_elements:vector-element}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
+\newlabel{reference_elements:vectorelement}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
+\newlabel{reference_elements:componentselement}{{5.4.8}{59}{Vector Element\relax }{section*.30}{}}
+\newlabel{reference_elements:initialisationelement}{{5.4.8}{59}{Vector Element\relax }{section*.31}{}}
+\newlabel{reference_elements:referencingnonlocal}{{5.4.8}{59}{Vector Element\relax }{section*.32}{}}
+\newlabel{reference_elements:filenameelement}{{5.4.8}{60}{Vector Element\relax }{section*.33}{}}
+\@writefile{toc}{\contentsline {subsubsection}{The dependencies element}{61}{subsubsection*.34}}
+\newlabel{reference_elements:the-dependencies-element}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
+\newlabel{reference_elements:dependencies}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
+\newlabel{reference_elements:index-54}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{62}{subsection.5.4.9}}
+\newlabel{reference_elements:computedvectorelement}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
+\newlabel{reference_elements:index-56}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
+\newlabel{reference_elements:computed-vector-element}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
+\newlabel{reference_elements:evaluationelement}{{5.4.9}{62}{Computed Vector Element\relax }{section*.35}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{62}{subsection.5.4.10}}
-\newlabel{reference_elements:noise-vector-element}{{5.4.10}{62}{Noise Vector Element}{subsection.5.4.10}{}}
-\newlabel{reference_elements:noisevectorelement}{{5.4.10}{62}{Noise Vector Element}{subsection.5.4.10}{}}
+\newlabel{reference_elements:noise-vector-element}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
+\newlabel{reference_elements:index-58}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
+\newlabel{reference_elements:noisevectorelement}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Uniform noise}{63}{subsubsection*.36}}
-\newlabel{reference_elements:uniformnoise}{{5.4.10}{63}{Uniform noise}{subsubsection*.36}{}}
-\newlabel{reference_elements:uniform-noise}{{5.4.10}{63}{Uniform noise}{subsubsection*.36}{}}
+\newlabel{reference_elements:uniformnoise}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
+\newlabel{reference_elements:index-59}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
+\newlabel{reference_elements:uniform-noise}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Gaussian noise}{63}{subsubsection*.37}}
-\newlabel{reference_elements:gaussiannoise}{{5.4.10}{63}{Gaussian noise}{subsubsection*.37}{}}
-\newlabel{reference_elements:gaussian-noise}{{5.4.10}{63}{Gaussian noise}{subsubsection*.37}{}}
+\newlabel{reference_elements:gaussiannoise}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
+\newlabel{reference_elements:gaussian-noise}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
+\newlabel{reference_elements:index-60}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Wiener noise}{64}{subsubsection*.38}}
-\newlabel{reference_elements:wienernoise}{{5.4.10}{64}{Wiener noise}{subsubsection*.38}{}}
-\newlabel{reference_elements:wiener-noise}{{5.4.10}{64}{Wiener noise}{subsubsection*.38}{}}
+\newlabel{reference_elements:wienernoise}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
+\newlabel{reference_elements:index-61}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
+\newlabel{reference_elements:wiener-noise}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Poissonian noise}{64}{subsubsection*.39}}
-\newlabel{reference_elements:poissioniannoise}{{5.4.10}{64}{Poissonian noise}{subsubsection*.39}{}}
-\newlabel{reference_elements:poissonian-noise}{{5.4.10}{64}{Poissonian noise}{subsubsection*.39}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Jump noise}{64}{subsubsection*.40}}
-\newlabel{reference_elements:jumpnoise}{{5.4.10}{64}{Jump noise}{subsubsection*.40}{}}
-\newlabel{reference_elements:jump-noise}{{5.4.10}{64}{Jump noise}{subsubsection*.40}{}}
+\newlabel{reference_elements:poissioniannoise}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
+\newlabel{reference_elements:poissonian-noise}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
+\newlabel{reference_elements:index-62}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Jump noise}{65}{subsubsection*.40}}
+\newlabel{reference_elements:jumpnoise}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
+\newlabel{reference_elements:index-63}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
+\newlabel{reference_elements:jump-noise}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.11}Sequence Element}{65}{subsection.5.4.11}}
-\newlabel{reference_elements:sequence-element}{{5.4.11}{65}{Sequence Element}{subsection.5.4.11}{}}
-\newlabel{reference_elements:sequenceelement}{{5.4.11}{65}{Sequence Element}{subsection.5.4.11}{}}
+\newlabel{reference_elements:sequence-element}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
+\newlabel{reference_elements:sequenceelement}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
+\newlabel{reference_elements:index-64}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.12}Filter element}{65}{subsection.5.4.12}}
-\newlabel{reference_elements:filterelement}{{5.4.12}{65}{Filter element}{subsection.5.4.12}{}}
-\newlabel{reference_elements:filter-element}{{5.4.12}{65}{Filter element}{subsection.5.4.12}{}}
+\newlabel{reference_elements:index-65}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
+\newlabel{reference_elements:filterelement}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
+\newlabel{reference_elements:filter-element}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.13}Integrate element}{66}{subsection.5.4.13}}
-\newlabel{reference_elements:integrate-element}{{5.4.13}{66}{Integrate element}{subsection.5.4.13}{}}
-\newlabel{reference_elements:integrateelement}{{5.4.13}{66}{Integrate element}{subsection.5.4.13}{}}
-\newlabel{reference_elements:sampleselement}{{5.4.13}{66}{Integrate element}{section*.41}{}}
+\newlabel{reference_elements:index-67}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
+\newlabel{reference_elements:integrate-element}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
+\newlabel{reference_elements:integrateelement}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
+\newlabel{reference_elements:sampleselement}{{5.4.13}{66}{Integrate element\relax }{section*.41}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Operators and operator elements}{67}{subsubsection*.42}}
-\newlabel{reference_elements:operatorselement}{{5.4.13}{67}{Operators and operator elements}{subsubsection*.42}{}}
-\newlabel{reference_elements:operators-and-operator-elements}{{5.4.13}{67}{Operators and operator elements}{subsubsection*.42}{}}
-\newlabel{reference_elements:integrationvectorselement}{{5.4.13}{67}{Operators and operator elements}{section*.43}{}}
-\newlabel{reference_elements:operatorelement}{{5.4.13}{67}{Operators and operator elements}{section*.44}{}}
-\newlabel{reference_elements:operatornameselement}{{5.4.13}{67}{Operators and operator elements}{section*.45}{}}
-\newlabel{reference_elements:boundaryconditionelement}{{5.4.13}{68}{Operators and operator elements}{section*.46}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Algorithms}{68}{subsubsection*.47}}
-\newlabel{reference_elements:algorithms}{{5.4.13}{68}{Algorithms}{subsubsection*.47}{}}
-\newlabel{reference_elements:id8}{{5.4.13}{68}{Algorithms}{subsubsection*.47}{}}
+\newlabel{reference_elements:operatorselement}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
+\newlabel{reference_elements:index-70}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
+\newlabel{reference_elements:operators-and-operator-elements}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
+\newlabel{reference_elements:integrationvectorselement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.43}{}}
+\newlabel{reference_elements:operatorelement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.44}{}}
+\newlabel{reference_elements:operatornameselement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.45}{}}
+\newlabel{reference_elements:boundaryconditionelement}{{5.4.13}{68}{Operators and operator elements\relax }{section*.46}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Algorithms}{69}{subsubsection*.47}}
+\newlabel{reference_elements:algorithms}{{5.4.13}{69}{Algorithms\relax }{subsubsection*.47}{}}
+\newlabel{reference_elements:id8}{{5.4.13}{69}{Algorithms\relax }{subsubsection*.47}{}}
 \@writefile{toc}{\contentsline {paragraph}{SI and SIC algorithms}{69}{paragraph*.48}}
-\newlabel{reference_elements:si}{{5.4.13}{69}{SI and SIC algorithms}{paragraph*.48}{}}
-\newlabel{reference_elements:si-and-sic-algorithms}{{5.4.13}{69}{SI and SIC algorithms}{paragraph*.48}{}}
+\newlabel{reference_elements:si}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
+\newlabel{reference_elements:index-82}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
+\newlabel{reference_elements:si-and-sic-algorithms}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
 \@writefile{toc}{\contentsline {paragraph}{Runge-Kutta algorithms}{69}{paragraph*.49}}
-\newlabel{reference_elements:rk4}{{5.4.13}{69}{Runge-Kutta algorithms}{paragraph*.49}{}}
-\newlabel{reference_elements:runge-kutta-algorithms}{{5.4.13}{69}{Runge-Kutta algorithms}{paragraph*.49}{}}
-\@writefile{toc}{\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{69}{paragraph*.50}}
-\newlabel{reference_elements:adaptive-runge-kutta-algorithms}{{5.4.13}{69}{Adaptive Runge-Kutta algorithms}{paragraph*.50}{}}
-\newlabel{reference_elements:ark45}{{5.4.13}{69}{Adaptive Runge-Kutta algorithms}{paragraph*.50}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Filters element}{70}{subsubsection*.51}}
-\newlabel{reference_elements:filterselement}{{5.4.13}{70}{Filters element}{subsubsection*.51}{}}
-\newlabel{reference_elements:filters-element}{{5.4.13}{70}{Filters element}{subsubsection*.51}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{70}{subsection.5.4.14}}
-\newlabel{reference_elements:breakpoint-element}{{5.4.14}{70}{Breakpoint element}{subsection.5.4.14}{}}
-\newlabel{reference_elements:breakpointelement}{{5.4.14}{70}{Breakpoint element}{subsection.5.4.14}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.15}Output element}{71}{subsection.5.4.15}}
-\newlabel{reference_elements:outputelement}{{5.4.15}{71}{Output element}{subsection.5.4.15}{}}
-\newlabel{reference_elements:output-element}{{5.4.15}{71}{Output element}{subsection.5.4.15}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Sampling Group Element}{71}{subsubsection*.52}}
-\newlabel{reference_elements:samplinggroupelement}{{5.4.15}{71}{Sampling Group Element}{subsubsection*.52}{}}
-\newlabel{reference_elements:sampling-group-element}{{5.4.15}{71}{Sampling Group Element}{subsubsection*.52}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{72}{subsection.5.4.16}}
-\newlabel{reference_elements:xmds-specific-c-syntax}{{5.4.16}{72}{XMDS-specific C syntax}{subsection.5.4.16}{}}
-\newlabel{reference_elements:xmdscsyntax}{{5.4.16}{72}{XMDS-specific C syntax}{subsection.5.4.16}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {6}Advanced Topics}{73}{chapter.6}}
+\newlabel{reference_elements:rk4}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
+\newlabel{reference_elements:runge-kutta-algorithms}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
+\newlabel{reference_elements:index-83}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
+\@writefile{toc}{\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{70}{paragraph*.50}}
+\newlabel{reference_elements:adaptive-runge-kutta-algorithms}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
+\newlabel{reference_elements:ark45}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
+\newlabel{reference_elements:index-84}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
+\@writefile{toc}{\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{70}{paragraph*.51}}
+\newlabel{reference_elements:realgorithm}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
+\newlabel{reference_elements:index-85}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
+\newlabel{reference_elements:richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Filters element}{71}{subsubsection*.52}}
+\newlabel{reference_elements:filterselement}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
+\newlabel{reference_elements:index-86}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
+\newlabel{reference_elements:filters-element}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{71}{subsection.5.4.14}}
+\newlabel{reference_elements:breakpoint-element}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
+\newlabel{reference_elements:breakpointelement}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
+\newlabel{reference_elements:index-87}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.15}Output element}{72}{subsection.5.4.15}}
+\newlabel{reference_elements:outputelement}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
+\newlabel{reference_elements:index-88}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
+\newlabel{reference_elements:output-element}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Sampling Group Element}{72}{subsubsection*.53}}
+\newlabel{reference_elements:samplinggroupelement}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
+\newlabel{reference_elements:sampling-group-element}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
+\newlabel{reference_elements:index-91}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{73}{subsection.5.4.16}}
+\newlabel{reference_elements:xmds-specific-c-syntax}{{5.4.16}{73}{XMDS-specific C syntax\relax }{subsection.5.4.16}{}}
+\newlabel{reference_elements:xmdscsyntax}{{5.4.16}{73}{XMDS-specific C syntax\relax }{subsection.5.4.16}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{73}{section.5.5}}
+\newlabel{bulirschStoer:modified-midpoint-method}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
+\newlabel{bulirschStoer:index-0}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
+\newlabel{bulirschStoer::doc}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
+\newlabel{bulirschStoer:mmdetail}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.6}Bulirsch-Stoer Algorithm}{74}{section.5.6}}
+\newlabel{bulirschStoer:bulirsch-stoer-algorithm}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
+\newlabel{bulirschStoer:bsdetail}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
+\newlabel{bulirschStoer:index-1}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{75}{section.5.7}}
+\newlabel{bulirschStoer:errorscaling}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
+\newlabel{bulirschStoer:index-2}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
+\newlabel{bulirschStoer:error-scaling-behaviour}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {6}Advanced Topics}{77}{chapter.6}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{advanced_topics:advancedtopics}{{6}{73}{Advanced Topics}{chapter.6}{}}
-\newlabel{advanced_topics:advanced-topics}{{6}{73}{Advanced Topics}{chapter.6}{}}
-\newlabel{advanced_topics::doc}{{6}{73}{Advanced Topics}{chapter.6}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.1}Importing data}{73}{section.6.1}}
-\newlabel{advanced_topics:importing}{{6.1}{73}{Importing data}{section.6.1}{}}
-\newlabel{advanced_topics:importing-data}{{6.1}{73}{Importing data}{section.6.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{75}{section.6.2}}
-\newlabel{advanced_topics:convolutions-and-fourier-transforms}{{6.2}{75}{Convolutions and Fourier transforms}{section.6.2}{}}
-\newlabel{advanced_topics:convolutions}{{6.2}{75}{Convolutions and Fourier transforms}{section.6.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}Example 1}{76}{subsection.6.2.1}}
-\newlabel{advanced_topics:example-1}{{6.2.1}{76}{Example 1}{subsection.6.2.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}Example 2}{77}{subsection.6.2.2}}
-\newlabel{advanced_topics:example-2}{{6.2.2}{77}{Example 2}{subsection.6.2.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}Example 3}{77}{subsection.6.2.3}}
-\newlabel{advanced_topics:example-3}{{6.2.3}{77}{Example 3}{subsection.6.2.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.3}`Loose' \texttt  {geometry\_matching\_mode}}{78}{section.6.3}}
-\newlabel{advanced_topics:loosegeometrymatchingmode}{{6.3}{78}{`Loose' \texttt {geometry\_matching\_mode}}{section.6.3}{}}
-\newlabel{advanced_topics:loose-geometry-matching-mode}{{6.3}{78}{`Loose' \texttt {geometry\_matching\_mode}}{section.6.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.4}Dimension aliases}{78}{section.6.4}}
-\newlabel{advanced_topics:dimension-aliases}{{6.4}{78}{Dimension aliases}{section.6.4}{}}
-\newlabel{advanced_topics:dimensionaliases}{{6.4}{78}{Dimension aliases}{section.6.4}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{79}{chapter.7}}
+\newlabel{advanced_topics:advancedtopics}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
+\newlabel{advanced_topics:advanced-topics}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
+\newlabel{advanced_topics:index-0}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
+\newlabel{advanced_topics::doc}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.1}Importing data}{77}{section.6.1}}
+\newlabel{advanced_topics:importing}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
+\newlabel{advanced_topics:importing-data}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
+\newlabel{advanced_topics:index-1}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{79}{section.6.2}}
+\newlabel{advanced_topics:convolutions-and-fourier-transforms}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
+\newlabel{advanced_topics:convolutions}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
+\newlabel{advanced_topics:index-2}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}Example 1}{80}{subsection.6.2.1}}
+\newlabel{advanced_topics:example-1}{{6.2.1}{80}{Example 1\relax }{subsection.6.2.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}Example 2}{81}{subsection.6.2.2}}
+\newlabel{advanced_topics:example-2}{{6.2.2}{81}{Example 2\relax }{subsection.6.2.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}Example 3}{81}{subsection.6.2.3}}
+\newlabel{advanced_topics:example-3}{{6.2.3}{81}{Example 3\relax }{subsection.6.2.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.3}`Loose' \texttt  {geometry\_matching\_mode}}{82}{section.6.3}}
+\newlabel{advanced_topics:loosegeometrymatchingmode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
+\newlabel{advanced_topics:index-3}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
+\newlabel{advanced_topics:loose-geometry-matching-mode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.4}Dimension aliases}{82}{section.6.4}}
+\newlabel{advanced_topics:index-4}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
+\newlabel{advanced_topics:dimension-aliases}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
+\newlabel{advanced_topics:dimensionaliases}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{83}{chapter.7}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{faq:faq}{{7}{79}{Frequently Asked Questions}{chapter.7}{}}
-\newlabel{faq::doc}{{7}{79}{Frequently Asked Questions}{chapter.7}{}}
-\newlabel{faq:frequently-asked-questions}{{7}{79}{Frequently Asked Questions}{chapter.7}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{79}{section.7.1}}
-\newlabel{faq:xmds-scripts-look-complicated-how-do-i-start}{{7.1}{79}{XMDS scripts look complicated! How do I start?}{section.7.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.2}Where can I get help?}{79}{section.7.2}}
-\newlabel{faq:where-can-i-get-help}{{7.2}{79}{Where can I get help?}{section.7.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{79}{section.7.3}}
-\newlabel{faq:how-should-i-cite-xmds2}{{7.3}{79}{How should I cite XMDS2?}{section.7.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{79}{section.7.4}}
-\newlabel{faq:i-think-i-found-a-bug-where-should-i-report-it}{{7.4}{79}{I think I found a bug! Where should I report it?}{section.7.4}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{79}{section.7.5}}
-\newlabel{faq:how-do-i-put-time-dependence-into-my-vectors}{{7.5}{79}{How do I put time dependence into my vectors?}{section.7.5}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{80}{section.7.6}}
-\newlabel{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}{{7.6}{80}{Can I specify the range of my domain and number of grid points at run-time?}{section.7.6}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{80}{section.7.7}}
-\newlabel{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}{{7.7}{80}{When can I use IP operators (and why should I) and when must I use EX operators?}{section.7.7}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.8}Visual Editors}{80}{section.7.8}}
-\newlabel{faq:visual-editors}{{7.8}{80}{Visual Editors}{section.7.8}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{81}{chapter.8}}
+\newlabel{faq:index-0}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
+\newlabel{faq:faq}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
+\newlabel{faq::doc}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
+\newlabel{faq:frequently-asked-questions}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{83}{section.7.1}}
+\newlabel{faq:xmds-scripts-look-complicated-how-do-i-start}{{7.1}{83}{XMDS scripts look complicated! How do I start?\relax }{section.7.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.2}Where can I get help?}{83}{section.7.2}}
+\newlabel{faq:where-can-i-get-help}{{7.2}{83}{Where can I get help?\relax }{section.7.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{83}{section.7.3}}
+\newlabel{faq:how-should-i-cite-xmds2}{{7.3}{83}{How should I cite XMDS2?\relax }{section.7.3}{}}
+\newlabel{faq:index-1}{{7.3}{83}{How should I cite XMDS2?\relax }{section.7.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{83}{section.7.4}}
+\newlabel{faq:i-think-i-found-a-bug-where-should-i-report-it}{{7.4}{83}{I think I found a bug! Where should I report it?\relax }{section.7.4}{}}
+\newlabel{faq:index-2}{{7.4}{83}{I think I found a bug! Where should I report it?\relax }{section.7.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{83}{section.7.5}}
+\newlabel{faq:how-do-i-put-time-dependence-into-my-vectors}{{7.5}{83}{How do I put time dependence into my vectors?\relax }{section.7.5}{}}
+\newlabel{faq:index-3}{{7.5}{83}{How do I put time dependence into my vectors?\relax }{section.7.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{84}{section.7.6}}
+\newlabel{faq:index-4}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?\relax }{section.7.6}{}}
+\newlabel{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?\relax }{section.7.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{84}{section.7.7}}
+\newlabel{faq:index-5}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?\relax }{section.7.7}{}}
+\newlabel{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?\relax }{section.7.7}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.8}Visual Editors}{84}{section.7.8}}
+\newlabel{faq:visual-editors}{{7.8}{84}{Visual Editors\relax }{section.7.8}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{85}{chapter.8}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{upgrade:upgradefromxmds1}{{8}{81}{Upgrading From XMDS 1.X}{chapter.8}{}}
-\newlabel{upgrade::doc}{{8}{81}{Upgrading From XMDS 1.X}{chapter.8}{}}
-\newlabel{upgrade:upgrading-from-xmds-1-x}{{8}{81}{Upgrading From XMDS 1.X}{chapter.8}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {9}Optimisation Hints}{83}{chapter.9}}
+\newlabel{upgrade:upgradefromxmds1}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
+\newlabel{upgrade::doc}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
+\newlabel{upgrade:upgrading-from-xmds-1-x}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {9}Optimisation Hints}{87}{chapter.9}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{optimisation_hints::doc}{{9}{83}{Optimisation Hints}{chapter.9}{}}
-\newlabel{optimisation_hints:optimisation-hints}{{9}{83}{Optimisation Hints}{chapter.9}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{83}{section.9.1}}
-\newlabel{optimisation_hints:geometry-and-transform-based-tricks}{{9.1}{83}{Geometry and transform-based tricks}{section.9.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{83}{subsection.9.1.1}}
-\newlabel{optimisation_hints:simpler-simulation-geometries}{{9.1.1}{83}{Simpler simulation geometries}{subsection.9.1.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{83}{subsection.9.1.2}}
-\newlabel{optimisation_hints:tricks-for-bessel-and-hermite-gauss-transforms}{{9.1.2}{83}{Tricks for Bessel and Hermite-Gauss transforms}{subsection.9.1.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.2}Reduce code complexity}{83}{section.9.2}}
-\newlabel{optimisation_hints:reduce-code-complexity}{{9.2}{83}{Reduce code complexity}{section.9.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.1}Use the Interaction Picture (IP) operator}{83}{subsection.9.2.1}}
-\newlabel{optimisation_hints:use-the-interaction-picture-ip-operator}{{9.2.1}{83}{Use the Interaction Picture (IP) operator}{subsection.9.2.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{83}{subsection.9.2.2}}
-\newlabel{optimisation_hints:consider-writing-the-evolution-in-spectral-basis}{{9.2.2}{83}{Consider writing the evolution in spectral basis}{subsection.9.2.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{85}{subsection.9.2.3}}
-\newlabel{optimisation_hints:don-t-recalculate-things-you-don-t-have-to}{{9.2.3}{85}{Don't recalculate things you don't have to}{subsection.9.2.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.3}Compiler and library tricks}{85}{section.9.3}}
-\newlabel{optimisation_hints:compiler-and-library-tricks}{{9.3}{85}{Compiler and library tricks}{section.9.3}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{85}{subsection.9.3.1}}
-\newlabel{optimisation_hints:faster-compiler}{{9.3.1}{85}{Faster compiler}{subsection.9.3.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{85}{subsection.9.3.2}}
-\newlabel{optimisation_hints:faster-libraries}{{9.3.2}{85}{Faster libraries}{subsection.9.3.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{85}{subsection.9.3.3}}
-\newlabel{optimisation_hints:auto-vectorisation}{{9.3.3}{85}{Auto-vectorisation}{subsection.9.3.3}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.4}OpenMP}{85}{subsection.9.3.4}}
-\newlabel{optimisation_hints:openmp}{{9.3.4}{85}{OpenMP}{subsection.9.3.4}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{86}{subsection.9.3.5}}
-\newlabel{optimisation_hints:parallelisation-with-mpi}{{9.3.5}{86}{Parallelisation with MPI}{subsection.9.3.5}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{86}{section.9.4}}
-\newlabel{optimisation_hints:atom-optics-specific-hints}{{9.4}{86}{Atom-optics-specific hints}{section.9.4}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{86}{subsection.9.4.1}}
-\newlabel{optimisation_hints:separate-out-imaginary-time-calculation-code}{{9.4.1}{86}{Separate out imaginary-time calculation code}{subsection.9.4.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{86}{subsection.9.4.2}}
-\newlabel{optimisation_hints:use-an-energy-or-momentum-offset}{{9.4.2}{86}{Use an energy or momentum offset}{subsection.9.4.2}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {10}xsil2graphics2}{87}{chapter.10}}
+\newlabel{optimisation_hints:optimisationhints}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
+\newlabel{optimisation_hints::doc}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
+\newlabel{optimisation_hints:optimisation-hints}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{87}{section.9.1}}
+\newlabel{optimisation_hints:geometry-and-transform-based-tricks}{{9.1}{87}{Geometry and transform-based tricks\relax }{section.9.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{87}{subsection.9.1.1}}
+\newlabel{optimisation_hints:simpler-simulation-geometries}{{9.1.1}{87}{Simpler simulation geometries\relax }{subsection.9.1.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{87}{subsection.9.1.2}}
+\newlabel{optimisation_hints:tricks-for-bessel-and-hermite-gauss-transforms}{{9.1.2}{87}{Tricks for Bessel and Hermite-Gauss transforms\relax }{subsection.9.1.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.2}Reduce code complexity}{87}{section.9.2}}
+\newlabel{optimisation_hints:reduce-code-complexity}{{9.2}{87}{Reduce code complexity\relax }{section.9.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.1}Optimising with the Interaction Picture (IP) operator}{87}{subsection.9.2.1}}
+\newlabel{optimisation_hints:optimising-with-the-interaction-picture-ip-operator}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator\relax }{subsection.9.2.1}{}}
+\newlabel{optimisation_hints:optimisingipoperators}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator\relax }{subsection.9.2.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{88}{subsection.9.2.2}}
+\newlabel{optimisation_hints:consider-writing-the-evolution-in-spectral-basis}{{9.2.2}{88}{Consider writing the evolution in spectral basis\relax }{subsection.9.2.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{89}{subsection.9.2.3}}
+\newlabel{optimisation_hints:don-t-recalculate-things-you-don-t-have-to}{{9.2.3}{89}{Don't recalculate things you don't have to\relax }{subsection.9.2.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.3}Compiler and library tricks}{89}{section.9.3}}
+\newlabel{optimisation_hints:compiler-and-library-tricks}{{9.3}{89}{Compiler and library tricks\relax }{section.9.3}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{89}{subsection.9.3.1}}
+\newlabel{optimisation_hints:faster-compiler}{{9.3.1}{89}{Faster compiler\relax }{subsection.9.3.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{89}{subsection.9.3.2}}
+\newlabel{optimisation_hints:faster-libraries}{{9.3.2}{89}{Faster libraries\relax }{subsection.9.3.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{90}{subsection.9.3.3}}
+\newlabel{optimisation_hints:auto-vectorisation}{{9.3.3}{90}{Auto-vectorisation\relax }{subsection.9.3.3}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.4}OpenMP}{90}{subsection.9.3.4}}
+\newlabel{optimisation_hints:openmp}{{9.3.4}{90}{OpenMP\relax }{subsection.9.3.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{90}{subsection.9.3.5}}
+\newlabel{optimisation_hints:parallelisation-with-mpi}{{9.3.5}{90}{Parallelisation with MPI\relax }{subsection.9.3.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{90}{section.9.4}}
+\newlabel{optimisation_hints:atom-optics-specific-hints}{{9.4}{90}{Atom-optics-specific hints\relax }{section.9.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{90}{subsection.9.4.1}}
+\newlabel{optimisation_hints:separate-out-imaginary-time-calculation-code}{{9.4.1}{90}{Separate out imaginary-time calculation code\relax }{subsection.9.4.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{91}{subsection.9.4.2}}
+\newlabel{optimisation_hints:use-an-energy-or-momentum-offset}{{9.4.2}{91}{Use an energy or momentum offset\relax }{subsection.9.4.2}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {10}xsil2graphics2}{93}{chapter.10}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{xsil2graphics2:xsil2graphics2}{{10}{87}{xsil2graphics2}{chapter.10}{}}
-\newlabel{xsil2graphics2::doc}{{10}{87}{xsil2graphics2}{chapter.10}{}}
-\newlabel{xsil2graphics2:id1}{{10}{87}{xsil2graphics2}{chapter.10}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {11}Developer Documentation}{89}{chapter.11}}
+\newlabel{xsil2graphics2:index-0}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
+\newlabel{xsil2graphics2:xsil2graphics2}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
+\newlabel{xsil2graphics2::doc}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
+\newlabel{xsil2graphics2:id1}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {11}Developer Documentation}{95}{chapter.11}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{developer:developer-documentation}{{11}{89}{Developer Documentation}{chapter.11}{}}
-\newlabel{developer::doc}{{11}{89}{Developer Documentation}{chapter.11}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.1}Test scripts}{89}{section.11.1}}
-\newlabel{developer:test-scripts}{{11.1}{89}{Test scripts}{section.11.1}{}}
-\newlabel{developer:testscripts}{{11.1}{89}{Test scripts}{section.11.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.1}Testing element}{90}{subsection.11.1.1}}
-\newlabel{developer:testing-element}{{11.1.1}{90}{Testing element}{subsection.11.1.1}{}}
-\newlabel{developer:testingelement}{{11.1.1}{90}{Testing element}{subsection.11.1.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.2}command\_line element}{90}{subsection.11.1.2}}
-\newlabel{developer:commandlineelement}{{11.1.2}{90}{command\_line element}{subsection.11.1.2}{}}
-\newlabel{developer:command-line-element}{{11.1.2}{90}{command\_line element}{subsection.11.1.2}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{90}{subsection.11.1.3}}
-\newlabel{developer:input-xsil-file-element}{{11.1.3}{90}{input\_xsil\_file element}{subsection.11.1.3}{}}
-\newlabel{developer:inputxsilfileelement}{{11.1.3}{90}{input\_xsil\_file element}{subsection.11.1.3}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{90}{subsection.11.1.4}}
-\newlabel{developer:xsilfileelement}{{11.1.4}{90}{xsil\_file element}{subsection.11.1.4}{}}
-\newlabel{developer:xsil-file-element}{{11.1.4}{90}{xsil\_file element}{subsection.11.1.4}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{90}{subsection.11.1.5}}
-\newlabel{developer:momentgroupelement}{{11.1.5}{90}{moment\_group element}{subsection.11.1.5}{}}
-\newlabel{developer:moment-group-element}{{11.1.5}{90}{moment\_group element}{subsection.11.1.5}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.2}Steps to update \texttt  {XMDS} script validator (XML schema)}{90}{section.11.2}}
-\newlabel{developer:steps-to-update-xmds-script-validator-xml-schema}{{11.2}{90}{Steps to update \texttt {XMDS} script validator (XML schema)}{section.11.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.3}Directory layout}{90}{section.11.3}}
-\newlabel{developer:directory-layout}{{11.3}{90}{Directory layout}{section.11.3}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.3.1}XMDS2's code and templates}{90}{subsection.11.3.1}}
-\newlabel{developer:xmds2-s-code-and-templates}{{11.3.1}{90}{XMDS2's code and templates}{subsection.11.3.1}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.3.2}Support files}{91}{subsection.11.3.2}}
-\newlabel{developer:support-files}{{11.3.2}{91}{Support files}{subsection.11.3.2}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {12}Licensing}{93}{chapter.12}}
+\newlabel{developer:developer-documentation}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
+\newlabel{developer:developerdocumentation}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
+\newlabel{developer::doc}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.1}Test scripts}{95}{section.11.1}}
+\newlabel{developer:test-scripts}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
+\newlabel{developer:index-0}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
+\newlabel{developer:testscripts}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.1}Testing element}{96}{subsection.11.1.1}}
+\newlabel{developer:testing-element}{{11.1.1}{96}{Testing element\relax }{subsection.11.1.1}{}}
+\newlabel{developer:testingelement}{{11.1.1}{96}{Testing element\relax }{subsection.11.1.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.2}command\_line element}{96}{subsection.11.1.2}}
+\newlabel{developer:commandlineelement}{{11.1.2}{96}{command\_line element\relax }{subsection.11.1.2}{}}
+\newlabel{developer:command-line-element}{{11.1.2}{96}{command\_line element\relax }{subsection.11.1.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{96}{subsection.11.1.3}}
+\newlabel{developer:input-xsil-file-element}{{11.1.3}{96}{input\_xsil\_file element\relax }{subsection.11.1.3}{}}
+\newlabel{developer:inputxsilfileelement}{{11.1.3}{96}{input\_xsil\_file element\relax }{subsection.11.1.3}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{96}{subsection.11.1.4}}
+\newlabel{developer:xsilfileelement}{{11.1.4}{96}{xsil\_file element\relax }{subsection.11.1.4}{}}
+\newlabel{developer:xsil-file-element}{{11.1.4}{96}{xsil\_file element\relax }{subsection.11.1.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{96}{subsection.11.1.5}}
+\newlabel{developer:momentgroupelement}{{11.1.5}{96}{moment\_group element\relax }{subsection.11.1.5}{}}
+\newlabel{developer:moment-group-element}{{11.1.5}{96}{moment\_group element\relax }{subsection.11.1.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.2}XMDS Documentation}{96}{section.11.2}}
+\newlabel{developer:userdocumentation}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
+\newlabel{developer:xmds-documentation}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
+\newlabel{developer:index-1}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.3}How to update \texttt  {XMDS2} script validator (XML schema)}{98}{section.11.3}}
+\newlabel{developer:how-to-update-xmds2-script-validator-xml-schema}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
+\newlabel{developer:index-2}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
+\newlabel{developer:howtoaddelementtovalidator}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.4}How to introduce a new integrator Stepper into the XMDS2 environment}{101}{section.11.4}}
+\newlabel{developer:how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
+\newlabel{developer:howtoaddintegrator}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
+\newlabel{developer:index-3}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
+\newlabel{developer:logicalbreakdownparsingprocess}{{11.4}{102}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section*.54}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.5}Logical breakdown of XMDS2 Parsing Process}{102}{section.11.5}}
+\newlabel{developer:index-4}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process\relax }{section.11.5}{}}
+\newlabel{developer:logical-breakdown-of-xmds2-parsing-process}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process\relax }{section.11.5}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.5.1}Overall process for parsing XML file in XMDS2}{104}{subsection.11.5.1}}
+\newlabel{developer:overall-process-for-parsing-xml-file-in-xmds2}{{11.5.1}{104}{Overall process for parsing XML file in XMDS2\relax }{subsection.11.5.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.5.2}parser2.py parses XML file (Sub process 3)}{107}{subsection.11.5.2}}
+\newlabel{developer:parser2-py-parses-xml-file-sub-process-3}{{11.5.2}{107}{parser2.py parses XML file (Sub process 3)\relax }{subsection.11.5.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.5.3}Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}{110}{subsection.11.5.3}}
+\newlabel{developer:pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4}{{11.5.3}{110}{Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)\relax }{subsection.11.5.3}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.5.4}Parse Top Level Sequence elements (Sub process 3.4.11)}{111}{subsection.11.5.4}}
+\newlabel{developer:parse-top-level-sequence-elements-sub-process-3-4-11}{{11.5.4}{111}{Parse Top Level Sequence elements (Sub process 3.4.11)\relax }{subsection.11.5.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.5.5}Parse Integrate Element (Sub process 3.4.11.2)}{112}{subsection.11.5.5}}
+\newlabel{developer:parse-integrate-element-sub-process-3-4-11-2}{{11.5.5}{112}{Parse Integrate Element (Sub process 3.4.11.2)\relax }{subsection.11.5.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {11.6}Directory layout}{113}{section.11.6}}
+\newlabel{developer:index-5}{{11.6}{113}{Directory layout\relax }{section.11.6}{}}
+\newlabel{developer:directory-layout}{{11.6}{113}{Directory layout\relax }{section.11.6}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.6.1}XMDS2's code and templates}{113}{subsection.11.6.1}}
+\newlabel{developer:xmds2-s-code-and-templates}{{11.6.1}{113}{XMDS2's code and templates\relax }{subsection.11.6.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {11.6.2}Support files}{114}{subsection.11.6.2}}
+\newlabel{developer:support-files}{{11.6.2}{114}{Support files\relax }{subsection.11.6.2}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {12}Licensing}{115}{chapter.12}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{licensing::doc}{{12}{93}{Licensing}{chapter.12}{}}
-\newlabel{licensing:licensing}{{12}{93}{Licensing}{chapter.12}{}}
-\newlabel{licensing:id1}{{12}{93}{Licensing}{chapter.12}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {13}News}{95}{chapter.13}}
+\newlabel{licensing:index-0}{{12}{115}{Licensing\relax }{chapter.12}{}}
+\newlabel{licensing::doc}{{12}{115}{Licensing\relax }{chapter.12}{}}
+\newlabel{licensing:licensing}{{12}{115}{Licensing\relax }{chapter.12}{}}
+\newlabel{licensing:id1}{{12}{115}{Licensing\relax }{chapter.12}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.1}GNU General Public License}{115}{section.12.1}}
+\newlabel{licensing:gnu-general-public-license}{{12.1}{115}{GNU General Public License\relax }{section.12.1}{}}
+\newlabel{licensing:index-1}{{12.1}{115}{GNU General Public License\relax }{section.12.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.2}GNU Free Documentation License}{118}{section.12.2}}
+\newlabel{licensing:gnu-free-documentation-license}{{12.2}{118}{GNU Free Documentation License\relax }{section.12.2}{}}
+\newlabel{licensing:index-2}{{12.2}{118}{GNU Free Documentation License\relax }{section.12.2}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {13}News}{125}{chapter.13}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{news:news}{{13}{95}{News}{chapter.13}{}}
-\newlabel{news::doc}{{13}{95}{News}{chapter.13}{}}
-\newlabel{news:id1}{{13}{95}{News}{chapter.13}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.1}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{95}{section.13.1}}
-\newlabel{news:xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013}{{13.1}{95}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{section.13.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.2}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{95}{section.13.2}}
-\newlabel{news:xmds-2-1-3-happy-mollusc-june-7-2013}{{13.2}{95}{XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{section.13.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.3}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{95}{section.13.3}}
-\newlabel{news:xmds-2-1-2-happy-mollusc-october-15-2012}{{13.3}{95}{XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{section.13.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.4}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{96}{section.13.4}}
-\newlabel{news:xmds-2-1-happy-mollusc-june-14-2012}{{13.4}{96}{XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{section.13.4}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.5}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{97}{section.13.5}}
-\newlabel{news:xmds-2-0-shiny-september-13-2010}{{13.5}{97}{XMDS 2.0 ``Shiny!'' (September 13, 2010)}{section.13.5}{}}
+\newlabel{news:news}{{13}{125}{News\relax }{chapter.13}{}}
+\newlabel{news:index-0}{{13}{125}{News\relax }{chapter.13}{}}
+\newlabel{news::doc}{{13}{125}{News\relax }{chapter.13}{}}
+\newlabel{news:id1}{{13}{125}{News\relax }{chapter.13}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.1}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.1}}
+\newlabel{news:xmds-2-2-0-out-of-cheese-error-january-13-2014}{{13.1}{125}{XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)\relax }{section.13.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.2}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{125}{section.13.2}}
+\newlabel{news:xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013}{{13.2}{125}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)\relax }{section.13.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.3}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.3}}
+\newlabel{news:xmds-2-1-3-happy-mollusc-june-7-2013}{{13.3}{126}{XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)\relax }{section.13.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.4}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.4}}
+\newlabel{news:xmds-2-1-2-happy-mollusc-october-15-2012}{{13.4}{126}{XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)\relax }{section.13.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.5}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.5}}
+\newlabel{news:xmds-2-1-happy-mollusc-june-14-2012}{{13.5}{127}{XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)\relax }{section.13.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.6}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.6}}
+\newlabel{news:xmds-2-0-shiny-september-13-2010}{{13.6}{127}{XMDS 2.0 ``Shiny!'' (September 13, 2010)\relax }{section.13.6}{}}
+\@writefile{toc}{\contentsline {chapter}{Index}{129}{section*.55}}
diff --git a/documentation/latex/xmds2.idx b/documentation/latex/xmds2.idx
index e69de29..722bf89 100644
--- a/documentation/latex/xmds2.idx
+++ b/documentation/latex/xmds2.idx
@@ -0,0 +1,196 @@
+\indexentry{Installing XMDS2|hyperpage}{2}
+\indexentry{Installers - linux|hyperpage}{3}
+\indexentry{Installers - Max OS X|hyperpage}{4}
+\indexentry{Installing via source|hyperpage}{4}
+\indexentry{Tutorial|hyperpage}{7}
+\indexentry{Exporting data|hyperpage}{11}
+\indexentry{Examples|hyperpage}{14}
+\indexentry{Nonlinear Schroedinger equation|hyperpage}{15}
+\indexentry{Kubo oscillator|hyperpage}{19}
+\indexentry{Driver examples!multi-path|hyperpage}{20}
+\indexentry{Noise vector example|hyperpage}{20}
+\indexentry{Fibre noise|hyperpage}{21}
+\indexentry{Multi-path MPI|hyperpage}{24}
+\indexentry{Driver examples!mpi-multi-path|hyperpage}{24}
+\indexentry{Integer dimensions|hyperpage}{25}
+\indexentry{Distributed MPI|hyperpage}{30}
+\indexentry{MPI|hyperpage}{30}
+\indexentry{Driver examples!distributed-mpi|hyperpage}{30}
+\indexentry{Command line arguments|hyperpage}{30}
+\indexentry{\_SAMPLE\_COMPLEX|hyperpage}{31}
+\indexentry{Computed vectors|hyperpage}{34}
+\indexentry{Aliases|hyperpage}{41}
+\indexentry{XMDS2 XML schema|hyperpage}{44}
+\indexentry{XML schema|hyperpage}{44}
+\indexentry{Reference|hyperpage}{46}
+\indexentry{XML Elements|hyperpage}{46}
+\indexentry{Script elements|hyperpage}{46}
+\indexentry{XML elements!simulation|hyperpage}{47}
+\indexentry{XML elements!name (of simulation)|hyperpage}{47}
+\indexentry{XML elements!author|hyperpage}{47}
+\indexentry{XML elements!description|hyperpage}{47}
+\indexentry{XML elements!features|hyperpage}{47}
+\indexentry{XML elements!arguments|hyperpage}{48}
+\indexentry{XML elements!argument|hyperpage}{49}
+\indexentry{XML element attributes!name|hyperpage}{49}
+\indexentry{XML element attributes!type|hyperpage}{49}
+\indexentry{XML element attributes!default\_value|hyperpage}{49}
+\indexentry{XML elements!autovectorise|hyperpage}{49}
+\indexentry{XML elements!benchmark|hyperpage}{49}
+\indexentry{XML elements!bing|hyperpage}{49}
+\indexentry{XML elements!cflags|hyperpage}{49}
+\indexentry{XML elements!chunked\_output|hyperpage}{49}
+\indexentry{XML elements!diagnostics|hyperpage}{50}
+\indexentry{XML elements!error\_check|hyperpage}{50}
+\indexentry{XML elements!halt\_non\_finite|hyperpage}{50}
+\indexentry{XML elements!fftw|hyperpage}{50}
+\indexentry{XML element attributes!plan|hyperpage}{50}
+\indexentry{XML elements!globals|hyperpage}{51}
+\indexentry{XML elements!openmp|hyperpage}{51}
+\indexentry{Single precision|hyperpage}{51}
+\indexentry{Double precision|hyperpage}{51}
+\indexentry{Precision|hyperpage}{51}
+\indexentry{XML elements!precision|hyperpage}{51}
+\indexentry{XML elements!validation|hyperpage}{52}
+\indexentry{XML element attributes!kind|hyperpage}{52}
+\indexentry{XML elements!driver|hyperpage}{52}
+\indexentry{XML element attributes!name (driver)|hyperpage}{52}
+\indexentry{Drivers!distributed-mpi"|hyperpage}{52}
+\indexentry{Drivers!multi-path"|hyperpage}{52}
+\indexentry{Drivers!mpi-multi-path"|hyperpage}{52}
+\indexentry{Drivers!adaptive-mpi-multi-path"|hyperpage}{52}
+\indexentry{XML elements!geometry|hyperpage}{53}
+\indexentry{XML elements!propagation\_dimension|hyperpage}{53}
+\indexentry{XML elements!transverse\_dimensions|hyperpage}{53}
+\indexentry{XML elements!dimension|hyperpage}{53}
+\indexentry{XML element attributes!name (dimension)|hyperpage}{53}
+\indexentry{XML element attributes!type (dimension)|hyperpage}{53}
+\indexentry{XML element attributes!lattice|hyperpage}{53}
+\indexentry{XML element attributes!domain|hyperpage}{53}
+\indexentry{Aliases|hyperpage}{53}
+\indexentry{XML element attributes!aliases|hyperpage}{53}
+\indexentry{Vectors!non-local access|hyperpage}{53}
+\indexentry{XML element attributes!volume\_prefactor|hyperpage}{53}
+\indexentry{XML element attributes!transform|hyperpage}{54}
+\indexentry{Aliases|hyperpage}{54}
+\indexentry{Transforms!dft|hyperpage}{54}
+\indexentry{Boundary conditions (DFT)|hyperpage}{54}
+\indexentry{Transforms!dct|hyperpage}{55}
+\indexentry{Boundary conditions (DCT)|hyperpage}{55}
+\indexentry{Transforms!dst|hyperpage}{55}
+\indexentry{Boundary conditions (DST)|hyperpage}{56}
+\indexentry{Transforms!bessel|hyperpage}{56}
+\indexentry{Boundary conditions (Bessel)|hyperpage}{57}
+\indexentry{Boundary conditions|hyperpage}{57}
+\indexentry{Transforms!spherical-bessel|hyperpage}{57}
+\indexentry{Transforms!hermite-gauss|hyperpage}{58}
+\indexentry{XML element attributes!length\_scale|hyperpage}{58}
+\indexentry{XML elements!vector|hyperpage}{59}
+\indexentry{XML element attributes!name (vector)|hyperpage}{59}
+\indexentry{XML element attributes!type (vector)|hyperpage}{59}
+\indexentry{XML elements!components|hyperpage}{59}
+\indexentry{XML element attributes!initial\_basis (vector)|hyperpage}{59}
+\indexentry{XML elements!initialisation|hyperpage}{59}
+\indexentry{XML element attributes!name (vector)|hyperpage}{59}
+\indexentry{Vectors!non-local access|hyperpage}{59}
+\indexentry{Vectors!non-local access|hyperpage}{60}
+\indexentry{MPI!non-local vector access|hyperpage}{60}
+\indexentry{XML elements!filename|hyperpage}{60}
+\indexentry{XML element attributes!kind (initialisation element)|hyperpage}{60}
+\indexentry{XML element attributes!geometry\_matching\_mode|hyperpage}{60}
+\indexentry{XML elements!dependencies|hyperpage}{61}
+\indexentry{XML element attributes!basis (dependencies element)|hyperpage}{61}
+\indexentry{XML elements!computed\_vector|hyperpage}{61}
+\indexentry{XML elements!evaluation|hyperpage}{62}
+\indexentry{XML element attributes!name (computed vector)|hyperpage}{62}
+\indexentry{XML element attributes!dimensions (computed vector)|hyperpage}{62}
+\indexentry{XML element attributes!type (computed vector)|hyperpage}{62}
+\indexentry{XML elements!noise\_vector|hyperpage}{62}
+\indexentry{XML element attributes!name (noise vector)|hyperpage}{62}
+\indexentry{XML element attributes!dimensions (noise vector)|hyperpage}{62}
+\indexentry{XML element attributes!type (noise vector)|hyperpage}{62}
+\indexentry{XML element attributes!initial\_basis (noise vector)|hyperpage}{62}
+\indexentry{XML element attributes!method|hyperpage}{62}
+\indexentry{XML element attributes!seed|hyperpage}{62}
+\indexentry{XML element attributes!kind (noise vector)|hyperpage}{62}
+\indexentry{Noise!uniform|hyperpage}{63}
+\indexentry{Noise!gaussian|hyperpage}{63}
+\indexentry{Noise!wiener|hyperpage}{64}
+\indexentry{Noise!poissonian|hyperpage}{64}
+\indexentry{Noise!jump|hyperpage}{64}
+\indexentry{XML elements!sequence|hyperpage}{65}
+\indexentry{XML element attributes!cycles|hyperpage}{65}
+\indexentry{XML elements!filter|hyperpage}{65}
+\indexentry{XML element attributes!name (filter)|hyperpage}{65}
+\indexentry{XML elements!integrate|hyperpage}{66}
+\indexentry{XML element attributes!interval|hyperpage}{66}
+\indexentry{XML element attributes!algorithm|hyperpage}{66}
+\indexentry{XML element attributes!steps|hyperpage}{66}
+\indexentry{XML element attributes!tolerance|hyperpage}{66}
+\indexentry{Integration algorithms!all|hyperpage}{66}
+\indexentry{XML elements!samples|hyperpage}{66}
+\indexentry{Operators|hyperpage}{67}
+\indexentry{XML elements!operators|hyperpage}{67}
+\indexentry{XML elements!integration\_vectors|hyperpage}{67}
+\indexentry{Vectors!non-local access|hyperpage}{67}
+\indexentry{XML elements!operator|hyperpage}{67}
+\indexentry{XML element attributes!kind (operator)|hyperpage}{67}
+\indexentry{Operators!IP|hyperpage}{67}
+\indexentry{Operators!EX|hyperpage}{67}
+\indexentry{IP operators|hyperpage}{67}
+\indexentry{EX operators|hyperpage}{67}
+\indexentry{XML element attributes!constant|hyperpage}{68}
+\indexentry{Cross-propagation|hyperpage}{68}
+\indexentry{XML element attributes!cross-propagation|hyperpage}{68}
+\indexentry{XML elements!boundary\_conditions|hyperpage}{68}
+\indexentry{XML element attributes!kind (boundary\_condition element)|hyperpage}{68}
+\indexentry{Boundary conditions|hyperpage}{68}
+\indexentry{Integration algorithms!semi-implicit (SI)|hyperpage}{69}
+\indexentry{Integration algorithms!Runge-Kutta (RK)|hyperpage}{69}
+\indexentry{Integration algorithms!adaptive Runge-Kutta (ARK)|hyperpage}{70}
+\indexentry{Integration algorithms!Richardson extrapolation|hyperpage}{70}
+\indexentry{XML elements!filters|hyperpage}{71}
+\indexentry{XML element attributes!where|hyperpage}{71}
+\indexentry{XML elements!breakpoint|hyperpage}{71}
+\indexentry{XML element attributes!filename (breakpoint element)|hyperpage}{71}
+\indexentry{XML element attributes!format (breakpoint element)|hyperpage}{71}
+\indexentry{XML elements!output|hyperpage}{71}
+\indexentry{XML element attributes!format (output element)|hyperpage}{72}
+\indexentry{XML element attributes!filename (output element)|hyperpage}{72}
+\indexentry{XML element attributes!format (output element)|hyperpage}{72}
+\indexentry{Sampling|hyperpage}{72}
+\indexentry{XML elements!sampling\_group|hyperpage}{72}
+\indexentry{XML element attributes!basis (sampling\_group element)|hyperpage}{72}
+\indexentry{XML element attributes!initial\_sample|hyperpage}{72}
+\indexentry{\_lattice|hyperpage}{73}
+\indexentry{\_min|hyperpage}{73}
+\indexentry{\_max|hyperpage}{73}
+\indexentry{\_dx|hyperpage}{73}
+\indexentry{XML element attributes!basis (sampling\_group element)|hyperpage}{73}
+\indexentry{Modified midpoint method|hyperpage}{73}
+\indexentry{Bulirsch-Stoer algorithm|hyperpage}{74}
+\indexentry{Bulirsch-Stoer error scaling|hyperpage}{74}
+\indexentry{Advanced topics|hyperpage}{75}
+\indexentry{Importing data|hyperpage}{77}
+\indexentry{Convolutions and Fourier transforms|hyperpage}{79}
+\indexentry{Geometry matching mode - loose|hyperpage}{81}
+\indexentry{Dimension aliases|hyperpage}{82}
+\indexentry{FAQ|hyperpage}{82}
+\indexentry{Citing XMDS2|hyperpage}{83}
+\indexentry{Bug reports|hyperpage}{83}
+\indexentry{Time dependence in vectors|hyperpage}{83}
+\indexentry{Grid specification at run-time|hyperpage}{84}
+\indexentry{IP versus EX operators|hyperpage}{84}
+\indexentry{xsil2graphics2|hyperpage}{91}
+\indexentry{Exporting data|hyperpage}{91}
+\indexentry{Test scripts|hyperpage}{95}
+\indexentry{Documentation format|hyperpage}{96}
+\indexentry{XML schema updates|hyperpage}{96}
+\indexentry{Adding an integrator|hyperpage}{99}
+\indexentry{XMDS2 parsing process|hyperpage}{102}
+\indexentry{XMDS2 project directory layout|hyperpage}{112}
+\indexentry{Licensing|hyperpage}{114}
+\indexentry{GNU General Public License|hyperpage}{115}
+\indexentry{GPL|hyperpage}{115}
+\indexentry{GNU Free Documentation License|hyperpage}{118}
+\indexentry{News|hyperpage}{123}
diff --git a/documentation/latex/xmds2.ilg b/documentation/latex/xmds2.ilg
index c56dd8d..a90ee20 100644
--- a/documentation/latex/xmds2.ilg
+++ b/documentation/latex/xmds2.ilg
@@ -1,5 +1,7 @@
-This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support).
+This is makeindex, version 2.15 [TeX Live 2009] (kpathsea + Thai support).
 Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored).
-Scanning input file xmds2.idx...done (0 entries accepted, 0 rejected).
-Nothing written in xmds2.ind.
+Scanning input file xmds2.idx....done (196 entries accepted, 0 rejected).
+Sorting entries.....done (1560 comparisons).
+Generating output file xmds2.ind....done (257 lines written, 0 warnings).
+Output written in xmds2.ind.
 Transcript written in xmds2.ilg.
diff --git a/documentation/latex/xmds2.ind b/documentation/latex/xmds2.ind
index e69de29..cf60f0d 100644
--- a/documentation/latex/xmds2.ind
+++ b/documentation/latex/xmds2.ind
@@ -0,0 +1,257 @@
+\begin{theindex}
+\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}}
+
+  \bigletter {Symbols}
+  \item \_SAMPLE\_COMPLEX, \hyperpage{31}
+  \item \_dx, \hyperpage{73}
+  \item \_lattice, \hyperpage{73}
+  \item \_max, \hyperpage{73}
+  \item \_min, \hyperpage{73}
+
+  \indexspace
+  \bigletter A
+  \item Adding an integrator, \hyperpage{99}
+  \item Advanced topics, \hyperpage{75}
+  \item Aliases, \hyperpage{41}, \hyperpage{53, 54}
+
+  \indexspace
+  \bigletter B
+  \item Boundary conditions, \hyperpage{57}, \hyperpage{68}
+  \item Boundary conditions (Bessel), \hyperpage{57}
+  \item Boundary conditions (DCT), \hyperpage{55}
+  \item Boundary conditions (DFT), \hyperpage{54}
+  \item Boundary conditions (DST), \hyperpage{56}
+  \item Bug reports, \hyperpage{83}
+  \item Bulirsch-Stoer algorithm, \hyperpage{74}
+  \item Bulirsch-Stoer error scaling, \hyperpage{74}
+
+  \indexspace
+  \bigletter C
+  \item Citing XMDS2, \hyperpage{83}
+  \item Command line arguments, \hyperpage{30}
+  \item Computed vectors, \hyperpage{34}
+  \item Convolutions and Fourier transforms, \hyperpage{79}
+  \item Cross-propagation, \hyperpage{68}
+
+  \indexspace
+  \bigletter D
+  \item Dimension aliases, \hyperpage{82}
+  \item Distributed MPI, \hyperpage{30}
+  \item Documentation format, \hyperpage{96}
+  \item Double precision, \hyperpage{51}
+  \item Driver examples
+    \subitem distributed-mpi, \hyperpage{30}
+    \subitem mpi-multi-path, \hyperpage{24}
+    \subitem multi-path, \hyperpage{20}
+  \item Drivers
+    \subitem adaptive-mpi-multi-path|hyperpage, 52
+    \subitem distributed-mpi|hyperpage, 52
+    \subitem mpi-multi-path|hyperpage, 52
+    \subitem multi-path|hyperpage, 52
+
+  \indexspace
+  \bigletter E
+  \item EX operators, \hyperpage{67}
+  \item Examples, \hyperpage{14}
+  \item Exporting data, \hyperpage{11}, \hyperpage{91}
+
+  \indexspace
+  \bigletter F
+  \item FAQ, \hyperpage{82}
+  \item Fibre noise, \hyperpage{21}
+
+  \indexspace
+  \bigletter G
+  \item Geometry matching mode - loose, \hyperpage{81}
+  \item GNU Free Documentation License, \hyperpage{118}
+  \item GNU General Public License, \hyperpage{115}
+  \item GPL, \hyperpage{115}
+  \item Grid specification at run-time, \hyperpage{84}
+
+  \indexspace
+  \bigletter I
+  \item Importing data, \hyperpage{77}
+  \item Installers - linux, \hyperpage{3}
+  \item Installers - Max OS X, \hyperpage{4}
+  \item Installing via source, \hyperpage{4}
+  \item Installing XMDS2, \hyperpage{2}
+  \item Integer dimensions, \hyperpage{25}
+  \item Integration algorithms
+    \subitem adaptive Runge-Kutta (ARK), \hyperpage{70}
+    \subitem all, \hyperpage{66}
+    \subitem Richardson extrapolation, \hyperpage{70}
+    \subitem Runge-Kutta (RK), \hyperpage{69}
+    \subitem semi-implicit (SI), \hyperpage{69}
+  \item IP operators, \hyperpage{67}
+  \item IP versus EX operators, \hyperpage{84}
+
+  \indexspace
+  \bigletter K
+  \item Kubo oscillator, \hyperpage{19}
+
+  \indexspace
+  \bigletter L
+  \item Licensing, \hyperpage{114}
+
+  \indexspace
+  \bigletter M
+  \item Modified midpoint method, \hyperpage{73}
+  \item MPI, \hyperpage{30}
+    \subitem non-local vector access, \hyperpage{60}
+  \item Multi-path MPI, \hyperpage{24}
+
+  \indexspace
+  \bigletter N
+  \item News, \hyperpage{123}
+  \item Noise
+    \subitem gaussian, \hyperpage{63}
+    \subitem jump, \hyperpage{64}
+    \subitem poissonian, \hyperpage{64}
+    \subitem uniform, \hyperpage{63}
+    \subitem wiener, \hyperpage{64}
+  \item Noise vector example, \hyperpage{20}
+  \item Nonlinear Schroedinger equation, \hyperpage{15}
+
+  \indexspace
+  \bigletter O
+  \item Operators, \hyperpage{67}
+    \subitem EX, \hyperpage{67}
+    \subitem IP, \hyperpage{67}
+
+  \indexspace
+  \bigletter P
+  \item Precision, \hyperpage{51}
+
+  \indexspace
+  \bigletter R
+  \item Reference, \hyperpage{46}
+
+  \indexspace
+  \bigletter S
+  \item Sampling, \hyperpage{72}
+  \item Script elements, \hyperpage{46}
+  \item Single precision, \hyperpage{51}
+
+  \indexspace
+  \bigletter T
+  \item Test scripts, \hyperpage{95}
+  \item Time dependence in vectors, \hyperpage{83}
+  \item Transforms
+    \subitem bessel, \hyperpage{56}
+    \subitem dct, \hyperpage{55}
+    \subitem dft, \hyperpage{54}
+    \subitem dst, \hyperpage{55}
+    \subitem hermite-gauss, \hyperpage{58}
+    \subitem spherical-bessel, \hyperpage{57}
+  \item Tutorial, \hyperpage{7}
+
+  \indexspace
+  \bigletter V
+  \item Vectors
+    \subitem non-local access, \hyperpage{53}, \hyperpage{59, 60}, \hyperpage{67}
+
+  \indexspace
+  \bigletter X
+  \item XMDS2 parsing process, \hyperpage{102}
+  \item XMDS2 project directory layout, \hyperpage{112}
+  \item XMDS2 XML schema, \hyperpage{44}
+  \item XML element attributes
+    \subitem algorithm, \hyperpage{66}
+    \subitem aliases, \hyperpage{53}
+    \subitem basis (dependencies element), \hyperpage{61}
+    \subitem basis (sampling\_group element), \hyperpage{72, 73}
+    \subitem constant, \hyperpage{68}
+    \subitem cross-propagation, \hyperpage{68}
+    \subitem cycles, \hyperpage{65}
+    \subitem default\_value, \hyperpage{49}
+    \subitem dimensions (computed vector), \hyperpage{62}
+    \subitem dimensions (noise vector), \hyperpage{62}
+    \subitem domain, \hyperpage{53}
+    \subitem filename (breakpoint element), \hyperpage{71}
+    \subitem filename (output element), \hyperpage{72}
+    \subitem format (breakpoint element), \hyperpage{71}
+    \subitem format (output element), \hyperpage{72}
+    \subitem geometry\_matching\_mode, \hyperpage{60}
+    \subitem initial\_basis (noise vector), \hyperpage{62}
+    \subitem initial\_basis (vector), \hyperpage{59}
+    \subitem initial\_sample, \hyperpage{72}
+    \subitem interval, \hyperpage{66}
+    \subitem kind, \hyperpage{52}
+    \subitem kind (boundary\_condition element), \hyperpage{68}
+    \subitem kind (initialisation element), \hyperpage{60}
+    \subitem kind (noise vector), \hyperpage{62}
+    \subitem kind (operator), \hyperpage{67}
+    \subitem lattice, \hyperpage{53}
+    \subitem length\_scale, \hyperpage{58}
+    \subitem method, \hyperpage{62}
+    \subitem name, \hyperpage{49}
+    \subitem name (computed vector), \hyperpage{62}
+    \subitem name (dimension), \hyperpage{53}
+    \subitem name (driver), \hyperpage{52}
+    \subitem name (filter), \hyperpage{65}
+    \subitem name (noise vector), \hyperpage{62}
+    \subitem name (vector), \hyperpage{59}
+    \subitem plan, \hyperpage{50}
+    \subitem seed, \hyperpage{62}
+    \subitem steps, \hyperpage{66}
+    \subitem tolerance, \hyperpage{66}
+    \subitem transform, \hyperpage{54}
+    \subitem type, \hyperpage{49}
+    \subitem type (computed vector), \hyperpage{62}
+    \subitem type (dimension), \hyperpage{53}
+    \subitem type (noise vector), \hyperpage{62}
+    \subitem type (vector), \hyperpage{59}
+    \subitem volume\_prefactor, \hyperpage{53}
+    \subitem where, \hyperpage{71}
+  \item XML Elements, \hyperpage{46}
+  \item XML elements
+    \subitem argument, \hyperpage{49}
+    \subitem arguments, \hyperpage{48}
+    \subitem author, \hyperpage{47}
+    \subitem autovectorise, \hyperpage{49}
+    \subitem benchmark, \hyperpage{49}
+    \subitem bing, \hyperpage{49}
+    \subitem boundary\_conditions, \hyperpage{68}
+    \subitem breakpoint, \hyperpage{71}
+    \subitem cflags, \hyperpage{49}
+    \subitem chunked\_output, \hyperpage{49}
+    \subitem components, \hyperpage{59}
+    \subitem computed\_vector, \hyperpage{61}
+    \subitem dependencies, \hyperpage{61}
+    \subitem description, \hyperpage{47}
+    \subitem diagnostics, \hyperpage{50}
+    \subitem dimension, \hyperpage{53}
+    \subitem driver, \hyperpage{52}
+    \subitem error\_check, \hyperpage{50}
+    \subitem evaluation, \hyperpage{62}
+    \subitem features, \hyperpage{47}
+    \subitem fftw, \hyperpage{50}
+    \subitem filename, \hyperpage{60}
+    \subitem filter, \hyperpage{65}
+    \subitem filters, \hyperpage{71}
+    \subitem geometry, \hyperpage{53}
+    \subitem globals, \hyperpage{51}
+    \subitem halt\_non\_finite, \hyperpage{50}
+    \subitem initialisation, \hyperpage{59}
+    \subitem integrate, \hyperpage{66}
+    \subitem integration\_vectors, \hyperpage{67}
+    \subitem name (of simulation), \hyperpage{47}
+    \subitem noise\_vector, \hyperpage{62}
+    \subitem openmp, \hyperpage{51}
+    \subitem operator, \hyperpage{67}
+    \subitem operators, \hyperpage{67}
+    \subitem output, \hyperpage{71}
+    \subitem precision, \hyperpage{51}
+    \subitem propagation\_dimension, \hyperpage{53}
+    \subitem samples, \hyperpage{66}
+    \subitem sampling\_group, \hyperpage{72}
+    \subitem sequence, \hyperpage{65}
+    \subitem simulation, \hyperpage{47}
+    \subitem transverse\_dimensions, \hyperpage{53}
+    \subitem validation, \hyperpage{52}
+    \subitem vector, \hyperpage{59}
+  \item XML schema, \hyperpage{44}
+  \item XML schema updates, \hyperpage{96}
+  \item xsil2graphics2, \hyperpage{91}
+
+\end{theindex}
diff --git a/documentation/latex/xmds2.log b/documentation/latex/xmds2.log
index a7589f5..08c027d 100644
--- a/documentation/latex/xmds2.log
+++ b/documentation/latex/xmds2.log
@@ -1,26 +1,16 @@
-This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) (format=pdflatex 2013.4.1)  28 SEP 2013 09:00
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.5.1)  14 JAN 2014 09:33
 entering extended mode
- restricted \write18 enabled.
  %&-line parsing enabled.
 **xmds2.tex
 (./xmds2.tex
-LaTeX2e <2011/06/27>
-Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
-rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi
-c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
-h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
-h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h
-ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma
-rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, 
-kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk,
- piedmontese, polish, portuguese, romanian, romansh, russian, sanskrit, serbian
-, serbianc, slovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, u
-ppersorbian, welsh, loaded.
+LaTeX2e <2009/09/24>
+Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, loaded.
 (./sphinxmanual.cls
 Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual)
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/report.cls
+(/usr/share/texmf-texlive/tex/latex/base/report.cls
 Document Class: report 2007/10/19 v1.4h Standard LaTeX document class
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/size10.clo
+(/usr/share/texmf-texlive/tex/latex/base/size10.clo
 File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 )
 \c at part=\count79
@@ -36,19 +26,19 @@ File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 \belowcaptionskip=\skip42
 \bibindent=\dimen102
 ))
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/inputenc.sty
+(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
 Package: inputenc 2008/03/30 v1.1d Input encoding file
 \inpenc at prehook=\toks14
 \inpenc at posthook=\toks15
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/utf8.def
+(/usr/share/texmf-texlive/tex/latex/base/utf8.def
 File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OML ...
 ... no UTF-8 mapping file for font encoding OML
 Now handling font encoding T1 ...
 ... processing UTF-8 mapping file for font encoding T1
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/t1enc.dfu
+(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu
 File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A1 (decimal 161)
    defining Unicode char U+00A3 (decimal 163)
@@ -198,7 +188,7 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OT1 ...
 ... processing UTF-8 mapping file for font encoding OT1
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ot1enc.dfu
+(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu
 File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A1 (decimal 161)
    defining Unicode char U+00A3 (decimal 163)
@@ -229,7 +219,7 @@ File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OMS ...
 ... processing UTF-8 mapping file for font encoding OMS
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/omsenc.dfu
+(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu
 File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A7 (decimal 167)
    defining Unicode char U+00B6 (decimal 182)
@@ -255,32 +245,31 @@ Now handling font encoding U ...
 ))
    defining Unicode char U+00A0 (decimal 160)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/cmap/cmap.sty
-Package: cmap 2008/03/06 v1.0h CMap support: searchable PDF
-)
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty
+(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
 Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/t1enc.def
+(/usr/share/texmf-texlive/tex/latex/base/t1enc.def
 File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
-)<<t1.cmap>>)
-(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/babel.sty
-Package: babel 2008/07/08 v3.8m The Babel package
+))
+(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
+Package: babel 2008/07/06 v3.8l The Babel package
 
-(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/english.ldf
+(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
 Language: english 2005/03/30 v3.3o English support from the babel system
 
-(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/babel.def
-File: babel.def 2008/07/08 v3.8m Babel common definitions
+(/usr/share/texmf-texlive/tex/generic/babel/babel.def
+File: babel.def 2008/07/06 v3.8l Babel common definitions
 \babel at savecnt=\count88
 \U at D=\dimen103
 )
+\l at british = a dialect from \language\l at english 
+\l at UKenglish = a dialect from \language\l at english 
 \l at canadian = a dialect from \language\l at american 
 \l at australian = a dialect from \language\l at british 
 \l at newzealand = a dialect from \language\l at british 
 ))
-(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/times.sty
+(/usr/share/texmf-texlive/tex/latex/psnfss/times.sty
 Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) 
 ) (./fncychap.sty
 Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters)
@@ -293,7 +282,8 @@ Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters)
 \pxx=\skip49
 \c at AlphaCnt=\count89
 \c at AlphaDecCnt=\count90
-) (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/longtable.sty
+)
+(/usr/share/texmf-texlive/tex/latex/tools/longtable.sty
 Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
 \LTleft=\skip50
 \LTright=\skip51
@@ -310,22 +300,10 @@ Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
 \c at LT@tables=\count94
 \c at LT@chunks=\count95
 \LT at p@ftn=\toks16
-)
-(./sphinx.sty
+) (./sphinx.sty
 Package: sphinx 2010/01/15 LaTeX package (Sphinx markup)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
-\fancy at headwidth=\skip54
-\f at ncyO@elh=\skip55
-\f at ncyO@erh=\skip56
-\f at ncyO@olh=\skip57
-\f at ncyO@orh=\skip58
-\f at ncyO@elf=\skip59
-\f at ncyO@erf=\skip60
-\f at ncyO@olf=\skip61
-\f at ncyO@orf=\skip62
-)
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/textcomp.sty
+(/usr/share/texmf-texlive/tex/latex/base/textcomp.sty
 Package: textcomp 2005/09/27 v1.99g Standard LaTeX package
 Package textcomp Info: Sub-encoding information:
 (textcomp)               5 = only ISO-Adobe without \textcurrency
@@ -340,12 +318,12 @@ Package textcomp Info: Sub-encoding information:
 (textcomp)             See the documentation for details.
 Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71.
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1enc.def
+(/usr/share/texmf-texlive/tex/latex/base/ts1enc.def
 File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
 Now handling font encoding TS1 ...
 ... processing UTF-8 mapping file for font encoding TS1
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1enc.dfu
+(/usr/share/texmf-texlive/tex/latex/base/ts1enc.dfu
 File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A2 (decimal 162)
    defining Unicode char U+00A3 (decimal 163)
@@ -449,41 +427,38 @@ Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307.
 Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308.
 Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309.
 Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310.
-Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311.
-Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312.
-Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313.
-Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314.
-Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315.
-Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316.
-Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317.
-Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318.
-Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319.
-Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320.
-Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321.
-Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322.
-Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323.
-Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324.
-Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325.
-Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326.
-Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327.
-Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328.
-Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329.
-Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330.
-Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331.
-Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332.
-Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333.
-Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334.
-Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335.
-Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336.
-Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337.
-Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338.
-Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339.
-Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340.
+Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311.
+Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312.
+Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313.
+Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314.
+Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315.
+Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316.
+Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317.
+Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318.
+Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319.
+Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320.
+Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321.
+Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322.
+Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323.
+Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324.
+Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325.
+Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326.
+)
+(/usr/share/texmf-texlive/tex/latex/fancyhdr/fancyhdr.sty
+\fancy at headwidth=\skip54
+\f at ncyO@elh=\skip55
+\f at ncyO@erh=\skip56
+\f at ncyO@olh=\skip57
+\f at ncyO@orh=\skip58
+\f at ncyO@elf=\skip59
+\f at ncyO@erf=\skip60
+\f at ncyO@olf=\skip61
+\f at ncyO@orf=\skip62
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/fancybox/fancybox.sty
-Package: fancybox 2010/05/15 1.4
+(/usr/share/texmf-texlive/tex/latex/fancybox/fancybox.sty
+Package: fancybox 2000/09/19 1.3
 
-Style option: `fancybox' v1.4 <2010/05/15> (tvz)
+Style option: `fancybox' v1.3 <2000/09/19> (tvz)
 \@fancybox=\box30
 \shadowsize=\dimen105
 \@Sbox=\box31
@@ -493,8 +468,8 @@ Style option: `fancybox' v1.4 <2010/05/15> (tvz)
 \EndVerbatimTokens=\toks20
 \Verbatim at Outfile=\write3
 \Verbatim at Infile=\read1
-) (/usr/local/texlive/2012/texmf-dist/tex/latex/titlesec/titlesec.sty
-Package: titlesec 2011/12/15 v2.10.0 Sectioning titles
+) (/usr/share/texmf-texlive/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2007/08/12 v2.8 Sectioning titles
 \ttl at box=\box32
 \beforetitleunit=\skip63
 \aftertitleunit=\skip64
@@ -504,10 +479,10 @@ Package: titlesec 2011/12/15 v2.10.0 Sectioning titles
 \titlewidth=\dimen108
 \titlewidthlast=\dimen109
 \titlewidthfirst=\dimen110
-)
-(./tabulary.sty
+) (./tabulary.sty
 Package: tabulary 2007/10/02 v0.9 tabulary package (DPC)
- (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/array.sty
+
+(/usr/share/texmf-texlive/tex/latex/tools/array.sty
 Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
 \col at sep=\dimen111
 \extrarowheight=\dimen112
@@ -520,41 +495,42 @@ Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
 \tymin=\dimen114
 \tymax=\dimen115
 \TY at tablewidth=\dimen116
-) (/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsmath.sty
-Package: amsmath 2013/01/14 v2.14 AMS math features
+)
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
 \@mathmargin=\skip67
 
 For additional information on amsmath, use the `?' option.
-(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amstext.sty
+(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
 Package: amstext 2000/06/29 v2.01
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsgen.sty
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty
 File: amsgen.sty 1999/11/30 v2.0
 \@emptytoks=\toks23
 \ex@=\dimen117
 ))
-(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsbsy.sty
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty
 Package: amsbsy 1999/11/29 v1.2d
 \pmbraise@=\dimen118
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsopn.sty
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty
 Package: amsopn 1999/12/14 v2.01 operator names
 )
 \inf at bad=\count97
-LaTeX Info: Redefining \frac on input line 210.
+LaTeX Info: Redefining \frac on input line 211.
 \uproot@=\count98
 \leftroot@=\count99
-LaTeX Info: Redefining \overline on input line 306.
+LaTeX Info: Redefining \overline on input line 307.
 \classnum@=\count100
 \DOTSCASE@=\count101
-LaTeX Info: Redefining \ldots on input line 378.
-LaTeX Info: Redefining \dots on input line 381.
-LaTeX Info: Redefining \cdots on input line 466.
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
 \Mathstrutbox@=\box33
 \strutbox@=\box34
 \big at size=\dimen119
-LaTeX Font Info:    Redeclaring font encoding OML on input line 566.
-LaTeX Font Info:    Redeclaring font encoding OMS on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
 \macc at depth=\count102
 \c at MaxMatrixCols=\count103
 \dotsspace@=\muskip10
@@ -575,48 +551,39 @@ LaTeX Font Info:    Redeclaring font encoding OMS on input line 567.
 \multlinegap=\skip68
 \multlinetaggap=\skip69
 \mathdisplay at stack=\toks27
-LaTeX Info: Redefining \[ on input line 2665.
-LaTeX Info: Redefining \] on input line 2666.
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/makeidx.sty
+(/usr/share/texmf-texlive/tex/latex/base/makeidx.sty
 Package: makeidx 2000/03/29 v1.0m Standard LaTeX package
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/framed/framed.sty
-Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks
-\OuterFrameSep=\skip70
+(/usr/share/texmf-texlive/tex/latex/ltxmisc/framed.sty
+Package: framed 2007/10/04 v 0.95: framed or shaded text with page breaks
 \fb at frw=\dimen126
 \fb at frh=\dimen127
 \FrameRule=\dimen128
 \FrameSep=\dimen129
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ifthen.sty
+(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/color.sty
+(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
 Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg
+(/etc/texmf/tex/latex/config/color.cfg
 File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
 )
 Package color Info: Driver file: pdftex.def on input line 130.
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def
-File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
-
-(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/infwarerr.sty
-Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
-)
-(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
-Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
-)
+(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2010/03/12 v0.04p Graphics/color for pdfTeX
 \Gread at gobject=\count109
 ))
-(/usr/local/texlive/2012/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
+(/usr/share/texmf-texlive/tex/latex/fancyvrb/fancyvrb.sty
 Package: fancyvrb 2008/02/07
 
 Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix 
-<2008/02/07> (tvz)
-(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty
+<2008/02/07> (tvz) (/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \KV at toks@=\toks28
 )
@@ -627,15 +594,16 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \FV at StepNumber=\count112
 \FV at OutFile=\write4
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/threeparttable/threeparttable.sty
+(/usr/share/texmf-texlive/tex/latex/ltxmisc/threeparttable.sty
 Package: threeparttable 2003/06/13  v 3.0
 \@tempboxb=\box36
-) (/usr/local/texlive/2012/texmf-dist/tex/latex/mdwtools/footnote.sty
+)
+(/usr/share/texmf-texlive/tex/latex/mdwtools/footnote.sty
 Package: footnote 1997/01/28 1.13 Save footnotes around boxes
 \fn at notes=\box37
 \fn at width=\dimen130
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/wrapfig/wrapfig.sty
+(/usr/share/texmf-texlive/tex/latex/wrapfig/wrapfig.sty
 \wrapoverhang=\dimen131
 \WF at size=\dimen132
 \c at WF@wrappedlines=\count113
@@ -643,160 +611,157 @@ Package: footnote 1997/01/28 1.13 Save footnotes around boxes
 \WF at everypar=\toks29
 Package: wrapfig 2003/01/31  v 3.6
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/parskip/parskip.sty
+(/usr/share/texmf-texlive/tex/latex/ltxmisc/parskip.sty
 Package: parskip 2001/04/09 non-zero parskip adjustments
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty
+(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty
+(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
 Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty
+(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg
-File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+(/etc/texmf/tex/latex/config/graphics.cfg
+File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live
 )
 Package graphics Info: Driver file: pdftex.def on input line 91.
 )
 \Gin at req@height=\dimen133
 \Gin at req@width=\dimen134
 )
-(/usr/local/texlive/2012/texmf-dist/tex/plain/misc/pdfcolor.tex)
-\distancetoright=\skip71
-\py at argswidth=\skip72
-\py at noticelength=\skip73
-\lineblockindentation=\skip74
+(/usr/share/texmf-texlive/tex/plain/misc/pdfcolor.tex)
+\distancetoright=\skip70
+\py at argswidth=\skip71
+\py at noticelength=\skip72
+\lineblockindentation=\skip73
 \image at box=\box39
 \image at width=\dimen135
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hyperref.sty
-Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX
-
-(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
-Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO)
+(/usr/share/texmf-texlive/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX
 
-
-(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
-Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO)
-Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO)
-Package hobsub Info: Skipping package `infwarerr' (already loaded).
-Package hobsub Info: Skipping package `ltxcmds' (already loaded).
-Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO)
-Package ifvtex Info: VTeX not detected.
-Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO)
-Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
-Package ifpdf Info: pdfTeX in PDF mode is detected.
-Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
-Package etexcmds Info: Could not find \expanded.
-(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
-(etexcmds)             that some package has redefined \expanded.
-(etexcmds)             In the latter case, load this package earlier.
-Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
-Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
-Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
-)
-Package pdftexcmds Info: LuaTeX not detected.
-Package pdftexcmds Info: \pdf at primitive is available.
-Package pdftexcmds Info: \pdf at ifprimitive is available.
-Package pdftexcmds Info: \pdfdraftmode found.
-Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO)
-Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO
-)
-Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO)
-Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO)
-)
-Package hobsub Info: Skipping package `hobsub' (already loaded).
-Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
-Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO)
-Package: xcolor-patch 2011/01/30 xcolor patch
-Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO)
-Package atveryend Info: \enddocument detected (standard20110627).
-Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO)
-Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO)
-Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO)
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in pdf mode detected.
 )
-(/usr/local/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty
-Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
-)
-(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/auxhook.sty
-Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO)
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
+Package ifvtex Info: VTeX not detected.
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty
-Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+(/usr/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
 )
+(/usr/share/texmf-texlive/tex/latex/oberdiek/hycolor.sty
+Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H
+O)
+
+(/usr/share/texmf-texlive/tex/latex/oberdiek/xcolor-patch.sty
+Package: xcolor-patch 2009/10/02 xcolor patch
+))
 \@linkdim=\dimen136
 \Hy at linkcounter=\count114
 \Hy at pagecounter=\count115
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/pd1enc.def
-File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO)
+(/usr/share/texmf-texlive/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO)
 Now handling font encoding PD1 ...
 ... no UTF-8 mapping file for font encoding PD1
 )
-\Hy at SavedSpaceFactor=\count116
+(/usr/share/texmf-texlive/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+(/usr/share/texmf-texlive/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO)
+)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)
+(/usr/share/texmf-texlive/tex/latex/latexconfig/hyperref.cfg
 File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
 )
-Package hyperref Info: Option `colorlinks' set `true' on input line 4319.
-Package hyperref Info: Option `breaklinks' set `true' on input line 4319.
-Package hyperref Info: Hyper figures OFF on input line 4443.
-Package hyperref Info: Link nesting OFF on input line 4448.
-Package hyperref Info: Hyper index ON on input line 4451.
-Package hyperref Info: Plain pages OFF on input line 4458.
-Package hyperref Info: Backreferencing OFF on input line 4463.
-Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
-Package hyperref Info: Bookmarks ON on input line 4688.
-\c at Hy@tempcnt=\count117
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/url/url.sty
+(/usr/share/texmf-texlive/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO)
+
+(/usr/share/texmf-texlive/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor
+t (HO)
+))
+Package hyperref Info: Option `colorlinks' set `true' on input line 2864.
+Package hyperref Info: Option `breaklinks' set `true' on input line 2864.
+Package hyperref Info: Hyper figures OFF on input line 2975.
+Package hyperref Info: Link nesting OFF on input line 2980.
+Package hyperref Info: Hyper index ON on input line 2983.
+Package hyperref Info: Plain pages OFF on input line 2990.
+Package hyperref Info: Backreferencing OFF on input line 2995.
+
+Implicit mode ON; LaTeX internals redefined
+Package hyperref Info: Bookmarks ON on input line 3191.
+(/usr/share/texmf-texlive/tex/latex/ltxmisc/url.sty
 \Urlmuskip=\muskip11
 Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.
 )
-LaTeX Info: Redefining \url on input line 5041.
-\XeTeXLinkMargin=\dimen137
-\Fld at menulength=\count118
-\Field at Width=\dimen138
-\Fld at charsize=\dimen139
-Package hyperref Info: Hyper figures OFF on input line 6295.
-Package hyperref Info: Link nesting OFF on input line 6300.
-Package hyperref Info: Hyper index ON on input line 6303.
-Package hyperref Info: backreferencing OFF on input line 6310.
-Package hyperref Info: Link coloring ON on input line 6313.
-Package hyperref Info: Link coloring with OCG OFF on input line 6320.
-Package hyperref Info: PDF/A mode OFF on input line 6325.
-LaTeX Info: Redefining \ref on input line 6365.
-LaTeX Info: Redefining \pageref on input line 6369.
-\Hy at abspage=\count119
-\c at Item=\count120
-\c at Hfootnote=\count121
-)
+LaTeX Info: Redefining \url on input line 3428.
 
-Package hyperref Message: Driver (autodetected): hpdftex.
+(/usr/share/texmf-texlive/tex/generic/oberdiek/bitset.sty
+Package: bitset 2007/09/28 v1.0 Data type bit set (HO)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hpdftex.def
-File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX
-\Fld at listcount=\count122
-\c at bookmark@seq at number=\count123
+(/usr/share/texmf-texlive/tex/generic/oberdiek/intcalc.sty
+Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO)
+)
+(/usr/share/texmf-texlive/tex/generic/oberdiek/bigintcalc.sty
+Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO)
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
-Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
-Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
-82.
+(/usr/share/texmf-texlive/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions
+ (HO)
+
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
 )
-\Hy at SectionHShift=\skip75
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/hypcap.sty
-Package: hypcap 2011/02/16 v1.11 Adjusting the anchors of captions (HO)
 )
-\DUlineblockindent=\skip76
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf at primitive is available.
+Package pdftexcmds Info: \pdf at ifprimitive is available.
+)))
+\Fld at menulength=\count116
+\Field at Width=\dimen137
+\Fld at charsize=\dimen138
+\Field at toks=\toks30
+Package hyperref Info: Hyper figures OFF on input line 4377.
+Package hyperref Info: Link nesting OFF on input line 4382.
+Package hyperref Info: Hyper index ON on input line 4385.
+Package hyperref Info: backreferencing OFF on input line 4392.
+Package hyperref Info: Link coloring ON on input line 4395.
+Package hyperref Info: Link coloring with OCG OFF on input line 4402.
+Package hyperref Info: PDF/A mode OFF on input line 4407.
+
+(/usr/share/texmf-texlive/tex/generic/oberdiek/atbegshi.sty
+Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO)
+)
+\Hy at abspage=\count117
+\c at Item=\count118
+\c at Hfootnote=\count119
+)
+*hyperref using default driver hpdftex*
+(/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX
+\Fld at listcount=\count120
+)
+(/usr/share/texmf-texlive/tex/latex/oberdiek/hypcap.sty
+Package: hypcap 2008/09/08 v1.10 Adjusting anchors of captions (HO)
 )
-(/usr/local/texlive/2012/texmf-dist/tex/latex/multirow/multirow.sty
-\bigstrutjot=\dimen140
+\DUlineblockindent=\skip74
+)
+(/usr/share/texmf-texlive/tex/latex/multirow/multirow.sty
+\bigstrutjot=\dimen139
 )
 \@indexfile=\write5
 \openout5 = `xmds2.idx'.
@@ -806,129 +771,107 @@ Writing index file xmds2.idx
 (./xmds2.aux)
 \openout1 = `xmds2.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 117.
-LaTeX Font Info:    Try loading font information for TS1+cmr on input line 117.
-
- (/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1cmr.fd
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 113.
+LaTeX Font Info:    Try loading font information for TS1+cmr on input line 113.
+
+ (/usr/share/texmf-texlive/tex/latex/base/ts1cmr.fd
 File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
 )
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 117.
-LaTeX Font Info:    ... okay on input line 117.
-LaTeX Font Info:    Try loading font information for T1+ptm on input line 117.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 113.
+LaTeX Font Info:    ... okay on input line 113.
+LaTeX Font Info:    Try loading font information for T1+ptm on input line 113.
 
-(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1ptm.fd
+(/usr/share/texmf-texlive/tex/latex/psnfss/t1ptm.fd
 File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
 )
-(/usr/local/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii
+(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii
 [Loading MPS to PDF converter (version 2006.09.02).]
-\scratchcounter=\count124
-\scratchdimen=\dimen141
+\scratchcounter=\count121
+\scratchdimen=\dimen140
 \scratchbox=\box40
-\nofMPsegments=\count125
-\nofMParguments=\count126
-\everyMPshowfont=\toks30
-\MPscratchCnt=\count127
-\MPscratchDim=\dimen142
-\MPnumerator=\count128
-\makeMPintoPDFobject=\count129
-\everyMPtoPDFconversion=\toks31
-) (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
-Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty
-Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+\nofMPsegments=\count122
+\nofMParguments=\count123
+\everyMPshowfont=\toks31
+\MPscratchCnt=\count124
+\MPscratchDim=\dimen141
+\MPnumerator=\count125
+\everyMPtoPDFconversion=\toks32
 )
-Package grfext Info: Graphics extension search list:
-(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
-G,.JBIG2,.JB2,.eps]
-(grfext)             \AppendGraphicsExtensions on input line 452.
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
-e
-))
-\AtBeginShipoutBox=\box41
-Package hyperref Info: Link coloring ON on input line 117.
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/nameref.sty
-Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section
+Package hyperref Info: Link coloring ON on input line 113.
+ (/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
+Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section
 
-(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
-Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
+(/usr/share/texmf-texlive/tex/latex/oberdiek/refcount.sty
+Package: refcount 2008/08/11 v3.1 Data extraction from references (HO)
 )
-\c at section@level=\count130
+\c at section@level=\count126
 )
-LaTeX Info: Redefining \ref on input line 117.
-LaTeX Info: Redefining \pageref on input line 117.
-LaTeX Info: Redefining \nameref on input line 117.
-
-(./xmds2.out) (./xmds2.out)
+LaTeX Info: Redefining \ref on input line 113.
+LaTeX Info: Redefining \pageref on input line 113.
+ (./xmds2.out)
+(./xmds2.out)
 \@outlinefile=\write6
 \openout6 = `xmds2.out'.
 
+\AtBeginShipoutBox=\box41
 
-Underfull \hbox (badness 10000) in paragraph at lines 120--120
+Underfull \hbox (badness 10000) in paragraph at lines 116--116
 
  []
 
-<xmds_logo.pdf, id=218, 183.084pt x 183.084pt>
+<xmds_logo.pdf, id=255, 183.084pt x 183.084pt>
 File: xmds_logo.pdf Graphic file (type pdf)
  <use xmds_logo.pdf>
-Package pdftex.def Info: xmds_logo.pdf used on input line 120.
-(pdftex.def)             Requested size: 183.08354pt x 183.08354pt.
 File: xmds_logo.pdf Graphic file (type pdf)
 
 <use xmds_logo.pdf>
-Package pdftex.def Info: xmds_logo.pdf used on input line 120.
-(pdftex.def)             Requested size: 183.08354pt x 183.08354pt.
-LaTeX Font Info:    Try loading font information for T1+phv on input line 120.
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1phv.fd
+LaTeX Font Info:    Try loading font information for T1+phv on input line 116.
+ (/usr/share/texmf-texlive/tex/latex/psnfss/t1phv.fd
 File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv.
 )
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <24.88> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 120.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 116.
 LaTeX Font Info:    Font shape `T1/phv/m/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/m/sl' tried instead on input line 120.
+(Font)              Font shape `T1/phv/m/sl' tried instead on input line 116.
 LaTeX Font Info:    Font shape `T1/phv/bx/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/it' tried instead on input line 120.
+(Font)              Font shape `T1/phv/b/it' tried instead on input line 116.
 LaTeX Font Info:    Font shape `T1/phv/b/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/sl' tried instead on input line 120.
+(Font)              Font shape `T1/phv/b/sl' tried instead on input line 116.
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 120.
-<<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>> [1
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 116.
+
+[1
 
-{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./xmds_
-logo.pdf>] [2
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./xmds_logo.pdf>]
+[2
 
 ] (./xmds2.toc
 LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <10> not available
 (Font)              Font shape `T1/ptm/b/n' tried instead on input line 2.
-LaTeX Font Info:    Try loading font information for T1+pcr on input line 81.
-
-(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1pcr.fd
+LaTeX Font Info:    Try loading font information for T1+pcr on input line 85.
+ (/usr/share/texmf-texlive/tex/latex/psnfss/t1pcr.fd
 File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
 )
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <10> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 101.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 96.
 pdfTeX warning (ext4): destination with the same identifier (name{page.i}) has 
 been already used, duplicate ignored
 <to be read again> 
                    \relax 
-l.101 ...iler and library tricks}{85}{section.9.3}
+l.96 ...{8}Upgrading From XMDS 1.X}{85}{chapter.8}
                                                    [1
 
 ])
@@ -939,395 +882,402 @@ pdfTeX warning (ext4): destination with the same identifier (name{page.ii}) has
  been already used, duplicate ignored
 <to be read again> 
                    \relax 
-l.120 \tableofcontents
+l.116 \tableofcontents
                        [2]
 Chapter 1.
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <14.4> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 125.
-LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <14.4> not available
-(Font)              Font shape `T1/ptm/b/n' tried instead on input line 125.
-LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <24.88> not available
-(Font)              Font shape `T1/ptm/b/n' tried instead on input line 125.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 121.
 LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <8> not available
-(Font)              Font shape `T1/ptm/b/n' tried instead on input line 143.
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 139.
 [1
 
 
 ] [2]
 Chapter 2.
 
-Package tabulary Warning: No suitable columns! on input line 182.
+Package tabulary Warning: No suitable columns! on input line 181.
 
-LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <12> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 217.
 [3
 
 ]
-LaTeX Font Info:    Try loading font information for TS1+ptm on input line 263.
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <12> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 218.
+ [4]
+LaTeX Font Info:    Try loading font information for TS1+ptm on input line 265.
 
- (/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/ts1ptm.fd
+ (/usr/share/texmf-texlive/tex/latex/psnfss/ts1ptm.fd
 File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
-) [4]
-Underfull \hbox (badness 10000) in paragraph at lines 307--310
+)
+Underfull \hbox (badness 10000) in paragraph at lines 309--312
 []\T1/ptm/m/n/10 First cre-ate the path ~/lib/python2.5/site-packages (as-sum-i
 ng you in-stalled
  []
 
 [5]
-Underfull \hbox (badness 10000) in paragraph at lines 388--390
+Underfull \hbox (badness 10000) in paragraph at lines 390--392
 []\T1/ptm/m/n/10 It can be in-stalled with \T1/pcr/m/n/10 sudo
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 402--404
+Underfull \hbox (badness 10000) in paragraph at lines 404--406
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 410--412
+Underfull \hbox (badness 10000) in paragraph at lines 412--414
 []\T1/ptm/m/n/10 h5py
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 422--424
+Underfull \hbox (badness 10000) in paragraph at lines 424--426
 []\T1/pcr/m/n/10 sudo
  []
 
 
-Underfull \hbox (badness 5563) in paragraph at lines 437--440
+Underfull \hbox (badness 5563) in paragraph at lines 439--442
 []\T1/ptm/m/n/10 If you have `numpy' in-stalled, test XMDS2 by typ-ing
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 452--453
+Underfull \hbox (badness 10000) in paragraph at lines 454--455
 []\T1/ptm/m/n/10 The gen-er-ated html doc-u-men-ta-tion will then be found at x
 mds-
  []
 
-
-Underfull \hbox (badness 10000) in paragraph at lines 465--466
+[6]
+Underfull \hbox (badness 10000) in paragraph at lines 467--468
 []\T1/pcr/m/n/10 xmds2 --reconfigure --include-path /apps/fftw3/include
  []
 
-[6] [7] [8
+[7] [8
 
 ]
 Chapter 3.
 LaTeX Font Info:    Font shape `T1/pcr/m/it' in size <9> not available
-(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 495.
+(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 498.
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <9> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 496.
-[9] [10] <lorenz.pdf, id=455, 681.01025pt x 300.322pt>
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 499.
+[9] [10] <lorenz.pdf, id=497, 681.01025pt x 300.322pt>
 File: lorenz.pdf Graphic file (type pdf)
  <use lorenz.pdf>
-Package pdftex.def Info: lorenz.pdf used on input line 631.
-(pdftex.def)             Requested size: 681.00859pt x 300.32127pt.
 File: lorenz.pdf Graphic file (type pdf)
 
-<use lorenz.pdf>
-Package pdftex.def Info: lorenz.pdf used on input line 631.
-(pdftex.def)             Requested size: 452.96788pt x 199.75745pt.
- [11 <./lorenz.pdf>] [12] [13] [14]
+<use lorenz.pdf> [11 <./lorenz.pdf>] [12] [13] [14]
 Chapter 4.
 [15
 
 ]
-Underfull \vbox (badness 10000) detected at line 877
+Underfull \vbox (badness 10000) detected at line 883
  []
 
 
-Underfull \vbox (badness 10000) detected at line 877
+Underfull \vbox (badness 10000) detected at line 883
  []
 
-[16] [17] [18] [19] [20] <kuboSingle.pdf, id=524, 569.32701pt x 349.00288pt>
+[16] [17] [18] [19] [20] <kuboSingle.pdf, id=565, 569.32701pt x 349.00288pt>
 File: kuboSingle.pdf Graphic file (type pdf)
 
 <use kuboSingle.pdf>
-Package pdftex.def Info: kuboSingle.pdf used on input line 1092.
-(pdftex.def)             Requested size: 569.3256pt x 349.00203pt.
 File: kuboSingle.pdf Graphic file (type pdf)
  <use kuboSingle.pdf>
-Package pdftex.def Info: kuboSingle.pdf used on input line 1092.
-(pdftex.def)             Requested size: 452.96788pt x 277.67963pt.
-
-<kubo10000.pdf, id=525, 560.49402pt x 346.36702pt>
+<kubo10000.pdf, id=566, 560.49402pt x 346.36702pt>
 File: kubo10000.pdf Graphic file (type pdf)
  <use kubo10000.pdf>
-Package pdftex.def Info: kubo10000.pdf used on input line 1100.
-(pdftex.def)             Requested size: 560.49265pt x 346.36617pt.
 File: kubo10000.pdf Graphic file (type pdf)
 
-<use kubo10000.pdf>
-Package pdftex.def Info: kubo10000.pdf used on input line 1100.
-(pdftex.def)             Requested size: 452.96788pt x 279.9268pt.
- [21] [22 <./kuboSingle.pdf> <./kubo10000.pdf>]
-Underfull \vbox (badness 10000) detected at line 1183
- []
-
-
-Underfull \vbox (badness 10000) detected at line 1183
- []
-
-[23] [24] <fibreSingle.pdf, id=559, 639.99098pt x 481.84819pt>
+<use kubo10000.pdf> [21] [22 <./kuboSingle.pdf> <./kubo10000.pdf>] [23]
+[24] <fibreSingle.pdf, id=600, 639.99098pt x 481.84819pt>
 File: fibreSingle.pdf Graphic file (type pdf)
 
 <use fibreSingle.pdf>
-Package pdftex.def Info: fibreSingle.pdf used on input line 1242.
-(pdftex.def)             Requested size: 639.98943pt x 481.84702pt.
 File: fibreSingle.pdf Graphic file (type pdf)
  <use fibreSingle.pdf>
-Package pdftex.def Info: fibreSingle.pdf used on input line 1242.
-(pdftex.def)             Requested size: 452.96788pt x 341.04851pt.
-
-<fibre1024.pdf, id=560, 639.99098pt x 482.46848pt>
+<fibre1024.pdf, id=601, 639.99098pt x 482.46848pt>
 File: fibre1024.pdf Graphic file (type pdf)
  <use fibre1024.pdf>
-Package pdftex.def Info: fibre1024.pdf used on input line 1250.
-(pdftex.def)             Requested size: 639.98943pt x 482.4673pt.
 File: fibre1024.pdf Graphic file (type pdf)
 
-<use fibre1024.pdf>
-Package pdftex.def Info: fibre1024.pdf used on input line 1250.
-(pdftex.def)             Requested size: 452.96788pt x 341.48755pt.
- [25 <./fibreSingle.pdf>] [26 <./fibre1024.pdf>] [27]
+<use fibre1024.pdf> [25 <./fibreSingle.pdf>] [26 <./fibre1024.pdf>] [27]
 [28]
-Underfull \vbox (badness 10000) detected at line 1455
+Underfull \vbox (badness 10000) detected at line 1468
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1455
+Underfull \vbox (badness 10000) detected at line 1468
  []
 
 [29] [30] [31]
 LaTeX Font Info:    Font shape `T1/pcr/bx/it' in size <9> not available
-(Font)              Font shape `T1/pcr/b/it' tried instead on input line 1638.
+(Font)              Font shape `T1/pcr/b/it' tried instead on input line 1655.
 LaTeX Font Info:    Font shape `T1/pcr/b/it' in size <9> not available
-(Font)              Font shape `T1/pcr/b/sl' tried instead on input line 1638.
-
-Overfull \vbox (0.87749pt too high) detected at line 1699
- []
-
-[32]
-Underfull \vbox (badness 10000) detected at line 1699
+(Font)              Font shape `T1/pcr/b/sl' tried instead on input line 1655.
+ [32]
+Underfull \vbox (badness 10000) detected at line 1716
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1699
+Underfull \vbox (badness 10000) detected at line 1716
  []
 
-[33] [34] <groundstateU2.pdf, id=629, 467.32591pt x 333.245pt>
+[33] [34] <groundstateU2.pdf, id=669, 467.32591pt x 333.245pt>
 File: groundstateU2.pdf Graphic file (type pdf)
 
 <use groundstateU2.pdf>
-Package pdftex.def Info: groundstateU2.pdf used on input line 1776.
-(pdftex.def)             Requested size: 467.32477pt x 333.24417pt.
 File: groundstateU2.pdf Graphic file (type pdf)
  <use groundstateU2.pdf>
-Package pdftex.def Info: groundstateU2.pdf used on input line 1776.
-(pdftex.def)             Requested size: 452.96788pt x 323.01334pt.
-
-<groundstateU20.pdf, id=630, 467.32591pt x 333.245pt>
+<groundstateU20.pdf, id=670, 467.32591pt x 333.245pt>
 File: groundstateU20.pdf Graphic file (type pdf)
  <use groundstateU20.pdf>
-Package pdftex.def Info: groundstateU20.pdf used on input line 1782.
-(pdftex.def)             Requested size: 467.32477pt x 333.24417pt.
 File: groundstateU20.pdf Graphic file (type pdf)
 
-<use groundstateU20.pdf>
-Package pdftex.def Info: groundstateU20.pdf used on input line 1782.
-(pdftex.def)             Requested size: 452.96788pt x 323.01334pt.
- [35] [36 <./groundstateU2.pdf>]
-Underfull \vbox (badness 10000) detected at line 1910
+<use groundstateU20.pdf> [35] [36 <./groundstateU2.pdf>] [37 <./groundstateU20.
+pdf>]
+Underfull \vbox (badness 10000) detected at line 1928
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1910
- []
-
-[37 <./groundstateU20.pdf>]
-Underfull \vbox (badness 10000) detected at line 1910
+Underfull \vbox (badness 10000) detected at line 1928
  []
 
-
-Underfull \vbox (badness 10000) detected at line 1910
- []
-
-[38] [39]
-Underfull \vbox (badness 10000) detected at line 2039
- []
-
-
-Underfull \vbox (badness 10000) detected at line 2039
- []
-
-[40] [41] [42]
+[38] [39] [40] [41] [42]
 Chapter 5.
 
-Overfull \hbox (116.47647pt too wide) in paragraph at lines 2076--2076
+Overfull \hbox (116.47647pt too wide) in paragraph at lines 2117--2117
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 2076--2076
+Underfull \hbox (badness 10000) in paragraph at lines 2117--2117
 
  []
 
 [43
 
 ] [44]
-Underfull \vbox (badness 10000) detected at line 2294
+Underfull \vbox (badness 10000) detected at line 2336
  []
 
 
-Underfull \vbox (badness 10000) detected at line 2294
+Underfull \vbox (badness 10000) detected at line 2336
  []
 
 [45] [46] [47] [48]
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <9> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 2454.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 2504.
  [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59]
-[60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72]
-Chapter 6.
-[73
+[60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73]
+<richardsonExtrapolation.png, id=1140, 523.9575pt x 338.26375pt>
+File: richardsonExtrapolation.png Graphic file (type png)
+
+<use richardsonExtrapolation.png>
+File: richardsonExtrapolation.png Graphic file (type png)
+ <use richardsonExtrapolation.png>
+<error_scaling.png, id=1142, 1304.875pt x 978.65625pt>
+File: error_scaling.png Graphic file (type png)
+ <use error_scaling.png>
+File: error_scaling.png Graphic file (type png)
 
-] [74] [75] <FourierTransformEx1.pdf, id=1113, 337.26pt x 261.97874pt>
+<use error_scaling.png> [74 <./richardsonExtrapolation.png (PNG copy)>]
+[75 <./error_scaling.png (PNG copy)>] [76
+
+]
+Chapter 6.
+[77] [78] [79] <FourierTransformEx1.pdf, id=1172, 337.26pt x 261.97874pt>
 File: FourierTransformEx1.pdf Graphic file (type pdf)
 
 <use FourierTransformEx1.pdf>
-Package pdftex.def Info: FourierTransformEx1.pdf used on input line 3734.
-(pdftex.def)             Requested size: 337.25917pt x 261.9781pt.
 File: FourierTransformEx1.pdf Graphic file (type pdf)
  <use FourierTransformEx1.pdf>
-Package pdftex.def Info: FourierTransformEx1.pdf used on input line 3734.
-(pdftex.def)             Requested size: 337.25917pt x 261.9781pt.
-
-<FourierTransformEx2.pdf, id=1114, 515.9275pt x 224.84pt>
+<FourierTransformEx2.pdf, id=1173, 515.9275pt x 224.84pt>
 File: FourierTransformEx2.pdf Graphic file (type pdf)
 
 <use FourierTransformEx2.pdf>
-Package pdftex.def Info: FourierTransformEx2.pdf used on input line 3743.
-(pdftex.def)             Requested size: 515.92624pt x 224.83945pt.
 File: FourierTransformEx2.pdf Graphic file (type pdf)
- <use FourierTransformEx2.pdf>
-Package pdftex.def Info: FourierTransformEx2.pdf used on input line 3743.
-(pdftex.def)             Requested size: 452.96788pt x 197.40694pt.
- [76 <./FourierTransformEx1.pdf>] <FourierTransformEx3.pdf, id=1183, 515.9275pt
- x 255.95625pt>
+ <use FourierTransformEx2.pdf> [80 <./FourierTransformEx1.pdf>] <FourierTransfo
+rmEx3.pdf, id=1241, 515.9275pt x 255.95625pt>
 File: FourierTransformEx3.pdf Graphic file (type pdf)
 
 <use FourierTransformEx3.pdf>
-Package pdftex.def Info: FourierTransformEx3.pdf used on input line 3754.
-(pdftex.def)             Requested size: 515.92624pt x 255.95561pt.
 File: FourierTransformEx3.pdf Graphic file (type pdf)
  <use FourierTransformEx3.pdf>
-Package pdftex.def Info: FourierTransformEx3.pdf used on input line 3754.
-(pdftex.def)             Requested size: 452.96788pt x 224.72664pt.
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <14.4> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 3759.
- [77 <./FourierTransformEx2.pdf> <./FourierTransformEx3.pdf>] [78]
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 3974.
+ [81 <./FourierTransformEx2.pdf> <./FourierTransformEx3.pdf>] [82]
 Chapter 7.
-[79
+[83
 
-] [80]
+] [84]
 Chapter 8.
-[81
+[85
 
-] [82
+] [86
 
 ]
 Chapter 9.
-[83] [84] [85] [86]
-Chapter 10.
-[87
+[87] [88] [89] [90] [91] [92
 
-] [88
+]
+Chapter 10.
+[93] [94
 
 ]
 Chapter 11.
-[89]
+[95]
+Overfull \hbox (32.81522pt too wide) in paragraph at lines 4389--4391
+[][][]\T1/ptm/m/n/10 http://docutils.sourceforge.net/docs/user/rst/quickref.htm
+l[][] [][]http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html[][
+] 
+ []
+
+<IntroduceNewElement.png, id=1577, 364.18411pt x 712.7806pt>
+File: IntroduceNewElement.png Graphic file (type png)
+
+<use IntroduceNewElement.png>
+File: IntroduceNewElement.png Graphic file (type png)
+ <use IntroduceNewElement.png> [96] [97]
+Overfull \vbox (47.17236pt too high) has occurred while \output is active []
+
+
+[98 <./IntroduceNewElement.png (PNG copy)>]
+<IntroduceNewIntegrationTechnique.png, id=1590, 243.73412pt x 772.29706pt>
+File: IntroduceNewIntegrationTechnique.png Graphic file (type png)
+
+<use IntroduceNewIntegrationTechnique.png>
+File: IntroduceNewIntegrationTechnique.png Graphic file (type png)
+
+<use IntroduceNewIntegrationTechnique.png>
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <10> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 4144.
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 4429.
+ [99] [100]
+Overfull \vbox (124.68869pt too high) has occurred while \output is active []
+
+
+[101 <./IntroduceNewIntegrationTechnique.png (PNG copy)>]
+Underfull \hbox (badness 10000) in paragraph at lines 4431--4432
+[]\T1/ptm/m/n/10 Navigate to the \T1/pcr/m/n/10 xpdeint/Segments/Integrators \T
+1/ptm/m/n/10 di-rec-tory. Cre-ate a file called
+ []
+
+<Overall_Flowchart.png, id=1604, 323.08942pt x 753.87529pt>
+File: Overall_Flowchart.png Graphic file (type png)
+
+<use Overall_Flowchart.png>
+File: Overall_Flowchart.png Graphic file (type png)
+ <use Overall_Flowchart.png> [102] [103]
+Overfull \vbox (81.02339pt too high) has occurred while \output is active []
 
-Overfull \hbox (34.13051pt too wide) in paragraph at lines 4146--4146
+
+[104 <./Overall_Flowchart.png (PNG copy)>]
+<Subprocess3_ParsingXMLFile.png, id=1619, 717.03177pt x 1296.60883pt>
+File: Subprocess3_ParsingXMLFile.png Graphic file (type png)
+
+<use Subprocess3_ParsingXMLFile.png>
+File: Subprocess3_ParsingXMLFile.png Graphic file (type png)
+ <use Subprocess3_ParsingXMLFile.png>
+[105] [106]
+Overfull \vbox (146.27328pt too high) has occurred while \output is active []
+
+
+[107 <./Subprocess3_ParsingXMLFile.png (PNG copy)>]
+<Subprocess3_4_parseXMLDocument.png, id=1634, 443.53941pt x 1091.1353pt>
+File: Subprocess3_4_parseXMLDocument.png Graphic file (type png)
+
+<use Subprocess3_4_parseXMLDocument.png>
+File: Subprocess3_4_parseXMLDocument.png Graphic file (type png)
+
+<use Subprocess3_4_parseXMLDocument.png> [108] [109]
+Overfull \vbox (432.28258pt too high) has occurred while \output is active []
+
+
+[110 <./Subprocess3_4_parseXMLDocument.png (PNG copy)>]
+<Subprocess3_4_11_ParseTopLvlSeqElements.png, id=1648, 1071.29646pt x 919.67117
+pt>
+File: Subprocess3_4_11_ParseTopLvlSeqElements.png Graphic file (type png)
+ <use Subprocess3_4_11_ParseTopLvlSeqElements.png>
+File: Subprocess3_4_11_ParseTopLvlSeqElements.png Graphic file (type png)
+
+<use Subprocess3_4_11_ParseTopLvlSeqElements.png>
+<Subprocess3_4_11_2_ParseIntegrateElement.png, id=1649, 1016.03117pt x 1358.959
+41pt>
+File: Subprocess3_4_11_2_ParseIntegrateElement.png Graphic file (type png)
+ <use Subprocess3_4_11_2_ParseIntegrateElement.png>
+File: Subprocess3_4_11_2_ParseIntegrateElement.png Graphic file (type png)
+
+<use Subprocess3_4_11_2_ParseIntegrateElement.png> [111 <./Subprocess3_4_11_Par
+seTopLvlSeqElements.png (PNG copy)>] [112 <./Subprocess3_4_11_2_ParseIntegrateE
+lement.png (PNG copy)>]
+Overfull \hbox (34.13051pt too wide) in paragraph at lines 4512--4512
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4146--4146
+Underfull \hbox (badness 10000) in paragraph at lines 4512--4512
 
  []
 
 
-Overfull \hbox (216.03926pt too wide) in paragraph at lines 4161--4161
+Overfull \hbox (216.03926pt too wide) in paragraph at lines 4527--4527
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4161--4161
+Underfull \hbox (badness 10000) in paragraph at lines 4527--4527
 
  []
 
 
-Overfull \hbox (58.00885pt too wide) in paragraph at lines 4170--4170
+Overfull \hbox (58.00885pt too wide) in paragraph at lines 4536--4536
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4170--4170
+Underfull \hbox (badness 10000) in paragraph at lines 4536--4536
 
  []
 
-[90] [91] [92
-
-]
+[113] [114]
 Chapter 12.
-[93] [94
+[115
+
+] [116] [117] [118] [119] [120] [121] [122] [123] [124
 
 ]
 Chapter 13.
-[95] [96] (./xmds2.ind)
-Package atveryend Info: Empty hook `BeforeClearDocument' on input line 4465.
- [97]
-Package atveryend Info: Empty hook `AfterLastShipout' on input line 4465.
- (./xmds2.aux)
-Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 4465.
-Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 4465.
-
-Package rerunfilecheck Info: File `xmds2.out' has not changed.
-(rerunfilecheck)             Checksum: F6F0AD2D22B608AC0B5B4144B3DB77CD;3905.
-Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 4465.
- ) 
+[125] [126] [127] (./xmds2.ind [128] [129
+
+
+] [130] [131
+
+]) (./xmds2.aux) ) 
 Here is how much of TeX's memory you used:
- 9678 strings out of 493481
- 139300 string characters out of 3140966
- 254299 words of memory out of 3000000
- 12405 multiletter control sequences out of 15000+200000
- 85999 words of font info for 99 fonts, out of 3000000 for 9000
- 958 hyphenation exceptions out of 8191
- 38i,28n,51p,7668b,584s stack positions out of 5000i,500n,10000p,200000b,50000s
-{/usr/local/texlive/2012/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t
-exlive/2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/te
-xlive/2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/local/tex
-live/2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texl
-ive/2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/local/texliv
-e/2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/
-2012/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/20
-12/texmf-dist/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/local/texlive/2012/
-texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/local/texlive/2012/tex
-mf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2012/texm
-f-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/local/texlive/2012/texmf-
-dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/local/texlive/2012/texmf-dist/fon
-ts/type1/urw/courier/ucrbo8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/type
-1/urw/courier/ucrr8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/type1/urw/co
-urier/ucrro8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/type1/urw/helvetic/
-uhvb8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a
-.pfb></usr/local/texlive/2012/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr
-/local/texlive/2012/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/local/tex
-live/2012/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
-Output written on xmds2.pdf (101 pages, 6678016 bytes).
+ 8857 strings out of 495061
+ 126633 string characters out of 1182622
+ 233706 words of memory out of 3000000
+ 11431 multiletter control sequences out of 15000+50000
+ 83761 words of font info for 98 fonts, out of 3000000 for 9000
+ 29 hyphenation exceptions out of 8191
+ 45i,28n,48p,7668b,552s stack positions out of 5000i,500n,10000p,200000b,50000s
+{/usr/share/texmf-texlive/fonts/enc/dvips/base/8r.enc}</usr/s
+hare/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texmf-
+texlive/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texmf-texlive/fon
+ts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texmf-texlive/fonts/type1/pu
+blic/amsfonts/cm/cmmi5.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfont
+s/cm/cmmi7.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.p
+fb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/shar
+e/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texmf-texli
+ve/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/ty
+pe1/public/amsfonts/cm/cmsy7.pfb></usr/share/texmf-texlive/fonts/type1/urw/cour
+ier/ucrb8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/courier/ucrbo8a.pfb></
+usr/share/texmf-texlive/fonts/type1/urw/courier/ucrr8a.pfb></usr/share/texmf-te
+xlive/fonts/type1/urw/courier/ucrro8a.pfb></usr/share/texmf-texlive/fonts/type1
+/urw/helvetic/uhvb8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhv
+bo8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/sh
+are/texmf-texlive/fonts/type1/urw/times/utmb8a.pfb></usr/share/texmf-texlive/fo
+nts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/
+utmri8a.pfb>
+Output written on xmds2.pdf (135 pages, 7331787 bytes).
 PDF statistics:
- 1676 PDF objects out of 1728 (max. 8388607)
- 1446 compressed objects within 15 object streams
- 281 named destinations out of 1000 (max. 500000)
- 500 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 2116 PDF objects out of 2487 (max. 8388607)
+ 364 named destinations out of 1000 (max. 500000)
+ 605 words of extra memory for PDF output out of 10000 (max. 10000000)
 
diff --git a/documentation/latex/xmds2.out b/documentation/latex/xmds2.out
index 50db9de..9d69e3c 100644
--- a/documentation/latex/xmds2.out
+++ b/documentation/latex/xmds2.out
@@ -1,53 +1,63 @@
-\BOOKMARK [0][-]{chapter.1}{Introduction}{}% 1
-\BOOKMARK [0][-]{chapter.2}{Installation}{}% 2
-\BOOKMARK [1][-]{section.2.1}{Installers}{chapter.2}% 3
-\BOOKMARK [1][-]{section.2.2}{Linux installer instructions}{chapter.2}% 4
-\BOOKMARK [1][-]{section.2.3}{Mac OS X Installation}{chapter.2}% 5
-\BOOKMARK [1][-]{section.2.4}{Manual installation from source}{chapter.2}% 6
-\BOOKMARK [0][-]{chapter.3}{Quickstart Tutorial}{}% 7
-\BOOKMARK [0][-]{chapter.4}{Worked Examples}{}% 8
-\BOOKMARK [1][-]{section.4.1}{The nonlinear Schr\366dinger equation}{chapter.4}% 9
-\BOOKMARK [1][-]{section.4.2}{Kubo Oscillator}{chapter.4}% 10
-\BOOKMARK [1][-]{section.4.3}{Fibre Noise}{chapter.4}% 11
-\BOOKMARK [1][-]{section.4.4}{Integer Dimensions}{chapter.4}% 12
-\BOOKMARK [1][-]{section.4.5}{Wigner Function}{chapter.4}% 13
-\BOOKMARK [1][-]{section.4.6}{Finding the Ground State of a BEC \(continuous renormalisation\)}{chapter.4}% 14
-\BOOKMARK [1][-]{section.4.7}{Finding the Ground State of a BEC again}{chapter.4}% 15
-\BOOKMARK [1][-]{section.4.8}{Multi-component Schr\366dinger equation}{chapter.4}% 16
-\BOOKMARK [0][-]{chapter.5}{Reference section}{}% 17
-\BOOKMARK [1][-]{section.5.1}{Configuration, installation and runtime options}{chapter.5}% 18
-\BOOKMARK [1][-]{section.5.2}{Useful XML Syntax}{chapter.5}% 19
-\BOOKMARK [1][-]{section.5.3}{XMDS2 XML Schema}{chapter.5}% 20
-\BOOKMARK [1][-]{section.5.4}{XMDS2 script elements}{chapter.5}% 21
-\BOOKMARK [0][-]{chapter.6}{Advanced Topics}{}% 22
-\BOOKMARK [1][-]{section.6.1}{Importing data}{chapter.6}% 23
-\BOOKMARK [1][-]{section.6.2}{Convolutions and Fourier transforms}{chapter.6}% 24
-\BOOKMARK [1][-]{section.6.3}{`Loose' geometry\137matching\137mode}{chapter.6}% 25
-\BOOKMARK [1][-]{section.6.4}{Dimension aliases}{chapter.6}% 26
-\BOOKMARK [0][-]{chapter.7}{Frequently Asked Questions}{}% 27
-\BOOKMARK [1][-]{section.7.1}{XMDS scripts look complicated! How do I start?}{chapter.7}% 28
-\BOOKMARK [1][-]{section.7.2}{Where can I get help?}{chapter.7}% 29
-\BOOKMARK [1][-]{section.7.3}{How should I cite XMDS2?}{chapter.7}% 30
-\BOOKMARK [1][-]{section.7.4}{I think I found a bug! Where should I report it?}{chapter.7}% 31
-\BOOKMARK [1][-]{section.7.5}{How do I put time dependence into my vectors?}{chapter.7}% 32
-\BOOKMARK [1][-]{section.7.6}{Can I specify the range of my domain and number of grid points at run-time?}{chapter.7}% 33
-\BOOKMARK [1][-]{section.7.7}{When can I use IP operators \(and why should I\) and when must I use EX operators?}{chapter.7}% 34
-\BOOKMARK [1][-]{section.7.8}{Visual Editors}{chapter.7}% 35
-\BOOKMARK [0][-]{chapter.8}{Upgrading From XMDS 1.X}{}% 36
-\BOOKMARK [0][-]{chapter.9}{Optimisation Hints}{}% 37
-\BOOKMARK [1][-]{section.9.1}{Geometry and transform-based tricks}{chapter.9}% 38
-\BOOKMARK [1][-]{section.9.2}{Reduce code complexity}{chapter.9}% 39
-\BOOKMARK [1][-]{section.9.3}{Compiler and library tricks}{chapter.9}% 40
-\BOOKMARK [1][-]{section.9.4}{Atom-optics-specific hints}{chapter.9}% 41
-\BOOKMARK [0][-]{chapter.10}{xsil2graphics2}{}% 42
-\BOOKMARK [0][-]{chapter.11}{Developer Documentation}{}% 43
-\BOOKMARK [1][-]{section.11.1}{Test scripts}{chapter.11}% 44
-\BOOKMARK [1][-]{section.11.2}{Steps to update XMDS script validator \(XML schema\)}{chapter.11}% 45
-\BOOKMARK [1][-]{section.11.3}{Directory layout}{chapter.11}% 46
-\BOOKMARK [0][-]{chapter.12}{Licensing}{}% 47
-\BOOKMARK [0][-]{chapter.13}{News}{}% 48
-\BOOKMARK [1][-]{section.13.1}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' \(September 27, 2013\)}{chapter.13}% 49
-\BOOKMARK [1][-]{section.13.2}{XMDS 2.1.3 ``Happy Mollusc'' \(June 7, 2013\)}{chapter.13}% 50
-\BOOKMARK [1][-]{section.13.3}{XMDS 2.1.2 ``Happy Mollusc'' \(October 15, 2012\)}{chapter.13}% 51
-\BOOKMARK [1][-]{section.13.4}{XMDS 2.1 ``Happy Mollusc'' \(June 14, 2012\)}{chapter.13}% 52
-\BOOKMARK [1][-]{section.13.5}{XMDS 2.0 ``Shiny!'' \(September 13, 2010\)}{chapter.13}% 53
+\BOOKMARK [0][-]{chapter.1}{Introduction}{}
+\BOOKMARK [0][-]{chapter.2}{Installation}{}
+\BOOKMARK [1][-]{section.2.1}{Installers}{chapter.2}
+\BOOKMARK [1][-]{section.2.2}{Linux installer instructions}{chapter.2}
+\BOOKMARK [1][-]{section.2.3}{Mac OS X Installation}{chapter.2}
+\BOOKMARK [1][-]{section.2.4}{Manual installation from source}{chapter.2}
+\BOOKMARK [0][-]{chapter.3}{Quickstart Tutorial}{}
+\BOOKMARK [0][-]{chapter.4}{Worked Examples}{}
+\BOOKMARK [1][-]{section.4.1}{The nonlinear Schr\366dinger equation}{chapter.4}
+\BOOKMARK [1][-]{section.4.2}{Kubo Oscillator}{chapter.4}
+\BOOKMARK [1][-]{section.4.3}{Fibre Noise}{chapter.4}
+\BOOKMARK [1][-]{section.4.4}{Integer Dimensions}{chapter.4}
+\BOOKMARK [1][-]{section.4.5}{Wigner Function}{chapter.4}
+\BOOKMARK [1][-]{section.4.6}{Finding the Ground State of a BEC \(continuous renormalisation\)}{chapter.4}
+\BOOKMARK [1][-]{section.4.7}{Finding the Ground State of a BEC again}{chapter.4}
+\BOOKMARK [1][-]{section.4.8}{Multi-component Schr\366dinger equation}{chapter.4}
+\BOOKMARK [0][-]{chapter.5}{Reference section}{}
+\BOOKMARK [1][-]{section.5.1}{Configuration, installation and runtime options}{chapter.5}
+\BOOKMARK [1][-]{section.5.2}{Useful XML Syntax}{chapter.5}
+\BOOKMARK [1][-]{section.5.3}{XMDS2 XML Schema}{chapter.5}
+\BOOKMARK [1][-]{section.5.4}{XMDS2 script elements}{chapter.5}
+\BOOKMARK [1][-]{section.5.5}{Modified Midpoint Method}{chapter.5}
+\BOOKMARK [1][-]{section.5.6}{Bulirsch-Stoer Algorithm}{chapter.5}
+\BOOKMARK [1][-]{section.5.7}{Error Scaling Behaviour}{chapter.5}
+\BOOKMARK [0][-]{chapter.6}{Advanced Topics}{}
+\BOOKMARK [1][-]{section.6.1}{Importing data}{chapter.6}
+\BOOKMARK [1][-]{section.6.2}{Convolutions and Fourier transforms}{chapter.6}
+\BOOKMARK [1][-]{section.6.3}{`Loose' geometry\137matching\137mode}{chapter.6}
+\BOOKMARK [1][-]{section.6.4}{Dimension aliases}{chapter.6}
+\BOOKMARK [0][-]{chapter.7}{Frequently Asked Questions}{}
+\BOOKMARK [1][-]{section.7.1}{XMDS scripts look complicated! How do I start?}{chapter.7}
+\BOOKMARK [1][-]{section.7.2}{Where can I get help?}{chapter.7}
+\BOOKMARK [1][-]{section.7.3}{How should I cite XMDS2?}{chapter.7}
+\BOOKMARK [1][-]{section.7.4}{I think I found a bug! Where should I report it?}{chapter.7}
+\BOOKMARK [1][-]{section.7.5}{How do I put time dependence into my vectors?}{chapter.7}
+\BOOKMARK [1][-]{section.7.6}{Can I specify the range of my domain and number of grid points at run-time?}{chapter.7}
+\BOOKMARK [1][-]{section.7.7}{When can I use IP operators \(and why should I\) and when must I use EX operators?}{chapter.7}
+\BOOKMARK [1][-]{section.7.8}{Visual Editors}{chapter.7}
+\BOOKMARK [0][-]{chapter.8}{Upgrading From XMDS 1.X}{}
+\BOOKMARK [0][-]{chapter.9}{Optimisation Hints}{}
+\BOOKMARK [1][-]{section.9.1}{Geometry and transform-based tricks}{chapter.9}
+\BOOKMARK [1][-]{section.9.2}{Reduce code complexity}{chapter.9}
+\BOOKMARK [1][-]{section.9.3}{Compiler and library tricks}{chapter.9}
+\BOOKMARK [1][-]{section.9.4}{Atom-optics-specific hints}{chapter.9}
+\BOOKMARK [0][-]{chapter.10}{xsil2graphics2}{}
+\BOOKMARK [0][-]{chapter.11}{Developer Documentation}{}
+\BOOKMARK [1][-]{section.11.1}{Test scripts}{chapter.11}
+\BOOKMARK [1][-]{section.11.2}{XMDS Documentation}{chapter.11}
+\BOOKMARK [1][-]{section.11.3}{How to update XMDS2 script validator \(XML schema\)}{chapter.11}
+\BOOKMARK [1][-]{section.11.4}{How to introduce a new integrator Stepper into the XMDS2 environment}{chapter.11}
+\BOOKMARK [1][-]{section.11.5}{Logical breakdown of XMDS2 Parsing Process}{chapter.11}
+\BOOKMARK [1][-]{section.11.6}{Directory layout}{chapter.11}
+\BOOKMARK [0][-]{chapter.12}{Licensing}{}
+\BOOKMARK [1][-]{section.12.1}{GNU General Public License}{chapter.12}
+\BOOKMARK [1][-]{section.12.2}{GNU Free Documentation License}{chapter.12}
+\BOOKMARK [0][-]{chapter.13}{News}{}
+\BOOKMARK [1][-]{section.13.1}{XMDS 2.2.0 ``Out of cheese error'' \(January 13, 2014\)}{chapter.13}
+\BOOKMARK [1][-]{section.13.2}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' \(September 27, 2013\)}{chapter.13}
+\BOOKMARK [1][-]{section.13.3}{XMDS 2.1.3 ``Happy Mollusc'' \(June 7, 2013\)}{chapter.13}
+\BOOKMARK [1][-]{section.13.4}{XMDS 2.1.2 ``Happy Mollusc'' \(October 15, 2012\)}{chapter.13}
+\BOOKMARK [1][-]{section.13.5}{XMDS 2.1 ``Happy Mollusc'' \(June 14, 2012\)}{chapter.13}
+\BOOKMARK [1][-]{section.13.6}{XMDS 2.0 ``Shiny!'' \(September 13, 2010\)}{chapter.13}
+\BOOKMARK [0][-]{section*.55}{Index}{}
diff --git a/documentation/latex/xmds2.pdf b/documentation/latex/xmds2.pdf
index 82851f0..9492986 100644
Binary files a/documentation/latex/xmds2.pdf and b/documentation/latex/xmds2.pdf differ
diff --git a/documentation/latex/xmds2.tex b/documentation/latex/xmds2.tex
index 2541003..6db0df8 100644
--- a/documentation/latex/xmds2.tex
+++ b/documentation/latex/xmds2.tex
@@ -3,7 +3,6 @@
 \documentclass[a4paper,10pt,english]{sphinxmanual}
 \usepackage[utf8]{inputenc}
 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
-\usepackage{cmap}
 \usepackage[T1]{fontenc}
 \usepackage{babel}
 \usepackage{times}
@@ -14,8 +13,8 @@
 
 
 \title{XMDS2 Documentation}
-\date{September 28, 2013}
-\release{2.1.4}
+\date{January 14, 2014}
+\release{2.2.0}
 \author{Graham Dennis, Joe Hope and Mattias Johnsson}
 \newcommand{\sphinxlogo}{\includegraphics{xmds_logo.pdf}\par}
 \renewcommand{\releasename}{Release}
@@ -33,7 +32,7 @@
 \def\PYG#1#2{\PYG at reset\PYG at toks#1+\relax+\PYG at do{#2}}
 
 \expandafter\def\csname PYG at tok@gu\endcsname{\let\PYG at bf=\textbf\def\PYG at tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
-\expandafter\def\csname PYG at tok@gt\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
+\expandafter\def\csname PYG at tok@gt\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}}
 \expandafter\def\csname PYG at tok@gs\endcsname{\let\PYG at bf=\textbf}
 \expandafter\def\csname PYG at tok@gr\endcsname{\def\PYG at tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@cm\endcsname{\let\PYG at it=\textit\def\PYG at tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
@@ -44,7 +43,7 @@
 \expandafter\def\csname PYG at tok@ge\endcsname{\let\PYG at it=\textit}
 \expandafter\def\csname PYG at tok@gd\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@il\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG at tok@go\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
+\expandafter\def\csname PYG at tok@go\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.19,0.19,0.19}{##1}}}
 \expandafter\def\csname PYG at tok@cp\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
 \expandafter\def\csname PYG at tok@gi\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@gh\endcsname{\let\PYG at bf=\textbf\def\PYG at tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
@@ -104,9 +103,6 @@
 \def\PYGZsh{\char`\#}
 \def\PYGZpc{\char`\%}
 \def\PYGZdl{\char`\$}
-\def\PYGZhy{\char`\-}
-\def\PYGZsq{\char`\'}
-\def\PYGZdq{\char`\"}
 \def\PYGZti{\char`\~}
 % for compatibility with earlier versions
 \def\PYGZat{@}
@@ -148,15 +144,18 @@ In 2003, the increased scope of the package prompted a complete rewrite by Greg
 
 In 2008 a second complete rewrite was undertaken, largely by Graham Dennis (using Cheetah templates in python), leading to the current version \textbf{XMDS2}.  This restructuring of the internal treatment of XML elements and the generated code allowed a new range of extensions to be explored.  These included possibilities such as integrating multiple fields with different dimensionality, a more general set of differential equations that can be solved efficiently, and multiple choices of  [...]
 
+\index{Installing XMDS2}
 
 \chapter{Installation}
-\label{installation:installation}\label{installation::doc}\label{installation:id1}
+\label{installation:installation}\label{installation:index-0}\label{installation::doc}\label{installation:id1}
 \textbf{XMDS2} can be installed on any unix-like system including Linux, Tru64, and Mac OS X.  It requires a C++ compiler, python, and several installed packages.  Many of these packages are optional, but a good idea to obtain full functionality.
 
 
 \section{Installers}
 \label{installation:installers}
-The easiest way to get started is with an installer.  If we don't have an installer for your system, follow the {\hyperref[installation:manualinstallation]{\emph{manual installation}}} instructions.
+If you are using Debian GNU/Linux, XMDS2 will eventually be available in the Debian ``jessie'' distribution.  In the meanwhile, a temporary APT repository has been set up, which works for both the current stable (a.k.a ``wheezy'') and testing (a.k.a. ``jessie'') distributions.  For using this repository, follow the instructions at \href{http://xmds.laboissiere.net}{http://xmds.laboissiere.net}.
+
+If you're not using Debian, the easiest way to get started is with an installer.  If we don't have an installer for your system, follow the {\hyperref[installation:manualinstallation]{\emph{manual installation}}} instructions.
 
 \begin{tabulary}{\linewidth}{|c|c|c|}
 \hline
@@ -166,27 +165,28 @@ Linux (Ubuntu/Debian/Fedora/RedHat)
 \href{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}{Download Linux Installer}
  & 
 {\hyperref[installation:linux-installation]{\emph{Learn more}}}
-\\
+\\\hline
 
 OS X 10.6/10.7
  & 
 \href{http://sourceforge.net/projects/xmds/files}{Download OS X Installer}
  & 
 {\hyperref[installation:mac-installation]{\emph{Learn more}}}
-\\
+\\\hline
 
 Other systems
  & 
 {\hyperref[installation:manualinstallation]{\emph{Install from source}}}
- & \\
-\hline\end{tabulary}
+ & \\\hline
+\end{tabulary}
 
 
 If you have one of the supported operating systems listed above, but you find the installer doesn't work for you, please let us know by emailing xmds-devel \textless{}at\textgreater{} lists.sourceforge.net. If you'd like to tweak the linux installer to work on a distribution we haven't tested, we'd love you to do that and let us know!
 
+\index{Installers - linux}
 
 \section{Linux installer instructions}
-\label{installation:linux-installation}\label{installation:linux-installer-instructions}
+\label{installation:linux-installation}\label{installation:index-1}\label{installation:linux-installer-instructions}
 The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: \href{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}
 
 Once you have downloaded it, make the installer executable and run it by typing the following into a terminal:
@@ -199,7 +199,7 @@ chmod u+x linux\PYGZus{}installer.sh
 Alternatively, if you wish to download and run the installer in a single step, you can use the following command:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-/bin/bash \PYGZhy{}c \PYGZdq{}\PYGZdl{}(wget \PYGZhy{}qO \PYGZhy{} http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\PYGZus{}installer.sh)\PYGZdq{}
+/bin/bash -c "\PYGZdl{}(wget -qO - http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\PYGZus{}installer.sh)"
 \end{Verbatim}
 
 The linux installer installs all XMDS2 dependencies from your native package manager where possible (\code{apt-get} for Ubuntu/Debian, \code{yum} for Fedora/Red Hat) but will download and compile the source code for libraries not available through the package manager. This means you'll need to be connected to the internet when running the installer. The installer should not be run with administrative privileges; it will ask you to enter your admin password at the appropriate point.
@@ -210,9 +210,10 @@ By default, this installer will install a known stable version of XMDS, which ca
 
 Once XMDS2 has been installed, you can run it from the terminal by typing \code{xmds2}. See the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}} for next steps.
 
+\index{Installers - Max OS X}
 
 \section{Mac OS X Installation}
-\label{installation:mac-os-x-installation}\label{installation:mac-installation}
+\label{installation:mac-os-x-installation}\label{installation:index-2}\label{installation:mac-installation}
 
 \subsection{Download}
 \label{installation:download}
@@ -231,9 +232,10 @@ To uninstall XMDS, drag the XMDS application to the trash. XMDS places some file
 
 This package includes binaries for \href{http://www.open-mpi.org}{OpenMPI}, \href{http://www.fftw.org}{FFTW}, \href{http://www.hdfgroup.org/HDF5}{HDF5} and \href{http://www.gnu.org/software/gsl}{GSL}. These binaries are self-contained and do not overwrite any existing installations.
 
+\index{Installing via source}
 
 \section{Manual installation from source}
-\label{installation:manualinstallation}\label{installation:manual-installation-from-source}
+\label{installation:manualinstallation}\label{installation:manual-installation-from-source}\label{installation:index-3}
 This installation guide will take you through a typical full install step by step. A large part of this procedure is obtaining and installing other libraries that XMDS2 requires, before installing XMDS2 itself.
 
 While the instructions below detail these packages individually, if you have administrative privileges (or can request packages from your administrator) and if you are using an Ubuntu, Debian, Fedora or Red Hat linux distribution, you can install all required and optional dependencies (but not XMDS2 itself) via
@@ -241,13 +243,13 @@ While the instructions below detail these packages individually, if you have adm
 Ubuntu / Debian:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-sudo apt\PYGZhy{}get install build\PYGZhy{}essential subversion libopenmpi\PYGZhy{}dev openmpi\PYGZhy{}bin python\PYGZhy{}dev python\PYGZhy{}setuptools python\PYGZhy{}cheetah python\PYGZhy{}numpy python\PYGZhy{}pyparsing python\PYGZhy{}lxml python\PYGZhy{}mpmath libhdf5\PYGZhy{}serial\PYGZhy{}dev libgsl0\PYGZhy{}dev python\PYGZhy{}sphinx python\PYGZhy{}h5py libatlas\PYGZhy{}base\PYGZhy{}dev
+sudo apt-get install build-essential subversion libopenmpi-dev openmpi-bin python-dev python-setuptools python-cheetah python-numpy python-pyparsing python-lxml python-mpmath libhdf5-serial-dev libgsl0-dev python-sphinx python-h5py libatlas-base-dev
 \end{Verbatim}
 
 Fedora / Red Hat:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-sudo yum install gcc gcc\PYGZhy{}c++ make automake subversion openmpi\PYGZhy{}devel python\PYGZhy{}devel python\PYGZhy{}setuptools python\PYGZhy{}cheetah numpy gsl\PYGZhy{}devel python\PYGZhy{}sphinx libxml2\PYGZhy{}devel libxslt\PYGZhy{}devel atlas\PYGZhy{}devel hdf5\PYGZhy{}devel pyparsing pyparsing python\PYGZhy{}lxml python\PYGZhy{}mpmath h5py
+sudo yum install gcc gcc-c++ make automake subversion openmpi-devel python-devel python-setuptools python-cheetah numpy gsl-devel python-sphinx libxml2-devel libxslt-devel atlas-devel hdf5-devel pyparsing pyparsing python-lxml python-mpmath h5py
 \end{Verbatim}
 
 You will still have to download and build FFTW 3.3 from source (see below) since prebuilt packages with MPI and AVX support are not currently available in the repositories.
@@ -419,7 +421,7 @@ After downloading the source, execute \code{python ./setup.py build} in the sour
 \end{enumerate}
 
 \item {} \begin{description}
-\item[{Install XMDS2 into your python path by running (in the xmds-2.1.4/ directory):}] \leavevmode
+\item[{Install XMDS2 into your python path by running (in the xmds-2.2.0/ directory):}] \leavevmode
 \code{sudo ./setup.py develop}
 
 If you want to install it into your home directory, type \code{./setup.py develop -{-}prefix=\textasciitilde{}}
@@ -429,13 +431,13 @@ This step requires access to the net, as it downloads any dependent packages.  I
 \item {} \begin{description}
 \item[{Developer only instructions:}] \leavevmode
 The Cheetah templates (*.tmpl) must be compiled into python.
-To do this, run \code{make} in the xmds-2.1.4/ directory.
+To do this, run \code{make} in the xmds-2.2.0/ directory.
 
 \end{description}
 
 \item {} \begin{description}
 \item[{Developer-only instructions:}] \leavevmode
-If you have `numpy' installed, test XMDS2 by typing \code{./run\_tests.py} in the xmds-2.1.4/ directory.
+If you have `numpy' installed, test XMDS2 by typing \code{./run\_tests.py} in the xmds-2.2.0/ directory.
 The package `numpy' is one of the optional packages, with installation instructions below.
 
 \end{description}
@@ -445,11 +447,11 @@ The package `numpy' is one of the optional packages, with installation instructi
 To build the user documentation, you first need to install sphinx, either via your package manager or:
 \code{sudo easy\_install Sphinx}
 
-Then, to build the documentation, in the xmds-2.1.4/admin/userdoc-source/ directory run: \code{make html}
+Then, to build the documentation, in the xmds-2.2.0/admin/userdoc-source/ directory run: \code{make html}
 
 If this results in an error, you may need to run \code{sudo ./setup.py develop}
 
-The generated html documentation will then be found at xmds-2.1.4/documentation/index.html
+The generated html documentation will then be found at xmds-2.2.0/documentation/index.html
 
 \end{description}
 
@@ -476,11 +478,12 @@ If you need to use additional compiler or link flags for XMDS2 to use certain li
 
 \end{enumerate}
 
-\textbf{Congratulations!} You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the ``xmds-2.1.4/examples'' directory, and follow the worked examples in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}} and {\hyperref[worked_examples:workedexamples]{\emph{Worked Examples}}}.
+\textbf{Congratulations!} You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the ``xmds-2.2.0/examples'' directory, and follow the worked examples in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}} and {\hyperref[worked_examples:workedexamples]{\emph{Worked Examples}}}.
 
+\index{Tutorial}
 
 \chapter{Quickstart Tutorial}
-\label{tutorial::doc}\label{tutorial:quickstart-tutorial}\label{tutorial:quickstarttutorial}
+\label{tutorial:index-0}\label{tutorial::doc}\label{tutorial:quickstart-tutorial}\label{tutorial:quickstarttutorial}
 In this tutorial, we will create an XMDS2 script to solve the Lorenz Attractor, an example of a dynamical system that exhibits chaos. The equations describing this problem are
 \begin{gather}
 \begin{split}\frac{dx}{dt} &= \sigma (y - x)\\
@@ -492,20 +495,20 @@ where we will solve with the parameters $\sigma=10$, $\rho=28$, $\beta = \frac{8
 Below is a script that solves this problem (it's also saved as examples/lorenz.xmds in your XMDS2 directory). Don't worry if it doesn't make sense yet, soon we'll break it down into easily digestible parts.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}lorenz\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{--\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
     The Lorenz Attractor, an example of chaos.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
+  \PYG{c}{\PYGZlt{}!--}
 \PYG{c}{  This element defines some constants.  It can be used for other}
 \PYG{c}{  features as well, but we will go into that in more detail later.}
-\PYG{c}{  }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+\PYG{c}{  }\PYG{c}{--\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -516,16 +519,16 @@ Below is a script that solves this problem (it's also saved as examples/lorenz.x
      \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
+  \PYG{c}{\PYGZlt{}!--}
 \PYG{c}{  This part defines all of the dimensions used in the problem,}
-\PYG{c}{  in this case, only the dimension of \PYGZsq{}time\PYGZsq{} is needed.}
-\PYG{c}{  }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+\PYG{c}{  in this case, only the dimension of 'time' is needed.}
+\PYG{c}{  }\PYG{c}{--\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A \PYGZsq{}vector\PYGZsq{} describes the variables that we will be evolving. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}position\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A 'vector' describes the variables that we will be evolving. }\PYG{c}{--\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"position"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
       x y z
     \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -537,26 +540,26 @@ Below is a script that solves this problem (it's also saved as examples/lorenz.x
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
+    \PYG{c}{\PYGZlt{}!--}
 \PYG{c}{    Here we define what differential equations need to be solved}
 \PYG{c}{    and what algorithm we want to use.}
-\PYG{c}{    }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c}{    }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{\PYGZhy{}}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
-        \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{\PYGZhy{}} \PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
-        \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+        \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{-}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{-} \PYG{n}{y} \PYG{o}{-} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+        \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{-} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ This part defines what data will be saved in the output file }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}lorenz.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ This part defines what data will be saved in the output file }\PYG{c}{--\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"lorenz.xsil"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR yR zR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -574,13 +577,13 @@ You can compile and run this script with \textbf{XMDS2}. To compile the script,
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} xmds2 lorenz.xmds
-xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
-Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 "Happy Mollusc" (r2680)
+Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type \PYGZsq{}./lorenz\PYGZsq{} to run.
+... done. Type './lorenz' to run.
 \end{Verbatim}
 \end{quote}
 
@@ -590,32 +593,33 @@ Now we can execute the generated program `lorenz'.
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} ./lorenz
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Sampled field (for moment group \PYGZsh{}1) at t = 4.000000e\PYGZhy{}03
-Current timestep: 4.000000e\PYGZhy{}03
-Sampled field (for moment group \PYGZsh{}1) at t = 8.000000e\PYGZhy{}03
-Current timestep: 4.000000e\PYGZhy{}03
+Sampled field (for moment group \PYGZsh{}1) at t = 4.000000e-03
+Current timestep: 4.000000e-03
+Sampled field (for moment group \PYGZsh{}1) at t = 8.000000e-03
+Current timestep: 4.000000e-03
 
 ... many lines omitted ...
 
-Current timestep: 4.000000e\PYGZhy{}03
+Current timestep: 4.000000e-03
 Sampled field (for moment group \PYGZsh{}1) at t = 1.999600e+01
-Current timestep: 4.000000e\PYGZhy{}03
+Current timestep: 4.000000e-03
 Sampled field (for moment group \PYGZsh{}1) at t = 2.000000e+01
-Current timestep: 4.000000e\PYGZhy{}03
-Segment 1: minimum timestep: 9.997900e\PYGZhy{}06 maximum timestep: 4.000000e\PYGZhy{}03
+Current timestep: 4.000000e-03
+Segment 1: minimum timestep: 9.997900e-06 maximum timestep: 4.000000e-03
   Attempted 7386 steps, 0.00\PYGZpc{} steps failed.
 Generating output for lorenz
 \end{Verbatim}
 \end{quote}
 
+\index{Exporting data}
 The program generated by \textbf{XMDS2} has now integrated your equations and produced two files.  The first is the XML file ``lorenz.xsil'', which contains the all the information used to generate the simulation (including the XMDS2 code) and the metadata description of the output.  The second file is named ``lorenz.h5'', which is a \href{http://www.hdfgroup.org/HDF5}{HDF5} file containing all of the output data.   You can analysing these files yourself, or import them into your favouri [...]
 \begin{quote}
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} xsil2graphics2 \PYGZhy{}e lorenz.xsil
-xsil2graphics2 from xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
+\PYGZdl{} xsil2graphics2 -e lorenz.xsil
+xsil2graphics2 from xmds2 version 2.1 "Happy Mollusc" (r2680)
 Generating output for Mathematica 6+.
-Writing import script for \PYGZsq{}lorenz.xsil\PYGZsq{} to \PYGZsq{}lorenz.nb\PYGZsq{}.
+Writing import script for 'lorenz.xsil' to 'lorenz.nb'.
 \end{Verbatim}
 \end{quote}
 
@@ -635,11 +639,11 @@ ListPointPlot3D[ll]
 First, we have the top level description of the code.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}lorenz\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{--\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
     The Lorenz Attractor, an example of chaos.
@@ -683,7 +687,7 @@ This element is used to define all the dimensions in the problem.  We only requi
 Next, we have the \code{\textless{}vector\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}position\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"position"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
     x y z
   \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -701,14 +705,14 @@ Now we come to the heart of the simulation, where we define the evolution of our
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{\PYGZhy{}}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
-      \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{\PYGZhy{}} \PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
-      \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+      \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{-}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{-} \PYG{n}{y} \PYG{o}{-} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+      \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{-} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -722,8 +726,8 @@ All integrate blocks must define which algorithm is to be used - in this case th
 The \code{\textless{}samples\textgreater{}} element says that the values of the output groups will be sampled 5000 times during this interval.  The nature of the output is defined in the last element in the simulation: the \code{\textless{}output\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}lorenz.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"lorenz.xsil"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR yR zR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -741,9 +745,10 @@ The \code{\textless{}output\textgreater{}} element can contain any non-zero numb
 
 And that's it.  This is quite a large framework to integrate three coupled ordinary differential equations, but the advantage of using XMDS2 is that vastly more complicated simulations can be performed without increasing the length or complexity of the XMDS2 script significantly.  The {\hyperref[worked_examples:workedexamples]{\emph{Worked Examples}}} section will provide more complicated examples with stochastic equations and partial differential equations.  If you are moved to solve yo [...]
 
+\index{Examples}
 
 \chapter{Worked Examples}
-\label{worked_examples:worked-examples}\label{worked_examples::doc}\label{worked_examples:workedexamples}
+\label{worked_examples:index-0}\label{worked_examples:worked-examples}\label{worked_examples::doc}\label{worked_examples:workedexamples}
 One of the best ways to learn XMDS2 is to see several illustrative examples.  Here are a set of example scripts and explanations of the code, which will be a good way to get started.  As an instructional aid, they are meant to be read sequentially, but the adventurous could try starting with one that looked like a simulation they wanted to run, and adapt for their own purposes.
 \begin{quote}
 
@@ -766,9 +771,10 @@ One of the best ways to learn XMDS2 is to see several illustrative examples.  He
 
 All of these scripts are available in the included ``examples'' folder, along with more examples that demonstrate other tricks.  Together, they provide starting points for a huge range of different simulations.
 
+\index{Nonlinear Schroedinger equation}
 
 \section{The nonlinear Schrödinger equation}
-\label{worked_examples:nonlinearschrodingerequation}\label{worked_examples:the-nonlinear-schrodinger-equation}
+\label{worked_examples:nonlinearschrodingerequation}\label{worked_examples:the-nonlinear-schrodinger-equation}\label{worked_examples:index-1}
 This worked example will show a range of new features that can be used in an \textbf{XMDS2} script, and we will also examine our first partial differential equation.  We will take the one dimensional nonlinear Schrödinger equation, which is a common nonlinear wave equation.  The equation describing this problem is:
 \begin{gather}
 \begin{split}\frac{\partial \phi}{\partial \xi} = \frac{i}{2}\frac{\partial^2 \phi}{\partial \tau^2} - \Gamma(\tau)\phi+i|\phi|^2 \phi\end{split}\notag\\\begin{split}\end{split}\notag
@@ -776,7 +782,7 @@ This worked example will show a range of new features that can be used in an \te
 where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent damping term.  Let us look at an XMDS2 script that integrates this equation, and then examine it in detail.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}nlse\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
@@ -789,7 +795,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
@@ -804,43 +810,43 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} xi \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"tau"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{dimensions=}\PYG{l+s}{"tau"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{k}{const} \PYG{k+kt}{double} \PYG{n}{w0} \PYG{o}{=} \PYG{n}{hwhm}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{log}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{k}{const} \PYG{k+kt}{double} \PYG{n}{amp} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{energy}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{amp}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{w0}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{vel}\PYG{o}{*}\PYG{n}{tau}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{amp}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{w0}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{vel}\PYG{o}{*}\PYG{n}{tau}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}dampingVector\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"dampingVector"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Gamma \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{Gamma}\PYG{o}{=}\PYG{l+m+mf}{1.0}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{pow}\PYG{p}{(}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{p}{,}\PYG{l+m+mi}{10}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{Gamma}\PYG{o}{=}\PYG{l+m+mf}{1.0}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{n}{pow}\PYG{p}{(}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{p}{,}\PYG{l+m+mi}{10}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}10 100 10\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ltt\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+            \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+        \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampingVector\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -848,7 +854,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -856,7 +862,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau(0)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau(0)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -864,7 +870,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ktau(32)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"ktau(32)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}densityK\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -886,7 +892,7 @@ Let us examine the \code{\textless{}geometry\textgreater{}} element.
 \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} xi \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"tau"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
@@ -900,18 +906,18 @@ The second vector element contains the component ``Gamma'' which is a function o
 The \code{\textless{}integrate\textgreater{}} element for a partial differential equation has some new features:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}10 100 10\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ltt\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+        \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+    \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampingVector\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -929,7 +935,7 @@ The output of a partial differential equation offers more possibilities than an
 For vectors with transverse dimensions, we can sample functions of the vectors on the full lattice or a subset of the points.  In the \code{\textless{}sampling\_group\textgreater{}} element, we must add a string called ``basis'' that determines the space in which each transverse dimension is to be sampled, optionally followed by the number of points to be sampled in parentheses.  If the number of points is not specified, it will default to a complete sampling of all points in that dimens [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -943,7 +949,7 @@ The first output group samples the mod square of the vector ``phi'' over the ful
 If the lattice parameter is set to zero points, then the corresponding dimension is integrated.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau(0)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau(0)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -957,7 +963,7 @@ This second output group samples the normalisation of the wavefunction $\int d\t
 Finally, functions of the vectors can be sampled with their dimensions in Fourier space.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ktau(32)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"ktau(32)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}densityK\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -968,9 +974,10 @@ Finally, functions of the vectors can be sampled with their dimensions in Fourie
 
 The final output group above samples the mod square of the Fourier-space wavefunction phi on a sample of 32 points.
 
+\index{Kubo oscillator}
 
 \section{Kubo Oscillator}
-\label{worked_examples:kubo}\label{worked_examples:kubo-oscillator}
+\label{worked_examples:kubo}\label{worked_examples:kubo-oscillator}\label{worked_examples:index-2}
 This example demonstrates the integration of a stochastic differential equation.  We examine the Kubo oscillator, which is a complex variable whose phase is evolving according to a Wiener noise.  In a suitable rotating frame, the equation of motion for the variable is
 \begin{gather}
 \begin{split}\frac{dz}{dt} = i z \;\eta\end{split}\notag\\\begin{split}\end{split}\notag
@@ -982,7 +989,7 @@ where $\eta(t)$ is the Wiener differential, and we interpret this as a Stratonov
 Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich euqations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}kubo\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis and Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -993,18 +1000,18 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}10000\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"10000"} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} z \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1014,7 +1021,7 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}SI\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}1000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"SI"} \PYG{n+na}{interval=}\PYG{l+s}{"10"} \PYG{n+na}{steps=}\PYG{l+s}{"1000"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
@@ -1027,7 +1034,7 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}zR zI\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1039,14 +1046,16 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Driver examples!multi-path}
 The first new item in this script is the \code{\textless{}driver\textgreater{}} element.  This element enables us to change top level management of the simulation.  Without this element, XMDS2 will integrate the stochastic equation as described.  With this element and the option \code{name="multi-path"}, it will integrate it multiple times, using different random numbers each time.  The output will then contain the mean values and standard errors of your output variables.  The number of  [...]
 
 In the \code{\textless{}features\textgreater{}} element we have included the \code{\textless{}error\_check\textgreater{}} element.  This performs the integration first with the specified number of steps (or with the specified tolerance), and then with twice the number of steps (or equivalently reduced tolerance).  The output then includes the difference between the output variables on the coarse and the fine grids as the `error' in the output variables.  This error is particularly useful [...]
 
+\index{Noise vector example}
 We define the stochastic elements in a simulation with the \code{\textless{}noise\_vector\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \end{Verbatim}
@@ -1080,7 +1089,7 @@ Starting path 2
 Starting path 9999
 Starting path 10000
 Generating output for kubo
-Maximum step error in moment group 1 was 4.942549e\PYGZhy{}04
+Maximum step error in moment group 1 was 4.942549e-04
 Time elapsed for simulation is: 2.71 seconds
 \end{Verbatim}
 
@@ -1100,9 +1109,10 @@ The average over multiple paths can be increasingly smooth.
 \includegraphics{kubo10000.pdf}
 \caption{The mean and standard error of the z variable averaged over 10000 paths, as given by this simulation.  It agrees within the standard error with the expected result of $\exp(-t/2)$.}\end{figure}
 
+\index{Fibre noise}
 
 \section{Fibre Noise}
-\label{worked_examples:fibre}\label{worked_examples:fibre-noise}
+\label{worked_examples:fibre}\label{worked_examples:fibre-noise}\label{worked_examples:index-5}
 This simulation is a stochastic partial differential equation, in which a one-dimensional damped field is subject to a complex noise. This script can be found in \code{examples/fibre.xmds}.
 \begin{gather}
 \begin{split}\frac{\partial \psi}{\partial t} = -i \frac{\partial^2 \psi}{\partial x^2} -\gamma \psi+\beta \frac{1}{\sqrt{2}}\left(\eta_1(x)+i\eta_2(x)\right)\end{split}\notag\\\begin{split}\end{split}\notag
@@ -1110,7 +1120,7 @@ This simulation is a stochastic partial differential equation, in which a one-di
 where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is interpreted as a Stratonovich differential equation.  On a finite grid, these increments have variance $\frac{1}{\Delta x \Delta t}$.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}fibre\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope and Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1120,11 +1130,11 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}64\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}5, 5)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"64"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-5, 5)"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}mpi\PYGZhy{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}8\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"8"} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
@@ -1138,11 +1148,11 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
     \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}phi\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1152,26 +1162,26 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}SI\PYGZdq{}} \PYG{n+na}{iterations=}\PYG{l+s}{\PYGZdq{}3\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}2.5\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}200000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"SI"} \PYG{n+na}{iterations=}\PYG{l+s}{"3"} \PYG{n+na}{interval=}\PYG{l+s}{"2.5"} \PYG{n+na}{steps=}\PYG{l+s}{"200000"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}50\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{L} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+            \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}drivingNoise\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{ggamma}\PYG{o}{*}\PYG{n}{phi} \PYG{o}{+} \PYG{n}{beta}\PYG{o}{*}\PYG{n}{Eta}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{ggamma}\PYG{o}{*}\PYG{n}{phi} \PYG{o}{+} \PYG{n}{beta}\PYG{o}{*}\PYG{n}{Eta}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}pow\PYGZus{}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1184,27 +1194,29 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
 
 Note that the noise vector used in this example is complex-valued, and has the argument \code{dimensions="x"} to define it as a field of delta-correlated noises along the x-dimension.
 
+\index{Multi-path MPI}
+\index{Driver examples!mpi-multi-path}
 This simulation demonstrates the ease with which XMDS2 can be used in a parallel processing environment.  Instead of using the stochastic driver ``multi-path'', we simply replace it with ``mpi-multi-path''.  This instructs XMDS2 to write a parallel version of the program based on the widespread \href{http://www.open-mpi.org/}{MPI standard}.  This protocol allows multiple processors or clusters of computers to work simultaneously on the same problem.  Free open source libraries implementi [...]
 
 Executing this program is slightly different with the MPI option.  The details can change between MPI implementations, but as an example:
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{}xmds2 fibre.xmds
-xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2543)
-Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 "Happy Mollusc" (r2543)
+Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type \PYGZsq{}./fibre\PYGZsq{} to run.
+... done. Type './fibre' to run.
 \end{Verbatim}
 
 Note that different compile options (and potentially a different compiler) are used by XMDS2, but this is transparent to the user.  MPI simulations will have to be run using syntax that will depend on the MPI implementation.  Here we show the version based on the popular open source \href{http://www.open-mpi.org/}{Open-MPI} implementation.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun \PYGZhy{}np 4 ./fibre
+\PYGZdl{} mpirun -np 4 ./fibre
 Found enlightenment... (Importing wisdom)
-Planning for x \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} kx transform... done.
+Planning for x \PYGZlt{}---\PYGZgt{} kx transform... done.
 Beginning full step integration ...
 Rank[0]: Starting path 1
 Rank[1]: Starting path 2
@@ -1224,7 +1236,7 @@ Rank[0]: Starting path 5
 Rank[2]: Starting path 7
 Rank[1]: Starting path 6
 Generating output for fibre
-Maximum step error in moment group 1 was 4.893437e\PYGZhy{}04
+Maximum step error in moment group 1 was 4.893437e-04
 Time elapsed for simulation is: 20.99 seconds
 \end{Verbatim}
 
@@ -1250,9 +1262,10 @@ while an average of 1024 paths (change \code{paths="8"} to \code{paths="1024"} i
 \includegraphics{fibre1024.pdf}
 \caption{The momentum space density of the field as a function of time for an average of 1024 paths.}\end{figure}
 
+\index{Integer dimensions}
 
 \section{Integer Dimensions}
-\label{worked_examples:integer-dimensions}\label{worked_examples:integerdimensionexample}
+\label{worked_examples:integer-dimensions}\label{worked_examples:integerdimensionexample}\label{worked_examples:index-8}
 This example shows how to handle systems with integer-valued transverse dimensions.  We will integrate the following set of equations
 \begin{gather}
 \begin{split}\frac{dx_j}{dt} = x_j \left(x_{j-1}-x_{j+1}\right)\end{split}\notag\\\begin{split}\end{split}\notag
@@ -1260,7 +1273,7 @@ This example shows how to handle systems with integer-valued transverse dimensio
 where $x_j$ are complex-valued variables defined on a ring, such that $j\in \{0,j_{max}\}$ and the $x_{j_{max}+1}$ variable is identified with the variable $x_{0}$, and the variable $x_{-1}$ is identified with the variable $x_{j_{max}}$.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}integer\PYGZus{}dimensions\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1271,44 +1284,44 @@ where $x_j$ are complex-valued variables defined on a ring, such that $j\in \{0,
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}diagnostics} \PYG{n+nt}{/\PYGZgt{}} \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ This will make sure that all nonlocal accesses of dimensions are safe }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}diagnostics} \PYG{n+nt}{/\PYGZgt{}} \PYG{c}{\PYGZlt{}!--}\PYG{c}{ This will make sure that all nonlocal accesses of dimensions are safe }\PYG{c}{--\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}5\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,4)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"5"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,4)"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} x \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{x} \PYG{o}{=} \PYG{l+m+mf}{1.0e\PYGZhy{}3}\PYG{p}{;}
+      \PYG{n}{x} \PYG{o}{=} \PYG{l+m+mf}{1.0e-3}\PYG{p}{;}
       \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{l+m+mi}{0}\PYG{p}{)} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}60\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}25000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1.0e\PYGZhy{}9\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"60"} \PYG{n+na}{steps=}\PYG{l+s}{"25000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1.0e-9"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}1000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
+        \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{-}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
         \PYG{k}{if} \PYG{p}{(}\PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{\PYGZlt{}} \PYG{l+m+mi}{0}\PYG{p}{)}
           \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{+}\PYG{o}{=} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
         \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}  \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{+}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
-        \PYG{n}{dx\PYGZus{}dt}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)} \PYG{o}{=} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}minus\PYGZus{}one}\PYG{p}{)} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{dx\PYGZus{}dt}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)} \PYG{o}{=} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}minus\PYGZus{}one}\PYG{p}{)} \PYG{o}{-} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1326,14 +1339,14 @@ The simulation defines a vector with a single transverse dimension labelled ``j'
 Integer-valued dimensions can be called non-locally.  Real-valued dimensions are typically coupled non-locally only through local operations in the transformed space of the dimension, but can be called non-locally in certain other situations as described in {\hyperref[reference_elements:referencingnonlocal]{\emph{the reference}}}.  The syntax for calling integer dimensions non-locally can be seen in the initialisation CDATA block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-x = 1.0e\PYGZhy{}3;
+x = 1.0e-3;
 x(j =\PYGZgt{} 0) = 1.0;
 \end{Verbatim}
 
 where the syntax \code{x(j =\textgreater{} 0)} is used to reference the variable $x_0$ directly.  We see a more elaborate example in the integrate CDATA block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-dx\PYGZus{}dt(j =\PYGZgt{} j) = x(j =\PYGZgt{} j)*(x(j =\PYGZgt{} j\PYGZus{}minus\PYGZus{}one) \PYGZhy{} x(j =\PYGZgt{} j\PYGZus{}plus\PYGZus{}one));
+dx\PYGZus{}dt(j =\PYGZgt{} j) = x(j =\PYGZgt{} j)*(x(j =\PYGZgt{} j\PYGZus{}minus\PYGZus{}one) - x(j =\PYGZgt{} j\PYGZus{}plus\PYGZus{}one));
 \end{Verbatim}
 
 where the vector ``x'' is called using locally defined variables.  This syntax is chosen so that multiple dimensions can be addressed non-locally with minimal possibility for confusion.
@@ -1353,7 +1366,7 @@ This example integrates the two-dimensional partial differential equation
 with the added restriction that the derivative is forced to zero outside a certain radius.  This extra condition helps maintain the long-term stability of the integration. The script can be found in \code{examples/wigner\_arguments\_mpi.xmds} under your XMDS2 installation directory.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}wigner\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis and Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1368,45 +1381,45 @@ with the added restriction that the derivative is forced to zero outside a certa
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}omega\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}alpha\PYGZus{}0\PYGZdq{}}     \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}3.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}absorb\PYGZdq{}}     \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}8.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}width\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.3\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}Uint\PYGZus{}hbar\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"omega"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.0"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"alpha\PYGZus{}0"}     \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"3.0"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"absorb"}     \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"8.0"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"width"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.3"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"Uint\PYGZus{}hbar"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+cm}{/* derived constants */}
         \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16} \PYG{o}{=} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{/}\PYG{l+m+mf}{16.0}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}distributed\PYGZhy{}mpi\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"distributed-mpi"} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x y"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} W \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{W} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{o}{/}\PYG{n}{M\PYGZus{}PI} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{2.0}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y} \PYG{o}{+} \PYG{p}{(}\PYG{n}{x}\PYG{o}{\PYGZhy{}}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{o}{\PYGZhy{}}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{W} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{o}{/}\PYG{n}{M\PYGZus{}PI} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{2.0}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y} \PYG{o}{+} \PYG{p}{(}\PYG{n}{x}\PYG{o}{-}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{o}{-}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}dampConstants\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"dampConstants"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x y"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}damping\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{k}{if} \PYG{p}{(}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)} \PYG{o}{\PYGZgt{}} \PYG{n}{\PYGZus{}max\PYGZus{}x}\PYG{o}{\PYGZhy{}}\PYG{n}{width}\PYG{p}{)}
+      \PYG{k}{if} \PYG{p}{(}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)} \PYG{o}{\PYGZgt{}} \PYG{n}{\PYGZus{}max\PYGZus{}x}\PYG{o}{-}\PYG{n}{width}\PYG{p}{)}
         \PYG{n}{damping} \PYG{o}{=} \PYG{l+m+mf}{0.0}\PYG{p}{;}
       \PYG{k}{else}
         \PYG{n}{damping} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
@@ -1415,27 +1428,27 @@ with the added restriction that the derivative is forced to zero outside a certa
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}7.0e\PYGZhy{}4\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}100000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"} \PYG{n+na}{interval=}\PYG{l+s}{"7.0e-4"} \PYG{n+na}{steps=}\PYG{l+s}{"100000"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}50\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lx Ly Lxxx Lxxy Lxyy Lyyy\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
             \PYG{n}{Lx} \PYG{o}{=} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
             \PYG{n}{Ly} \PYG{o}{=} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lxxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
-            \PYG{n}{Lxxy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lxyy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lyyy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lxxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+            \PYG{n}{Lxxy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lxyy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lyyy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampConstants\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n+nf}{real} \PYG{n}{rotation} \PYG{o}{=} \PYG{n}{omega} \PYG{o}{+} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{*}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{1.0} \PYG{o}{+} \PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n+nf}{real} \PYG{n}{rotation} \PYG{o}{=} \PYG{n}{omega} \PYG{o}{+} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{*}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{1.0} \PYG{o}{+} \PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{p}{;}
 
-        \PYG{n}{dW\PYGZus{}dt} \PYG{o}{=} \PYG{n}{damping} \PYG{o}{*} \PYG{p}{(} \PYG{n}{rotation} \PYG{o}{*} \PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{Ly}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{y}\PYG{o}{*}\PYG{n}{Lx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)}
-                    \PYG{o}{\PYGZhy{}} \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16}\PYG{o}{*}\PYG{p}{(} \PYG{n}{x}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxxy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lyyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{o}{\PYGZhy{}} \PYG{n}{y}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lxxx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{p}{)}
+        \PYG{n}{dW\PYGZus{}dt} \PYG{o}{=} \PYG{n}{damping} \PYG{o}{*} \PYG{p}{(} \PYG{n}{rotation} \PYG{o}{*} \PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{Ly}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{-} \PYG{n}{y}\PYG{o}{*}\PYG{n}{Lx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)}
+                    \PYG{o}{-} \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16}\PYG{o}{*}\PYG{p}{(} \PYG{n}{x}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxxy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lyyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{o}{-} \PYG{n}{y}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lxxx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{p}{)}
                 \PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -1443,7 +1456,7 @@ with the added restriction that the derivative is forced to zero outside a certa
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}WR WI\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1454,69 +1467,72 @@ with the added restriction that the derivative is forced to zero outside a certa
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Distributed MPI}\index{MPI}
+\index{Driver examples!distributed-mpi}
 This example demonstrates two new features of XMDS2.  The first is the use of parallel processing for a deterministic problem.  The FFTW library only allows MPI processing of multidimensional vectors.  For multidimensional simulations, the generated program can be parallelised simply by adding the \code{name="distributed-mpi"} argument to the \code{\textless{}driver\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} xmds2 wigner\PYGZus{}argument\PYGZus{}mpi.xmds
-xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
-Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 "Happy Mollusc" (r2680)
+Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type \PYGZsq{}./wigner\PYGZsq{} to run.
+... done. Type './wigner' to run.
 \end{Verbatim}
 
 To use multiple processors, the final program is then called using the (implementation specific) MPI wrapper:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun \PYGZhy{}np 2 ./wigner
-Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
-Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
+\PYGZdl{} mpirun -np 2 ./wigner
+Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}---}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}---}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Current timestep: 5.908361e\PYGZhy{}06
-Sampled field (for moment group \PYGZsh{}1) at t = 1.400000e\PYGZhy{}05
-Current timestep: 4.543131e\PYGZhy{}06
+Current timestep: 5.908361e-06
+Sampled field (for moment group \PYGZsh{}1) at t = 1.400000e-05
+Current timestep: 4.543131e-06
 
 ...
 \end{Verbatim}
 
 The possible acceleration achievable when parallelising a given simulation depends on a great many things including available memory and cache.  As a general rule, it will improve as the simulation size gets larger, but the easiest way to find out is to test.  The optimum speed up is obviously proportional to the number of available processing cores.
 
+\index{Command line arguments}
 The second new feature in this simulation is the \code{\textless{}arguments\textgreater{}} element in the \code{\textless{}features\textgreater{}} block.  This is a way of specifying global variables with a given type that can then be input at run time.  The variables are specified in a self explanatory way
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}omega\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"omega"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.0"} \PYG{n+nt}{/\PYGZgt{}}
     ...
-  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}Uint\PYGZus{}hbar\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"Uint\PYGZus{}hbar"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"} \PYG{n+nt}{/\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \end{Verbatim}
 
 where the ``default\_value'' is used as the valuable of the variable if no arguments are given.  In the absence of the generating script, the program can document its options with the \code{-{-}help} argument:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} ./wigner \PYGZhy{}\PYGZhy{}help
-Usage: wigner \PYGZhy{}\PYGZhy{}omega \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0 \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}absorb \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}width \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar \PYGZlt{}real\PYGZgt{}
+\PYGZdl{} ./wigner --help
+Usage: wigner --omega \PYGZlt{}real\PYGZgt{} --alpha\PYGZus{}0 \PYGZlt{}real\PYGZgt{} --absorb \PYGZlt{}real\PYGZgt{} --width \PYGZlt{}real\PYGZgt{} --Uint\PYGZus{}hbar \PYGZlt{}real\PYGZgt{}
 
 Details:
 Option              Type            Default value
-\PYGZhy{}o,  \PYGZhy{}\PYGZhy{}omega        real            0.0
-\PYGZhy{}a,  \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0      real            3.0
-\PYGZhy{}b,  \PYGZhy{}\PYGZhy{}absorb       real            8.0
-\PYGZhy{}w,  \PYGZhy{}\PYGZhy{}width        real            0.3
-\PYGZhy{}U,  \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar    real            1.0
+-o,  --omega        real            0.0
+-a,  --alpha\PYGZus{}0      real            3.0
+-b,  --absorb       real            8.0
+-w,  --width        real            0.3
+-U,  --Uint\PYGZus{}hbar    real            1.0
 \end{Verbatim}
 
 We can change one or more of these variables' values in the simulation by passing it at run time.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun \PYGZhy{}np 2 ./wigner \PYGZhy{}\PYGZhy{}omega 0.1 \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0 2.5 \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar 0
+\PYGZdl{} mpirun -np 2 ./wigner --omega 0.1 --alpha\PYGZus{}0 2.5 --Uint\PYGZus{}hbar 0
 Found enlightenment... (Importing wisdom)
-Planning for (distributed x, y) \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} (distributed ky, kx) transform... done.
-Planning for (distributed x, y) \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYGZlt{}---\PYGZgt{} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYGZlt{}---\PYGZgt{} (distributed ky, kx) transform... done.
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Current timestep: 1.916945e\PYGZhy{}04
+Current timestep: 1.916945e-04
 
 ...
 \end{Verbatim}
@@ -1525,18 +1541,19 @@ The values that were used for the variables, whether default or passed in, are s
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}info}\PYG{n+nt}{\PYGZgt{}}
-Script compiled with XMDS2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
+Script compiled with XMDS2 version 2.1 "Happy Mollusc" (r2680)
 See http://www.xmds.org for more information.
 
 Variables that can be specified on the command line:
-  Command line argument omega = 1.000000e\PYGZhy{}01
+  Command line argument omega = 1.000000e-01
   Command line argument alpha\PYGZus{}0 = 2.500000e+00
   Command line argument absorb = 8.000000e+00
-  Command line argument width = 3.000000e\PYGZhy{}01
+  Command line argument width = 3.000000e-01
   Command line argument Uint\PYGZus{}hbar = 0.000000e+00
 \PYG{n+nt}{\PYGZlt{}/info\PYGZgt{}}
 \end{Verbatim}
 
+\index{\_SAMPLE\_COMPLEX}
 Finally, note the shorthand used in the output group
 
 \begin{Verbatim}[commandchars=\\\{\}]
@@ -1570,19 +1587,19 @@ but we will need to use new XMDS2 features to manage the normalisation of the fu
 The code for this simulation can be found in \code{examples/groundstate\_workedexamples.xmds}:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}groundstate\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
-    Calculate the ground state of the non\PYGZhy{}linear Schrodinger equation in a harmonic magnetic trap.
-    This is done by evolving it in imaginary time while re\PYGZhy{}normalising each timestep.
+    Calculate the ground state of the non-linear Schrodinger equation in a harmonic magnetic trap.
+    This is done by evolving it in imaginary time while re-normalising each timestep.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}exhaustive\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"exhaustive"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Uint} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{p}{;}
@@ -1594,11 +1611,11 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}256\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}15.0, 15.0)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"256"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-15.0, 15.0)"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}potential\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"potential"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"y"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} V1 \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1607,7 +1624,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"y"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1621,10 +1638,10 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1635,7 +1652,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
+          \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
@@ -1646,9 +1663,9 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}4000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}10\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1.0"} \PYG{n+na}{steps=}\PYG{l+s}{"4000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-10"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}25 4000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1658,28 +1675,28 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
         \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}potential\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}norm\PYGZus{}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1687,7 +1704,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}norm\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1700,15 +1717,16 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
 
 We have used the \code{plan="exhasutive"} option in the \code{\textless{}fftw\textgreater{}} element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the \textasciitilde{}/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.
 
+\index{Computed vectors}
 This simulation introduces the first example of a very powerful feature in XMDS2: the \code{\textless{}computed\_vector\textgreater{}} element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vector can never be used as an integration vector, as  [...]
 
 The difference between a computed vector and a stored vector is emphasised by the replacement of the \code{\textless{}initialisation\textgreater{}} element with an \code{\textless{}evaluation\textgreater{}} element.  Apart from the name, they have virtually identical purpose and syntax.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
       \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1724,7 +1742,7 @@ The \code{\textless{}filter\textgreater{}} element can be placed in the \code{\t
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
+    \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 \end{Verbatim}
@@ -1745,7 +1763,7 @@ Since this filter depends on a vector with the transverse dimension ``y'', this
 The next usage of a \code{\textless{}filter\textgreater{}} element in this program is inside the \code{\textless{}integrate\textgreater{}} element, where all filters are placed inside a \code{\textless{}filters\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1761,8 +1779,8 @@ Filters placed in an integration block are applied each integration step.  The `
 At the end of the sequence element we introduce the \code{\textless{}breakpoint\textgreater{}} element.  This serves two purposes.  The first is a simple matter of convenience.  Often when we manage our input and output from a simulation, we are interested solely in storing the exact state of our integration vectors.  A breakpoint element does exactly that, storing the components of any vectors contained within, taking all the normal options of the \code{\textless{}output\textgreater{}}  [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
 
@@ -1796,26 +1814,26 @@ where
 where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire $-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2$ term as a diagonal term in the hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a simplified version of the \code{examples/hermitegauss\_groundstat [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}hermitegauss\PYGZus{}groundstate\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
-    Solve for the groundstate of the Gross\PYGZhy{}Pitaevskii equation using the hermite\PYGZhy{}Gauss basis.
+    Solve for the groundstate of the Gross-Pitaevskii equation using the hermite-Gauss basis.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{omegaz} \PYG{o}{=} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{l+m+mi}{20}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{omegarho} \PYG{o}{=} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{l+m+mi}{200}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{hbar} \PYG{o}{=} \PYG{l+m+mf}{1.05457148e\PYGZhy{}34}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{M} \PYG{o}{=} \PYG{l+m+mf}{1.409539200000000e\PYGZhy{}25}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{hbar} \PYG{o}{=} \PYG{l+m+mf}{1.05457148e-34}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{M} \PYG{o}{=} \PYG{l+m+mf}{1.409539200000000e-25}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{g} \PYG{o}{=} \PYG{l+m+mf}{9.8}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{scatteringLength} \PYG{o}{=} \PYG{l+m+mf}{5.57e\PYGZhy{}9}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{transverseLength} \PYG{o}{=} \PYG{l+m+mf}{1e\PYGZhy{}5}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{scatteringLength} \PYG{o}{=} \PYG{l+m+mf}{5.57e-9}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{transverseLength} \PYG{o}{=} \PYG{l+m+mf}{1e-5}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Uint} \PYG{o}{=} \PYG{l+m+mf}{4.0}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{scatteringLength}\PYG{o}{/}\PYG{n}{M}\PYG{o}{/}\PYG{n}{transverseLength}\PYG{o}{/}\PYG{n}{transverseLength}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Nparticles} \PYG{o}{=} \PYG{l+m+mf}{5.0e5}\PYG{p}{;}
 
@@ -1828,23 +1846,23 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}100\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}sqrt(hbar/(M*omegarho))\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"100"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"sqrt(hbar/(M*omegarho))"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{p}{)} \PYG{o}{*} \PYG{n}{pow}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{p}{(}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{p}{)}\PYG{p}{,} \PYG{l+m+mf}{0.25}\PYG{p}{)} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{n}{hbar}\PYG{p}{)}\PYG{o}{*}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{p}{)} \PYG{o}{*} \PYG{n}{pow}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{p}{(}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{p}{)}\PYG{p}{,} \PYG{l+m+mf}{0.25}\PYG{p}{)} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{n}{hbar}\PYG{p}{)}\PYG{o}{*}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1853,7 +1871,7 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1.0e\PYGZhy{}2\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}4000\PYGZdq{}}  \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}10\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1.0e-2"} \PYG{n+na}{steps=}\PYG{l+s}{"4000"}  \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-10"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}100 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}filters}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
@@ -1865,15 +1883,15 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
         \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{L} \PYG{o}{=} \PYG{n}{EnergyOffset}\PYG{o}{/}\PYG{n}{hbar} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{nx} \PYG{o}{+} \PYG{l+m+mf}{0.5}\PYG{p}{)}\PYG{o}{*}\PYG{n}{omegarho}\PYG{p}{;}
+            \PYG{n}{L} \PYG{o}{=} \PYG{n}{EnergyOffset}\PYG{o}{/}\PYG{n}{hbar} \PYG{o}{-} \PYG{p}{(}\PYG{n}{nx} \PYG{o}{+} \PYG{l+m+mf}{0.5}\PYG{p}{)}\PYG{o}{*}\PYG{n}{omegarho}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -1885,20 +1903,20 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}hermitegauss\PYGZus{}groundstate\PYGZus{}break.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}ascii\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}nx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"hermitegauss\PYGZus{}groundstate\PYGZus{}break.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"ascii"}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"nx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{n}{dens} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1912,7 +1930,7 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
 The major difference in this simulation code, aside from the switch back from dimensionless units, is the new transverse dimension type in the \code{\textless{}geometry\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}100\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}sqrt(hbar/(M*omegarho))\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"100"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"sqrt(hbar/(M*omegarho))"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 We have explicitly defined the ``transform'' option, which by defaults expects the Fourier transform.  The \code{transform="hermite-gauss"} option requires the `mpmath' package installed, just as Fourier transforms require the FFTW package to be installed.  The ``lattice'' option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polynomial and increases.  The number of hermite-Gaussian modes fully determines the irregular spatia [...]
@@ -1920,7 +1938,7 @@ We have explicitly defined the ``transform'' option, which by defaults expects t
 The \code{length\_scale="sqrt(hbar/(M*omegarho))"} option requires a real number, but since this script defines it in terms of variables, XMDS2 is unable to verify that the resulting function is real-valued at the time of generating the code.  XMDS2 will therefore fail to compile this program without the feature:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 which disables many of these checks at the time of writing the C-code.
@@ -1935,7 +1953,7 @@ This example demonstrates a simple method for doing matrix calculations in XMDS2
 where the last term is more commonly written as a matrix multiplication.  Writing this term out explicitly is feasible for a small number of components, but when the number of components becomes large, or perhaps $V_{j k}$ should be precomputed for efficiency reasons, it is useful to be able to perform this sum over the integer dimensions automatically.  This example show how this can be done naturally using a computed vector.  The XMDS2 script is as follows:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}2DMSse\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
@@ -1946,7 +1964,7 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
      \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
@@ -1954,45 +1972,45 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}32\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}32\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,1)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"32"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"32"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"2"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,1)"} \PYG{n+na}{aliases=}\PYG{l+s}{"k"}\PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{j}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.1}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{j}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.1}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}spatialInteraction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"spatialInteraction"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} U \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{U}\PYG{o}{=}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{U}\PYG{o}{=}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}internalInteraction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"internalInteraction"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{dimensions=}\PYG{l+s}{"j k"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} V \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{V}\PYG{o}{=}\PYG{l+m+mi}{3}\PYG{o}{*}\PYG{p}{(}\PYG{n}{j}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{k}\PYG{p}{)}\PYG{o}{+}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{V}\PYG{o}{=}\PYG{l+m+mi}{3}\PYG{o}{*}\PYG{p}{(}\PYG{n}{j}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{k}\PYG{p}{)}\PYG{o}{+}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}coupling\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"coupling"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
       VPhi
     \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x y j k"}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{VPhi} \PYG{o}{=} \PYG{n}{V}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
@@ -2001,18 +2019,24 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}2.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"2.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}20 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ltt\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+          \PYG{c+cp}{\PYGZlt{}![CDATA[}
+            \PYG{n}{Lx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+          \PYG{c+cp}{]]\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ly\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{+}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+            \PYG{n}{Ly} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
+        \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lx}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Ly}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}spatialInteraction coupling\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -2020,14 +2044,14 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{n}{density} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x(0) y(0) j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x(0) y(0) j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -2038,21 +2062,22 @@ where the last term is more commonly written as a matrix multiplication.  Writin
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Aliases}
 The only truly new feature in this script is the ``aliases'' option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  $V_{j k}$ term is required to be a square array of dimension of this number of components.  If we wrote the k-index of $V_{j k}$ using a separate \code{\textless{}dimension\textgreater{}} element, then we would not be enforcing the requirement that the matrix be square.  Instead, we note that we w [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,1)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"2"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,1)"} \PYG{n+na}{aliases=}\PYG{l+s}{"k"}\PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 This means that we can use the index ``k'', which will have exactly the same properties as the ``j'' index.  This is used to define the ``V'' function in the ``internalInteraction'' vector.  Now, just as we use a computed vector to perform an integration over our fields, we use a computed vector to calculate the sum.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}coupling\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"coupling"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
     VPhi
   \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x y j k"}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
       \PYG{n}{VPhi} \PYG{o}{=} \PYG{n}{V}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
@@ -2063,6 +2088,20 @@ This means that we can use the index ``k'', which will have exactly the same pro
 
 Since the output dimensions of the computed vector do not include a ``k'' index, this index is integrated.  The volume element for this summation is the spacing between neighbouring values of ``j'', and since this spacing is one, this integration is just a sum over k, as required.
 
+This example also demonstrates an optimisation for the IP operators by separating the $x$ and $y$ parts of the operator (see {\hyperref[optimisation_hints:optimisingipoperators]{\emph{Optimising with the Interaction Picture (IP) operator}}}).  This gives an approximately 30\% speed improvement over the more straightforward implementation:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+  \PYG{c+cp}{\PYGZlt{}![CDATA[}
+    \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+  \PYG{c+cp}{]]\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}![CDATA[}
+  \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
+\PYG{c+cp}{]]\PYGZgt{}}
+\end{Verbatim}
+
 By this point, we have introduced most of the important features in XMDS2.  More details on other transform options and rarely used features can be found in the {\hyperref[advanced_topics:advancedtopics]{\emph{Advanced Topics}}} section.
 
 
@@ -2070,6 +2109,8 @@ By this point, we have introduced most of the important features in XMDS2.  More
 \label{reference_index:reference-section}\label{reference_index::doc}
 Contents:
 
+:: index:: Configure, Reconfigure, XMDS2 runtime options
+
 
 \section{Configuration, installation and runtime options}
 \label{reference_installation_and_configuration:referenceconfigurationinstallationruntime}\label{reference_installation_and_configuration::doc}\label{reference_installation_and_configuration:configuration-installation-and-runtime-options}\begin{description}
@@ -2096,15 +2137,15 @@ Contents:
 It also has commands to configure XMDS2 and recheck the installation.  If your program requires extra paths to compile, you can configure XMDS2 to include those paths by default.  Simply use the command
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}configure \PYGZhy{}\PYGZhy{}include\PYGZhy{}path /path/to/include \PYGZhy{}\PYGZhy{}lib\PYGZhy{}path /path/to/lib
+\PYG{n+nv}{\PYGZdl{} }xmds2 --configure --include-path /path/to/include --lib-path /path/to/lib
 \end{Verbatim}
 
 Alternatively, you can set the \code{CXXFLAGS} or \code{LINKFLAGS} environment variables before calling \code{xmds2 -{-}reconfigure}.  For example, to pass the compiler flag \code{-pedantic} and the link flag \code{-lm} using the bash shell, use:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{CXXFLAGS}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}\PYGZhy{}pedantic\PYGZdq{}}
-\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{LINKFLAGS}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}\PYGZhy{}lm\PYGZdq{}}
-\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}reconfigure\PYG{l+s+sb}{{}`}\PYG{l+s+sb}{{}`}
+\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{CXXFLAGS}\PYG{o}{=}\PYG{l+s+s2}{"-pedantic"}
+\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{LINKFLAGS}\PYG{o}{=}\PYG{l+s+s2}{"-lm"}
+\PYG{n+nv}{\PYGZdl{} }xmds2 --reconfigure\PYG{l+s+sb}{{}`}\PYG{l+s+sb}{{}`}
 \end{Verbatim}
 
 This method can also be used to change the default compilers for standard and parallel processing, using the CXX and MPICXX flags respectively.
@@ -2112,7 +2153,7 @@ This method can also be used to change the default compilers for standard and pa
 Running XMDS2 with the `--configure' option also searches for packages that have been installed since you last installed or configured XMDS2.  If you wish to run `xmds2 --configure' with the same extra options as last time, simply use the command:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}reconfigure
+\PYG{n+nv}{\PYGZdl{} }xmds2 --reconfigure
 \end{Verbatim}
 
 A detailed log of the checks is saved in the file `\textasciitilde{}/.xmds/waf\_configure/config.log'.  This can be used to identify issues with packages that XMDS2 is not recognised, but you think that you have successfully installed on your system.
@@ -2123,26 +2164,27 @@ A detailed log of the checks is saved in the file `\textasciitilde{}/.xmds/waf\_
 Standard XML placeholders can be used to simplify some scripts.  For example, the following (abbreviated) code ensures that the limits of a domain are symmetric.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
 \PYG{c+cp}{\PYGZlt{}!DOCTYPE simulation [}
-\PYG{c+cp}{\PYGZlt{}!ENTITY Npts    \PYGZdq{}64\PYGZdq{}\PYGZgt{}}
-\PYG{c+cp}{\PYGZlt{}!ENTITY L      \PYGZdq{}3.0e\PYGZhy{}5\PYGZdq{}\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}!ENTITY Npts    "64"\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}!ENTITY L      "3.0e-5"\PYGZgt{}}
 ]\PYGZgt{}
-  \PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
 
     . . .
 
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}\PYGZam{}Npts;\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}\PYGZam{}L;, \PYGZam{}L;)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"\PYGZam{}Npts;"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-\PYGZam{}L;, \PYGZam{}L;)"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
      \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
 
+\index{XMDS2 XML schema}\index{XML schema}
 
 \section{XMDS2 XML Schema}
-\label{reference_schema:xmds2-xml-schema}\label{reference_schema::doc}\label{reference_schema:referenceschema}
+\label{reference_schema:xmds2-xml-schema}\label{reference_schema:index-0}\label{reference_schema::doc}\label{reference_schema:referenceschema}
 There are many, many XML tags that can make up an XMDS2 script. Most of them are optional, or have default values if not specified. It is, however, useful to know which elements are possible, and their position and relationship to other elements in the script. Shown below is the full XML tree for XMDS2, which shows all possible elements and their position in the tree. An ellipsis (...) outside an element indicates the element above can be repeated indefinitely, and an ellipsis inside an  [...]
 
 The syntax \textless{}element /\textgreater{} can be used for lowest-level elements that have attributes but no content, and are shorthand for \textless{}element\textgreater{} \textless{}/element\textgreater{}. This shorthand notation can also be used for elements which can only contain the content ``yes'' or ``no''; in this case the presence of \textless{}element /\textgreater{} is equivalent to \textless{}element\textgreater{} yes \textless{}/element\textgreater{}, and the absence of s [...]
@@ -2150,8 +2192,8 @@ The syntax \textless{}element /\textgreater{} can be used for lowest-level eleme
 The possible attributes and attribute values for each element are not shown; see the individual entries in the Reference section for details.
 {\hyperref[reference_elements:simulationelement]{\emph{}}}{\hyperref[reference_elements:nameelement]{\emph{}}}{\hyperref[reference_elements:nameelement]{\emph{}}}{\hyperref[reference_elements:authorelement]{\emph{}}}{\hyperref[reference_elements:authorelement]{\emph{}}}{\hyperref[reference_elements:descriptionelement]{\emph{}}}{\hyperref[reference_elements:descriptionelement]{\emph{}}}{\hyperref[reference_elements:featureselement]{\emph{}}}{\hyperref[reference_elements:argumentselement]{ [...]
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
@@ -2293,27 +2335,30 @@ The possible attributes and attribute values for each element are not shown; see
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Reference}\index{XML Elements}\index{Script elements}
 
 \section{XMDS2 script elements}
-\label{reference_elements:xmds2-script-elements}\label{reference_elements::doc}\label{reference_elements:referenceelements}
+\label{reference_elements:index-0}\label{reference_elements:xmds2-script-elements}\label{reference_elements::doc}\label{reference_elements:referenceelements}
 This section outlines all the elements and options available in an XMDS2 script.  This is very much a \textbf{work in progress}, beginning with placeholders in most cases, as we have prioritised the tutorials for new users.  One of the most productive ways that non-developer veterans can contribute to the project is to help develop this documentation.
 
+\index{XML elements!simulation}
 
 \subsection{Simulation element}
-\label{reference_elements:simulation-element}\label{reference_elements:simulationelement}
+\label{reference_elements:simulation-element}\label{reference_elements:simulationelement}\label{reference_elements:index-1}
 The \code{\textless{}simulation\textgreater{}} element is the single top level element in an XMDS2 simulation, and contains all the other elements.  All XMDS scripts must contain exactly one simulation element, and it must have the \code{xmds-version="2"} attribute defined.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ Rest of simulation goes here }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ Rest of simulation goes here }\PYG{c}{--\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!name (of simulation)}
 
 \subsection{Name element}
-\label{reference_elements:name-element}\label{reference_elements:nameelement}
+\label{reference_elements:name-element}\label{reference_elements:nameelement}\label{reference_elements:index-2}
 The name of your simulation. This element is optional, but recommended. If it is set, it will be the name of the executable file generated from this script. It will also be the name of the output file (with an appropriate extension) if the \code{filename} attribute is not given a value in the \code{\textless{}output\textgreater{}} element.
 
 Example syntax:
@@ -2322,9 +2367,10 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} funky\PYGZus{}solver \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!author}
 
 \subsection{Author element}
-\label{reference_elements:author-element}\label{reference_elements:authorelement}
+\label{reference_elements:author-element}\label{reference_elements:authorelement}\label{reference_elements:index-3}
 The author(s) of this script. This element is optional, but can be useful if you need to find the person who has written an incomprehensible script and thinks comments are for the weak.
 
 Example syntax:
@@ -2333,9 +2379,10 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}} Ima Mollusc \PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!description}
 
 \subsection{Description element}
-\label{reference_elements:descriptionelement}\label{reference_elements:description-element}
+\label{reference_elements:index-4}\label{reference_elements:descriptionelement}\label{reference_elements:description-element}
 A description of what the simulation does. Optional, but recommended, in case you (or someone else) has to revist the script at some distant point in the future.
 
 Example syntax:
@@ -2349,9 +2396,10 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!features}
 
 \subsection{Features Elements}
-\label{reference_elements:features-elements}\label{reference_elements:featureselement}
+\label{reference_elements:features-elements}\label{reference_elements:featureselement}\label{reference_elements:index-5}
 Features elements are where simulation-wide options are specified. The \code{\textless{}features\textgreater{}} element wraps one or more elements describing features. There are many possible feature elements. Currently, a full list of the features supported is:
 \begin{itemize}
 \item {} 
@@ -2401,7 +2449,7 @@ Features elements are where simulation-wide options are specified. The \code{\te
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}precision}\PYG{n+nt}{\PYGZgt{}} double \PYG{n+nt}{\PYGZlt{}/precision\PYGZgt{}}
@@ -2410,18 +2458,19 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!arguments}
 
 \subsubsection{Arguments Element}
-\label{reference_elements:argumentselement}\label{reference_elements:arguments-element}
+\label{reference_elements:index-6}\label{reference_elements:argumentselement}\label{reference_elements:arguments-element}
 The \code{\textless{}arguments\textgreater{}} element is optional, and allows defining variables that can be passed to the simulation at run time. These variables are then globally accessible throughout the simulation script. Each of the variables must be defined in an \code{\textless{}argument\textgreater{}} element (see below). The variables can then be passed to the simulation executable as options on the command line. For example, one could define the variables \code{size}, \code{num [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} arguments\PYGZus{}test \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}size\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}number\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}7\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}pulse\PYGZus{}shape\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}string\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}gaussian\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"size"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"20.0"}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"number"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"7"}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"pulse\PYGZus{}shape"} \PYG{n+na}{type=}\PYG{l+s}{"string"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"gaussian"}\PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \end{Verbatim}
@@ -2429,7 +2478,7 @@ The \code{\textless{}arguments\textgreater{}} element is optional, and allows de
 When \code{XMDS2} is run on this script the executable \code{arguments\_test} is created. The values of \code{size}, \code{number}, and \code{pulse\_shape} can then be set to whatever is desired at runtime via
 
 \begin{Verbatim}[commandchars=\\\{\}]
-./arguments\PYGZus{}test \PYGZhy{}\PYGZhy{}size=1.3 \PYGZhy{}\PYGZhy{}number=2 \PYGZhy{}\PYGZhy{}pulse\PYGZus{}shape=lorentzian
+./arguments\PYGZus{}test --size=1.3 --number=2 --pulse\PYGZus{}shape=lorentzian
 \end{Verbatim}
 
 It is also possible to include an optional \code{CDATA} block inside the \code{\textless{}arguments\textgreater{}} block. This code will run after the arguments have been initialised with the values passed from the command line. This code block could be used, for example, to sanity check the parameters passed in, or for assigning values to global variables based on those parameters.  Any references to variables defined in an \code{\textless{}argument\textgreater{}} element should be made [...]
@@ -2442,37 +2491,43 @@ It is also possible to include an optional \code{CDATA} block inside the \code{\
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}bragg\PYGZus{}order\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"bragg\PYGZus{}order"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"2"}\PYG{n+nt}{/\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{atom\PYGZus{}kick} \PYG{o}{=} \PYG{n}{bragg\PYGZus{}order} \PYG{o}{*} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI} \PYG{o}{/} \PYG{l+m+mf}{780e\PYGZhy{}9}\PYG{p}{;}
+      \PYG{n}{atom\PYGZus{}kick} \PYG{o}{=} \PYG{n}{bragg\PYGZus{}order} \PYG{o}{*} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI} \PYG{o}{/} \PYG{l+m+mf}{780e-9}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!argument}
 
 \paragraph{Argument element}
-\label{reference_elements:argument-element}\label{reference_elements:argumentelement}
+\label{reference_elements:argument-element}\label{reference_elements:index-7}\label{reference_elements:argumentelement}
+\index{XML element attributes!name}\index{XML element attributes!type}\index{XML element attributes!default\_value}
 Each \code{\textless{}argument\textgreater{}} element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: \code{name}, \code{type}, and \code{default\_value}. \code{name} is the name by which you can refer to that variable later in the script, as well as the name of the command line parameter. \code{type} defines the data type of the variable, and \code{default\_value} is the value to which the variable is set [...]
 
+\index{XML elements!autovectorise}
 
 \subsubsection{Auto\_vectorise element}
-\label{reference_elements:autovectorise}\label{reference_elements:auto-vectorise-element}
+\label{reference_elements:autovectorise}\label{reference_elements:auto-vectorise-element}\label{reference_elements:index-9}
 The \code{\textless{}auto\_vectorise /\textgreater{}} feature attempts to activate automatic vectorisation for large loops, if it is available in the compiler.  This should make some simulations go faster.
 
+\index{XML elements!benchmark}
 
 \subsubsection{Benchmark}
-\label{reference_elements:benchmark}\label{reference_elements:id1}
+\label{reference_elements:benchmark}\label{reference_elements:index-10}\label{reference_elements:id1}
 The \code{\textless{}benchmark /\textgreater{}} feature includes a timing routine in the generated code, so that it is possible to see how long the simulations take to run.
 
+\index{XML elements!bing}
 
 \subsubsection{Bing}
-\label{reference_elements:bing}\label{reference_elements:id2}
+\label{reference_elements:bing}\label{reference_elements:id2}\label{reference_elements:index-11}
 The \code{\textless{}bing /\textgreater{}} feature causes the simulation to make an invigorating sound when the simulation finishes executing.
 
+\index{XML elements!cflags}
 
 \subsubsection{C Flags}
-\label{reference_elements:c-flags}\label{reference_elements:cflags}
+\label{reference_elements:c-flags}\label{reference_elements:index-12}\label{reference_elements:cflags}
 The \code{\textless{}cflags\textgreater{}} feature allows extra flags to be passed to the compiler.  This can be useful for optimisation, and also using specific external libraries.  The extra options to be passed are defined with a `CDATA' block.  The compile options can be made visible by running XMDS2 either with the ``-v'' (verbose) option, or the ``-g'' (debug) option.
 
 Example syntax:
@@ -2480,14 +2535,15 @@ Example syntax:
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}cflags}\PYG{n+nt}{\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{o}{\PYGZhy{}}\PYG{n}{O4}
+        \PYG{o}{-}\PYG{n}{O4}
     \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/cflags\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!chunked\_output}
 
 \subsubsection{Chunked Output}
-\label{reference_elements:chunked-output}\label{reference_elements:chunkedoutput}
+\label{reference_elements:chunked-output}\label{reference_elements:index-13}\label{reference_elements:chunkedoutput}
 By default, XMDS2 keeps the contents of all output moment groups in memory until the end of the simulation when they are written to the output file.  This can be a problem if your simulation creates a very large amount of output.  \code{\textless{}chunked\_output /\textgreater{}} causes the simulation to save the output data in chunks as the simulation progresses.  For some simulations this can significantly reduce the amount of memory required.  The amount of data in a chunk can be spec [...]
 
 Limitations (XMDS will give you an error if you violate any of these):
@@ -2506,52 +2562,58 @@ Neither is this feature compatible with the \code{error\_check} feature as that
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}chunked\PYGZus{}output} \PYG{n+na}{size=}\PYG{l+s}{\PYGZdq{}5MB\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}chunked\PYGZus{}output} \PYG{n+na}{size=}\PYG{l+s}{"5MB"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!diagnostics}
 
 \subsubsection{Diagnostics}
-\label{reference_elements:id3}\label{reference_elements:diagnostics}
+\label{reference_elements:index-14}\label{reference_elements:id3}\label{reference_elements:diagnostics}
 The \code{\textless{}diagnostics /\textgreater{}} feature causes a simulation to output more information as it executes.  This should be useful when a simulation is dying / giving bad results to help diagnose the cause.  Currently, it largely outputs step error information.
 
+\index{XML elements!error\_check}
 
 \subsubsection{Error Check}
-\label{reference_elements:errorcheck}\label{reference_elements:error-check}
+\label{reference_elements:errorcheck}\label{reference_elements:error-check}\label{reference_elements:index-15}
 It's often important to know whether you've got errors.  This feature runs each integration twice: once with the specified error tolerance or defined lattice spacing in the propagation dimension, and then again with half the lattice spacing, or an equivalently lower error tolerance.  Each component of the output then shows the difference between these two integrations as an estimate of the error.  This feature is particularly useful when integrating stochastic equations, as it treats the [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!halt\_non\_finite}
 
 \subsubsection{Halt\_Non\_Finite}
-\label{reference_elements:halt-non-finite}\label{reference_elements:haltnonfinite}
+\label{reference_elements:index-16}\label{reference_elements:halt-non-finite}\label{reference_elements:haltnonfinite}
 The \code{\textless{}halt\_non\_finite /\textgreater{}} feature is used to stop computations from continuing to run after the vectors stop having numerical values.  This can occur when a number is too large to represent numerically, or when an illegal operation occurs.  Processing variables with non-numerical values is usually much slower than normal processing, and the results are meaningless.  Of course, there is a small cost to introducing a run-time check, so this feature is optional.
 
+\index{XML elements!fftw}
 
 \subsubsection{fftw element}
-\label{reference_elements:fftw}\label{reference_elements:fftw-element}
+\label{reference_elements:index-17}\label{reference_elements:fftw}\label{reference_elements:fftw-element}
+\index{XML element attributes!plan}
 The \code{\textless{}fftw \textbackslash{}\textgreater{}} feature can be used to pass options to the \href{http://fftw.org}{Fast Fourier Transform library} used by XMDS.  This library tests algorithms on each architecture to determine the fastest method of solving each problem.  Typically this costs very little overhead, as the results of all previous tests are stored in the directory ``\textasciitilde{}/.xmds/wisdom''.  The level of detail for the search can be specified using the \code [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+na}{threads=}\PYG{l+s}{\PYGZdq{}3\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+na}{threads=}\PYG{l+s}{"3"} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!globals}
 
 \subsubsection{Globals}
-\label{reference_elements:id4}\label{reference_elements:globals}
+\label{reference_elements:id4}\label{reference_elements:globals}\label{reference_elements:index-19}
 The globals feature places the contents of a `CDATA' block near the top of the generated program.  Amongst other things, this is useful for defining variables that are then accessible throughout the entire program.
 
 Example syntax:
@@ -2568,18 +2630,20 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!openmp}
 
 \subsubsection{OpenMP}
-\label{reference_elements:openmp}\label{reference_elements:id5}
+\label{reference_elements:openmp}\label{reference_elements:index-20}\label{reference_elements:id5}
 The \code{\textless{}openmp /\textgreater{}} feature instructs compatible compilers to parallelise key loops using the \href{http://www.openmp.org}{OpenMP API} standard.  By default the simulation will use all available CPUs.  The number of threads used can be restricted by specifying the number of threads in the script with \code{\textless{}openmp threads="2"/\textgreater{}}, or by setting the \code{OMP\_NUM\_THREADS} environment variable at run-time like so:
 
 \begin{Verbatim}[commandchars=\\\{\}]
 OMP\PYGZus{}NUM\PYGZus{}THREADS=2 ./simulation\PYGZus{}name
 \end{Verbatim}
 
+\index{Single precision}\index{Double precision}\index{Precision}\index{XML elements!precision}
 
 \subsubsection{Precision}
-\label{reference_elements:id6}\label{reference_elements:precision}
+\label{reference_elements:id6}\label{reference_elements:index-21}\label{reference_elements:precision}
 This specifies the precision of the XMDS2 \code{real} and \code{complex} datatypes, as well as the precision used when computing transforms. Currently two values are accepted: \code{single} and \code{double}. If this feature isn't specified, XMDS2 defaults to using double precision for its variables and internal calculations.
 
 Single precision has approximately 7.2 decimal digits of accuracy, with a minimum value of 1.4×10$^{\text{-45}}$ and a maximum of 3.8×10$^{\text{34}}$. Double precision has approximately 16 decimal digits of accuracy, a minimum value of 4.9×10$^{\text{-324}}$ and a maximum value of 1.8×10$^{\text{308}}$.
@@ -2595,16 +2659,17 @@ WARNING: Single precision mode has not been tested anywhere near as thoroughly a
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}precision}\PYG{n+nt}{\PYGZgt{}} single \PYG{n+nt}{\PYGZlt{}/precision\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!validation}\index{XML element attributes!kind}
 
 \subsubsection{Validation}
-\label{reference_elements:id7}\label{reference_elements:validation}
+\label{reference_elements:index-22}\label{reference_elements:validation}\label{reference_elements:id7}
 XMDS2 makes a large number of checks in the code generation process to verify that the values for all parameters are safe choices.  Sometimes we wish to allow these parameters to be specified by variables.  This opens up many possibilities, but requires that any safety checks for parameters be performed during the execution of the program itself.  The \code{\textless{}validation\textgreater{}} feature activates that option, with allowable attributes being ``run-time'', ``compile-time'' a [...]
 
 As an example, one may wish to define the number of grid points and the range of the grid at run-time rather than explicitly define them in the XMDS2 script. To accomplish this, one could do the following:
@@ -2612,18 +2677,18 @@ As an example, one may wish to define the number of grid points and the range of
 \begin{Verbatim}[commandchars=\\\{\}]
  \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} validation\PYGZus{}test \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
-   \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+   \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}xmin\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}\PYGZhy{}1.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}xmax\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}numGridPoints\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"xmin"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"-1.0"}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"xmax"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"numGridPoints"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"128"}\PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
  \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}numGridPoints\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(xmin, xmax)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"numGridPoints"}  \PYG{n+na}{domain=}\PYG{l+s}{"(xmin, xmax)"} \PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
@@ -2631,77 +2696,94 @@ As an example, one may wish to define the number of grid points and the range of
 and then run the resulting executable with:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-./validation\PYGZus{}test \PYGZhy{}\PYGZhy{}xmin=\PYGZhy{}2.0 \PYGZhy{}\PYGZhy{}xmax=2.0 \PYGZhy{}\PYGZhy{}numGridPoints=64
+./validation\PYGZus{}test --xmin=-2.0 --xmax=2.0 --numGridPoints=64
 \end{Verbatim}
 
 This approach means that when XMDS2 is parsing the script it is unable to tell, for example, if the number of sampling points requested is less than or equal to the lattice size. Consequently it will create an executable with ``numGridPoints'' as an internal variable, and make the check at run-time, when it knows the value of ``numGridPoints'' rather than at compile time, when it doesn't.
 
+\index{XML elements!driver}\index{XML element attributes!name (driver)}\index{Drivers!distributed-mpi"}\index{Drivers!multi-path"}\index{Drivers!mpi-multi-path"}\index{Drivers!adaptive-mpi-multi-path"}
+..index:: MPI
+
 
 \subsection{Driver Element}
 \label{reference_elements:driver-element}\label{reference_elements:driverelement}
 The driver element controls the overall management of the simulation, including how many paths of a stochastic simulation are to be averaged, and whether or not it is to be run using distributed memory parallelisation.  If it is not included, then the simulation is performed once without using MPI parallelisation.  If it is included, it must have a \code{name} attribute.
 
-The \code{name} attribute can have values of ``none'' (which is equivalent to the default option of not specifying a driver), ``distributed-mpi'', ``multi-path'' or ``mpi-multi-path''.
+The \code{name} attribute can have values of ``none'' (which is equivalent to the default option of not specifying a driver), ``distributed-mpi'', ``multi-path'', ``mpi-multi-path'' or ``adaptive-mpi-multi-path''.
 
 Choosing the \code{name="distributed-mpi"} option allows a single integration over multiple processors.  The resulting executable can then be run according to your particular implementation of MPI.  The FFTW library only allows MPI processing of multidimensional vectors, as otherwise shared memory parallel processing requires too much inter-process communication to be efficient.  Maximally efficient parallelisation occurs where evolution is entirely local in one transverse dimension (see [...]
 
 The \code{name="multi-path"} option is used for stochastic simulations, which are typically run multiple times and averaged.  It requires a \code{paths} attribute with the number of iterations of the integration to be averaged.  The output will report the averages of the desired samples, and the standard error in those averages.
 The \code{name="mpi-multi-path"} option integrates separate paths on different processors, which is typically a highly efficient process.
+The \code{name="adaptive-mpi-multi-path"} option integrates separate paths on different processors with load balancing.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}distributed\PYGZhy{}mpi\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-        \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ or }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-        \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ or }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}mpi\PYGZhy{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}1000\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"distributed-mpi"} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"10"} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"1000"} \PYG{n+nt}{/\PYGZgt{}}
+                \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"adaptive-mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"1000"} \PYG{n+nt}{/\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!geometry}
 
 \subsection{Geometry Element}
-\label{reference_elements:geometry-element}\label{reference_elements:geometryelement}\phantomsection\label{reference_elements:propagationdimensionelement}
+\label{reference_elements:geometry-element}\label{reference_elements:index-24}\label{reference_elements:geometryelement}
+\index{XML elements!propagation\_dimension}\phantomsection\label{reference_elements:propagationdimensionelement}
 The \code{\textless{}geometry\textgreater{}} element describes the dimensions used in your simulation, and is required.  The only required element inside is the \code{\textless{}propagation\_dimension\textgreater{}} element, which defines the name of the dimension along which your simulation will integrate.  Nothing else about this dimension is specified, as requirements for the lattice along the integration dimension is specified by the \code{\textless{}integrate\textgreater{}} blocks t [...]
-\phantomsection\label{reference_elements:transversedimensionselement}\phantomsection\label{reference_elements:dimensionelement}
+
+\index{XML elements!transverse\_dimensions}\phantomsection\label{reference_elements:transversedimensionselement}
+\index{XML elements!dimension}\index{XML element attributes!name (dimension)}\index{XML element attributes!type (dimension)}\phantomsection\label{reference_elements:dimensionelement}
 If there are other dimensions in your problem, they are called ``transverse dimensions'', and are described in the \code{\textless{}transverse\_dimensions\textgreater{}} element.  Each dimension is then described in its own \code{\textless{}dimension\textgreater{}} element.  A transverse dimension must have a unique name defined by a \code{name} attribute.  If it is not specified, the type of dimension will default to ``real'', otherwise it can be specified with the \code{type} attribute [...]
 
+\index{XML element attributes!lattice}\index{XML element attributes!domain}
 Each transverse dimension must specify how many points or modes it requires, and the range over which it is defined.  This is done by the \code{lattice} and \code{domain} attributes respectively.  The \code{lattice} attribute is an integer, and is optional for integer dimensions, where it can be defined implicitly by the domain.  The \code{domain} attribute is specified as a pair of numbers (e.g. \code{domain="(-17,3)"}) defining the minimum and maximum of the grid.
 
+\index{Aliases}\index{XML element attributes!aliases}\index{Vectors!non-local access}
 Any dimension can have a number of aliases.  These act exactly like copies of that dimension, but must be included explicitly in the definition of subsequent vectors (i.e. they are not included in the default list of dimensions for a new vector).  The list of aliases for a dimension are included in an \code{aliases} attribute.  They are useful for non-local reference of variables.  See \code{groundstate\_gaussian.xmds} and \code{2DMultistateSE.xmds} as examples.
 
+\index{XML element attributes!volume\_prefactor}
 Integrals over a dimension can be multiplied by a common prefactor, which is specified using the \code{volume\_prefactor} attribute.  For example, this allows the automatic inclusion of a factor of two due to a reflection symmetry by adding the attribute \code{volume\_prefactor="2"}.  In very specific cases, you may wish to refer to volume elements explicitly.  This will lead to grid-dependent behaviour, which is sometimes required in certain stochastic field simulations, for example.  I [...]
 
 If you are using the \code{distributed-mpi} driver to parallelise the simulation, place the dimension you wish to split over multiple processors first.  The most efficient parallelisation would involve distributing a dimension with only local evolution, as the different memory blocks would not need to communicate.  Nonlocal evolution that is local in Fourier space is the second preference, as the Fourier transform can also be successfully parallelised with minimum communication.
-\phantomsection\label{reference_elements:transforms}
-Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or ``dft''), but others can be specified with the \code{transform} attribute.  The other options are ``none'', ``dst'', ``dct'', ``bessel'', ``spherical-bessel'' and ``hermite-gauss''.  Using the right transform can dramatically im [...]
 
+\index{XML element attributes!transform}\phantomsection\label{reference_elements:transforms}
+Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or ``dft''), but others can be specified with the \code{transform} attribute.  The other options are ``none'', ``dst'', ``dct'', ``bessel'', ``spherical-bessel'', ``bessel-neumann'' and ``hermite-gauss''.  Using the right transform [...]
+
+\index{Aliases}
 An advanced feature discussed further in {\hyperref[advanced_topics:dimensionaliases]{\emph{Dimension aliases}}} are dimension aliases, which are specified by the \code{aliases} attribute.  This feature is useful for example, when calculating correlation functions.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A real}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension from }\PYG{c}{\PYGZhy{}}\PYG{c}{1.5 to 1.5 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A real}\PYG{c}{-}\PYG{c}{valued dimension from }\PYG{c}{-}\PYG{c}{1.5 to 1.5 }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+nt}{/\PYGZgt{}}
 
-            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ An integer}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension with the 6 values }\PYG{c}{\PYGZhy{}}\PYG{c}{2, }\PYG{c}{\PYGZhy{}}\PYG{c}{1, 0, 1, 2, 3 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}}               \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}2,3)\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ An integer}\PYG{c}{-}\PYG{c}{valued dimension with the 6 values }\PYG{c}{-}\PYG{c}{2, }\PYG{c}{-}\PYG{c}{1, 0, 1, 2, 3 }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"}               \PYG{n+na}{domain=}\PYG{l+s}{"(-2,3)"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+nt}{/\PYGZgt{}}
 
-            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A real}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension using the bessel transform for a radial coordinate }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}64\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 5)\PYGZdq{}}  \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2.0*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A real}\PYG{c}{-}\PYG{c}{valued dimension using the bessel transform for a radial coordinate }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"64"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 5)"}  \PYG{n+na}{transform=}\PYG{l+s}{"bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2.0*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!dft}
 
 \subsubsection{The ``dft'' transform}
-\label{reference_elements:dft-transform}\label{reference_elements:the-dft-transform}
+\label{reference_elements:dft-transform}\label{reference_elements:the-dft-transform}\label{reference_elements:index-33}
+\index{Boundary conditions (DFT)}
 The ``dft'' transform is performed using the the normal discrete Fourier transform, which means that it enforces periodic boundary conditions on vectors defined on that dimension.  Another implication is that it can only be used with complex-valued vectors.  The discrete Fourier transform is almost exactly the same as a standard Fourier transform.  The standard Fourier transform is
 \begin{gather}
 \begin{split}\mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k x} dx\end{split}\notag
@@ -2724,20 +2806,22 @@ This identity can be used to write the differential operator $\mathcal{L} = \fra
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ transform=\PYGZdq{}dft\PYGZdq{} is the default, omitting it wouldn\PYGZsq{}t change anything }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dft\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ transform="dft" is the default, omitting it wouldn't change anything }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dft"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!dct}
 
 \subsubsection{The ``dct'' transform}
-\label{reference_elements:the-dct-transform}
+\label{reference_elements:dct-transform}\label{reference_elements:the-dct-transform}\label{reference_elements:index-35}
+\index{Boundary conditions (DCT)}
 The ``dct'' (discrete cosine transform) is a Fourier-based transform that implies different boundary conditions for associated vectors.  XMDS uses the type-II DCT, often called ``the DCT'', and its inverse, which is also called the type-III DCT.  This transform assumes that any vector using this dimension is both periodic, and also even around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can t [...]
 
 As the DCT transform can be defined on real data rather only complex data, it can also be superior to DFT-based spectral methods for simulations of real-valued fields where boundary conditions are artificial.
@@ -2755,23 +2839,25 @@ For problems where you are defining the simulation domain over only half of the
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-                \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ Or to cause volume integrals to be multiplied by 2 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 1)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+nt}{/\PYGZgt{}}
+                \PYG{c}{\PYGZlt{}!--}\PYG{c}{ Or to cause volume integrals to be multiplied by 2 }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 1)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2.0"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!dst}
 
 \subsubsection{The ``dst'' transform}
-\label{reference_elements:the-dst-transform}
+\label{reference_elements:dst-transform}\label{reference_elements:the-dst-transform}\label{reference_elements:index-37}
 The ``dst'' (discrete sine transform) is a counterpart to the DCT transform.  XMDS uses the type-II DST and its inverse, which is also called the type-III DST.  This transform assumes that fields are periodic in this dimension, but also that they are also odd around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can therefore be of any shape where all the even derivatives are zero at each boundary.
 
+\index{Boundary conditions (DST)}
 The DST transform can be defined on real-valued vectors.  As odd-valued functions are zero at the boundaries, this is a natural transform to use when implementing zero Dirichlet boundary conditions.
 
 XMDS labels the sine transform space variables the same as for {\hyperref[reference_elements:dft-transform]{\emph{Fourier transforms}}} and all the even derivatives can be calculated the same way.  Odd moments of the sine-space variables are in fact \emph{not} related to the corresponding odd derivatives by an inverse sine transform.
@@ -2785,19 +2871,20 @@ This identity can be used to write the differential operator $\mathcal{L} = \fra
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dst\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dst"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!bessel}
 
-\subsubsection{The ``bessel'' transform}
-\label{reference_elements:the-bessel-transform}\label{reference_elements:besseltransform}
+\subsubsection{The ``bessel'' and ``bessel-neumann'' transforms}
+\label{reference_elements:the-bessel-and-bessel-neumann-transforms}\label{reference_elements:index-39}\label{reference_elements:besseltransform}
 Just as the Fourier basis is useful for finding derivatives in Euclidean geometry, the basis of Bessel functions is useful for finding certain common operators in cylindrical co-ordinates.  In particular, we use the Bessel functions of the first kind, $J_m(u)$.  The relevant transform is the Hankel transform:
 \begin{gather}
 \begin{split}F_m(k) = \mathcal{H}_m \left[f\right](k) = \int_0^\infty r f(r) J_m(k r) dr\end{split}\notag\\\begin{split}\end{split}\notag
@@ -2812,6 +2899,9 @@ This transform pair has the useful property that the Laplacian in cylindrical co
 \end{gather}
 XMDS labels the variables in the transformed space with a prefix of `k', just as for {\hyperref[reference_elements:dft-transform]{\emph{Fourier transforms}}}.  The order $m$ of the transform is defined by the \code{order} attribute in the \code{\textless{}dimension\textgreater{}} element, which must be assigned as a non-negative integer.  If the order is not specified, it defaults to zero which corresponds to the solution being independent of the angular coordinate $\theta$.
 
+\index{Boundary conditions (Bessel)}\index{Boundary conditions}
+The difference between the ``bessel'' and ``bessel-neumann'' transforms is that the ``bessel'' transform enforces Dirichlet boundary conditions at the edge of the computational domain ($f(R) = 0$), while ``bessel-neumann'' enforces Neumann boundary conditions ($\left.\frac{\partial}{\partial r}f(r) \right|_{r=R} = 0$).
+
 It can often be useful to have a different sampling in normal space and Hankel space.  Reducing the number of modes in either space dramatically speeds simulations.  To set the number of lattice points in Hankel space to be different to the number of lattice points for the field in its original space, use the attribute \code{spectral\_lattice}.  The Bessel space lattice is chosen such that the boundary condition at the edge of the domain is zero.  This ensures that all of the Bessel mode [...]
 
 Hankel transforms allow easy calculation of the Laplacian of fields with cylindrical symmetry.  Applying the operator \code{L = -kr*kr} in Hankel space is therefore equivalent to applying the operator
@@ -2825,19 +2915,20 @@ In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For exa
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 3)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 3)"} \PYG{n+na}{transform=}\PYG{l+s}{"bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!spherical-bessel}
 
 \subsubsection{The ``spherical-bessel'' transform}
-\label{reference_elements:the-spherical-bessel-transform}
+\label{reference_elements:the-spherical-bessel-transform}\label{reference_elements:index-41}\label{reference_elements:spherical-bessel-transform}
 When working in spherical coordinates, it is often useful to use the spherical Bessel functions $j_l(x)=\sqrt{\frac{\pi}{2x}}J_{l+\frac{1}{2}}(x)$ as a basis.  These are eigenfunctions of the radial component of Laplace's equation in spherical coordinates:
 \begin{gather}
 \begin{split}\nabla^2 \left[j_l(k r)\; Y^m_l(\theta, \phi)\right] &= \left[\frac{\partial^2 }{\partial r^2} +\frac{2}{r}\frac{\partial }{\partial r} -\frac{l(l+1)}{r^2}\right] j_l(k r) \; Y^m_l(\theta, \phi) = -k^2 j_l(k r)\; Y^m_l(\theta, \phi)\end{split}\notag\\\begin{split}\end{split}\notag
@@ -2859,19 +2950,20 @@ In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For exa
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 3)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}spherical\PYGZhy{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}4*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 3)"} \PYG{n+na}{transform=}\PYG{l+s}{"spherical-bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"4*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Transforms!hermite-gauss}
 
 \subsubsection{The ``hermite-gauss'' transform}
-\label{reference_elements:the-hermite-gauss-transform}
+\label{reference_elements:hermite-gauss-transform}\label{reference_elements:the-hermite-gauss-transform}\label{reference_elements:index-42}
 The ``hermite-gauss'' transform allows transformations to and from the basis of Hermite functions $\psi_n(x)$:
 \begin{gather}
 \begin{split}\psi_n(x) = \left(2^n n! \sigma \sqrt{\pi}\right)^{-1/2} e^{-x^2/2\sigma^2} H_n(\sigma x)\end{split}\notag\\\begin{split}\end{split}\notag
@@ -2886,6 +2978,7 @@ which are eigenfunctions of the Schroedinger equation for a harmonic oscillator:
 \end{gather}
 with $\sigma = \sqrt{\frac{\hbar}{m \omega}}$.
 
+\index{XML element attributes!length\_scale}
 This transform is different to the others in that it requires a \code{length\_scale} attribute rather than a \code{domain} attribute, as the range of the lattice will depend on the number of basis functions used. The \code{length\_scale} attribute defines the scale of the domain as the standard deviation $\sigma$ of the lowest order Hermite function $\psi_0(x)$:
 \begin{gather}
 \begin{split}\psi_0(x) = (\sigma^2 \pi)^{-1/4} e^{-x^2/2 \sigma^2}\end{split}\notag\\\begin{split}\end{split}\notag
@@ -2903,29 +2996,35 @@ The Hermite-Gauss transform permits one to work in energy-space for the harmonic
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"1.0"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!vector}
 
 \subsection{Vector Element}
-\label{reference_elements:vector-element}\label{reference_elements:vectorelement}
+\label{reference_elements:index-44}\label{reference_elements:vector-element}\label{reference_elements:vectorelement}
 Vectors are arrays of data, defined over any subset of the transverse dimensions defined in your {\hyperref[reference_elements:geometryelement]{\emph{Geometry Element}}}.  These dimensions are listed in the attribute \code{dimensions}, which can be an empty string if you wish the vector to not be defined on any dimensions.  If you do not include a \code{dimensions} attribute then the vector defaults to being a function of all transverse dimensions, not including any aliases.  Vectors are [...]
 
+\index{XML element attributes!name (vector)}\index{XML element attributes!type (vector)}
 Each \code{\textless{}vector\textgreater{}} element has a unique name, defined by a \code{name} attribute.  It is either complex-valued (the default) or real-valued, which can be specified using the \code{type="real"} attribute.
-\phantomsection\label{reference_elements:componentselement}
+
+\index{XML elements!components}\phantomsection\label{reference_elements:componentselement}
 A vector contains a list of variables, each defined by name in the \code{\textless{}components\textgreater{}} element.  The name of each component is the name used to reference it later in the simulation.
 
+\index{XML element attributes!initial\_basis (vector)}
 Vectors are initialised at the beginning of a simulation, either from code or from an input file.  The basis choice for this initialisation defaults to the normal space as defined in the \code{\textless{}geometry\textgreater{}} element, but any transverse dimension can be initialised in their transform basis by specifying them in an \code{initial\_basis} attribute.  The \code{initial\_basis} attribute lists dimensions either by their name as defined by the \code{\textless{}geometry\textg [...]
-\phantomsection\label{reference_elements:initialisationelement}
+
+\index{XML elements!initialisation}\index{XML element attributes!name (vector)}\phantomsection\label{reference_elements:initialisationelement}
 When initialising the vector within the XMDS script, the appropriate code is placed in a `CDATA' block inside an \code{\textless{}initialisation\textgreater{}} element.  This code is in standard C-syntax, and should reference the components of the vector by name.  XMDS defines a few useful {\hyperref[reference_elements:xmdscsyntax]{\emph{shorthand macros}}} for this C-code.  If you wish to initialise all the components of the vector as zeros, then it suffices simply to add the attribute  [...]
-\phantomsection\label{reference_elements:referencingnonlocal}
+
+\index{Vectors!non-local access}\phantomsection\label{reference_elements:referencingnonlocal}
 While the default XMDS behaviour is to reference all variables locally, any vector can be referenced non-locally.  The notation for referencing the value of a vector `phi' with a dimension `j' at a value of `j=jk' is \code{phi(j =\textgreater{} jk)}.  Multiple non-local dimensions are addressed by adding the references in a list, e.g. \code{phi(j =\textgreater{} jk, x =\textgreater{} y)}.  See \code{2DMultistateSE.xmds} for an example.
 
 Dimensions can only be accessed non-locally if one of the following conditions is true:
@@ -2950,51 +3049,57 @@ The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a di
 
 \end{itemize}
 
+\index{Vectors!non-local access}\index{MPI!non-local vector access}
 Note that a dimension cannot be accessed non-locally in \code{distributed-mpi} simulations if the simulation is distributed across that dimension.
-\phantomsection\label{reference_elements:filenameelement}
+
+\index{XML elements!filename}\phantomsection\label{reference_elements:filenameelement}
+\index{XML element attributes!kind (initialisation element)}
 If you wish to initialise from a file, then you can choose to initialise from an hdf5 file using \code{kind="hdf5"} in the \code{\textless{}initialisation\textgreater{}} element, and then supply the name of the input file with the \code{filename} element.  This is a standard data format which can be generated from XMDS, or from another program.  An example for generating a file in another program for input into XMDS is detailed in the Advanced topic: {\hyperref[advanced_topics:importing] [...]
 
+\index{XML element attributes!geometry\_matching\_mode}
 When initialising from a file, the default is to require the lattice of the transverse dimensions to exactly match the lattice defined by XMDS.  There is an option to import data defined on a subset or superset of the lattice points.  Obviously, the dimensionality of the imported field still has to be correct.  This option is activated by defining the attribute \code{geometry\_matching\_mode="loose"}.  The default option is defined as \code{geometry\_matching\_mode="strict"}.  A requirem [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A zero}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}zero\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A zero}\PYG{c}{-}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"zero\PYGZus{}dim"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             u v
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}data.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!dependencies}
 
 \subsubsection{The dependencies element}
-\label{reference_elements:the-dependencies-element}\label{reference_elements:dependencies}
+\label{reference_elements:the-dependencies-element}\label{reference_elements:dependencies}\label{reference_elements:index-54}
 Often a vector, computed vector, filter, integration operator or output group will reference the values in one or more other vectors, computed vectors or noise vectors.  These dependencies are defined via a \code{\textless{}dependencies\textgreater{}} element, which lists the names of the vectors.  The components of those vectors will then be available for use in the `CDATA' block, and can be referenced by their name.
 
+\index{XML element attributes!basis (dependencies element)}
 For a vector, the basis of the dependent vectors, and therefore the basis of the dimensions available in the `CDATA' block, are defined by the \code{initial\_basis} of the vector.  For a \code{\textless{}computed\_vector\textgreater{}}, \code{\textless{}filter\textgreater{}} \code{\textless{}integration\_vector\textgreater{}}, or moment group vector, the basis of the dependencies can be specified by a \code{basis} attribute in the \code{\textless{}dependencies\textgreater{}} element.  Fo [...]
 
 Any transverse dimensions that appear in the \code{\textless{}dependencies\textgreater{}} element that do not appear in the \code{dimensions} attribute of the vector are integrated out.  For integer dimensions, this is simply an implicit sum over the dimension.  For real-valued dimensions, this is an implicit integral over the range of that dimension.
@@ -3002,48 +3107,50 @@ Any transverse dimensions that appear in the \code{\textless{}dependencies\textg
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}3, 2)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"10"} \PYG{n+na}{domain=}\PYG{l+s}{"(-3, 2)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
-\PYG{c}{                The initialisation of the vector \PYGZsq{}wavefunction\PYGZsq{} depends on information}
-\PYG{c}{                in the \PYGZsq{}two\PYGZus{}dim\PYGZsq{} vector.  The vector two\PYGZus{}dim is DCT}\PYG{c}{\PYGZhy{}}\PYG{c}{transformed into the}
+            \PYG{c}{\PYGZlt{}!--}
+\PYG{c}{                The initialisation of the vector 'wavefunction' depends on information}
+\PYG{c}{                in the 'two\PYGZus{}dim' vector.  The vector two\PYGZus{}dim is DCT}\PYG{c}{-}\PYG{c}{transformed into the}
 \PYG{c}{                (x, ky) basis, and the ky dimension is implicitly integrated over in the}
 \PYG{c}{                following initialisation code}
-\PYG{c}{              }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}two\PYGZus{}dim\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{c}{              }\PYG{c}{--\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x ky"}\PYG{n+nt}{\PYGZgt{}}two\PYGZus{}dim\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x} \PYG{o}{+} \PYG{n}{v}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{n}{u} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x} \PYG{o}{+} \PYG{n}{v}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{n}{u} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A two}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}two\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A two}\PYG{c}{-}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"two\PYGZus{}dim"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             u v
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}data.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!computed\_vector}
 
 \subsection{Computed Vector Element}
-\label{reference_elements:computedvectorelement}\label{reference_elements:computed-vector-element}\phantomsection\label{reference_elements:evaluationelement}
+\label{reference_elements:computedvectorelement}\label{reference_elements:index-56}\label{reference_elements:computed-vector-element}
+\index{XML elements!evaluation}\index{XML element attributes!name (computed vector)}\index{XML element attributes!dimensions (computed vector)}\index{XML element attributes!type (computed vector)}\phantomsection\label{reference_elements:evaluationelement}
 Computed vectors are arrays of data much like normal \code{\textless{}vector\textgreater{}} elements, but they are always calculated as they are referenced, so they cannot be initialised from file.  It is defined with a \code{\textless{}computed\_vector\textgreater{}} element, which has a \code{name} attribute, optional \code{dimensions} and \code{type} attributes, and a \code{\textless{}components\textgreater{}} element, just like a \code{\textless{}vector\textgreater{}} element.  Inste [...]
 
 As it is not being stored, a \code{\textless{}computed\_vector\textgreater{}} does not have or require an \code{initial\_basis} attribute, as it will be transformed into an appropriate basis for the element that references it.  The basis for its evaluation will be determined entirely by the \code{basis} attribute of the \code{\textless{}dependencies\textgreater{}} element.
@@ -3051,34 +3158,34 @@ As it is not being stored, a \code{\textless{}computed\_vector\textgreater{}} do
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A zero}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real computed vector with components Ncalc }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}zero\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A zero}\PYG{c}{-}\PYG{c}{dimensional real computed vector with components Ncalc }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"zero\PYGZus{}dim"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             Ncalc
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// Implicitly integrating over the dimension \PYGZsq{}x\PYGZsq{}}
+                \PYG{c+c1}{// Implicitly integrating over the dimension 'x'}
                 \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
@@ -3086,9 +3193,10 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!noise\_vector}\index{XML element attributes!name (noise vector)}\index{XML element attributes!dimensions (noise vector)}\index{XML element attributes!type (noise vector)}\index{XML element attributes!initial\_basis (noise vector)}\index{XML element attributes!method}\index{XML element attributes!seed}\index{XML element attributes!kind (noise vector)}
 
 \subsection{Noise Vector Element}
-\label{reference_elements:noise-vector-element}\label{reference_elements:noisevectorelement}
+\label{reference_elements:noise-vector-element}\label{reference_elements:index-58}\label{reference_elements:noisevectorelement}
 Noise vectors are used like computed vectors, but when they are evaluated they generate arrays of random numbers of various kinds.  They do not depend on other vectors, and are not initialised by code.  They are defined by a \code{\textless{}noise\_vector\textgreater{}} element, which has a \code{name} attribute, and optional \code{dimensions}, \code{initial\_basis} and \code{type} attributes, which work identically as for normal vectors.
 
 The choice of pseudo-random number generator (RNG) can be specified with the \code{method} attribute, which has options ``posix'' (the default), ``mkl'', ``solirte'' and ``dsfmt''.  It is only possible to use any particular method if that library is available.  Although ``posix'' is the default, it is also the slowest, and produces the lowest quality random numbers (although this is typically not a problem).  ``mkl'' refers to the Intel Math Kernel Library, and is only available if insta [...]
@@ -3100,21 +3208,21 @@ The different types of noise vectors are defined by a mandatory \code{kind} attr
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
-\PYG{c}{        A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional complex wiener noise vector.}
+    \PYG{c}{\PYGZlt{}!--}
+\PYG{c}{        A one}\PYG{c}{-}\PYG{c}{dimensional complex wiener noise vector.}
 \PYG{c}{        This noise is appropriate for using in the complex}
-\PYG{c}{        random}\PYG{c}{\PYGZhy{}}\PYG{c}{walk equation of motion:}
+\PYG{c}{        random}\PYG{c}{-}\PYG{c}{walk equation of motion:}
 \PYG{c}{            dz\PYGZus{}dt = eta;}
-\PYG{c}{    }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}noise\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c}{    }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"noise"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             eta
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -3122,24 +3230,26 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Noise!uniform}
 
 \subsubsection{Uniform noise}
-\label{reference_elements:uniformnoise}\label{reference_elements:uniform-noise}
+\label{reference_elements:uniformnoise}\label{reference_elements:index-59}\label{reference_elements:uniform-noise}
 Uniform noises defined over any transverse dimensions are simply uniformly distributed random numbers between zero and one.  This noise is an example of a ``static'' noise, i.e. one suitable for initial conditions of a field.  If it were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}uniform\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"uniform"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Noise!gaussian}
 
 \subsubsection{Gaussian noise}
-\label{reference_elements:gaussiannoise}\label{reference_elements:gaussian-noise}
+\label{reference_elements:gaussiannoise}\label{reference_elements:gaussian-noise}\label{reference_elements:index-60}
 Noise generated with the ``gaussian'' method is gaussian distributed with zero mean.  For a real-valued noise vector, the variance at each point is the inverse of the volume element of the transverse dimensions in the vector.  This volume element for a single transverse dimension is that used to perform integrals over that dimension.  For example, it would include a factor of $r^2$ for a dimension ``r'' defined with a \code{spherical-bessel} transform.  It can be non-uniform for dimensio [...]
 
 This lattice-dependent variance is typical in most applications of partial differential equations with stochastic initial conditions, as the physical quantity is the variance of the field over some finite volume, which does not change if the variance at each lattice site varies as described above.
@@ -3151,16 +3261,17 @@ Gaussian noise vectors are an example of a ``static'' noise, i.e. one suitable f
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}gauss\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}posix\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"gauss"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"posix"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}fuzz\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Noise!wiener}
 
 \subsubsection{Wiener noise}
-\label{reference_elements:wienernoise}\label{reference_elements:wiener-noise}
+\label{reference_elements:wienernoise}\label{reference_elements:index-61}\label{reference_elements:wiener-noise}
 Noise generated with the ``wiener'' method is gaussian distributed with zero mean and the same variance as the static ``gaussian'' noise defined above, multiplied by a factor of the lattice step in the propagation dimension.  This means that these noise vectors can be used to define Wiener noises for standard stochastic ordinary or partial differential equations.  Most integrators in XMDS effectively interpret these noises as Stratonovich increments.
 
 As a dynamic noise, a Wiener process is not well-defined except in an \code{integrate} element.
@@ -3168,16 +3279,17 @@ As a dynamic noise, a Wiener process is not well-defined except in an \code{inte
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}diffusion\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"diffusion"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dW\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Noise!poissonian}
 
 \subsubsection{Poissonian noise}
-\label{reference_elements:poissioniannoise}\label{reference_elements:poissonian-noise}
+\label{reference_elements:poissioniannoise}\label{reference_elements:poissonian-noise}\label{reference_elements:index-62}
 A noise vector using the ``poissonian'' method generates a random variable from a Poissonian distribution.  While the the Poisson distribution is integer-valued, the variable will be cast as a real number.  The rate of the Poissonian distribution is defined by the \code{mean} or \code{mean-density} attributes.  These are are synonyms, and must be defined as positive real numbers.  For Poissonian noises defined over real-valued transverse dimensions, the rate is given by the product of th [...]
 
 Poissonian noise vectors are an example of a ``static'' noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.
@@ -3185,16 +3297,17 @@ Poissonian noise vectors are an example of a ``static'' noise, i.e. one suitable
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialDistribution\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}poissonian\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{mean\PYGZhy{}density=}\PYG{l+s}{\PYGZdq{}2.7\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialDistribution"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"poissonian"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{mean-density=}\PYG{l+s}{"2.7"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Pdist\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{Noise!jump}
 
 \subsubsection{Jump noise}
-\label{reference_elements:jumpnoise}\label{reference_elements:jump-noise}
+\label{reference_elements:jumpnoise}\label{reference_elements:index-63}\label{reference_elements:jump-noise}
 A noise vector using the ``jump'' method is the dynamic version of the poissonian noise method, and must have the \code{mean-rate} attribute specified as a positive real number.  The variable at each point is chosen from a Poissonian distribution with a mean equal to the product of three variables: the \code{mean-rate} attribute; the volume of the element as defined by its transverse dimensions (including their \code{volume\_prefactor} attributes); and the step size in the propagation di [...]
 
 It is common to wish to vary the mean rate of a jump process, which means that the \code{mean-rate} attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the {\hyperref[reference_elements:validation]{\emph{\textless{}validation\textgreater{}}}} feature with either the \code{kind="none"} or \code{kind="run-time"} attributes.
@@ -3204,23 +3317,24 @@ As a dynamic noise, a jump process is not well-defined except in an \code{integr
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialDistribution\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}jump\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{mean\PYGZhy{}rate=}\PYG{l+s}{\PYGZdq{}2.7\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialDistribution"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"jump"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{mean-rate=}\PYG{l+s}{"2.7"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dN\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!sequence}\index{XML element attributes!cycles}
 
 \subsection{Sequence Element}
-\label{reference_elements:sequence-element}\label{reference_elements:sequenceelement}
+\label{reference_elements:sequence-element}\label{reference_elements:sequenceelement}\label{reference_elements:index-64}
 All processing of vectors happens in sequence elements.  Each simulation must have exactly one main sequence element, but it can then contain any number of nested sequence elements.  A sequence element can contain any number of \code{\textless{}sequence\textgreater{}}, {\hyperref[reference_elements:filterelement]{\emph{\textless{}filter\textgreater{}}}}, {\hyperref[reference_elements:integrateelement]{\emph{\textless{}integrate\textgreater{}}}} and/or {\hyperref[reference_elements:breakp [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sequence} \PYG{n+na}{cycles=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sequence} \PYG{n+na}{cycles=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}  ... \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}} ... \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integrate}\PYG{n+nt}{\PYGZgt{}} ...\PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -3228,11 +3342,13 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!filter}
 
 \subsection{Filter element}
-\label{reference_elements:filterelement}\label{reference_elements:filter-element}
+\label{reference_elements:index-65}\label{reference_elements:filterelement}\label{reference_elements:filter-element}
 A \code{\textless{}filter\textgreater{}} element can be placed inside a \code{\textless{}sequence\textgreater{}} element or an {\hyperref[reference_elements:integrateelement]{\emph{\textless{}integrate\textgreater{}}}} element.  It contains a `CDATA' block and an optional {\hyperref[reference_elements:dependencies]{\emph{\textless{}dependencies\textgreater{}}}} element, which may give access to variables in other \code{\textless{}vector\textgreater{}}, \code{\textless{}computed\_vector\t [...]
 
+\index{XML element attributes!name (filter)}
 Sometimes it is desirable to apply a filter conditionally.  The most efficient way of doing this is to call the function from the piece of code that contains the conditional statement (likely another \code{\textless{}filter\textgreater{}} element) rather than embed the conditional function in the filter itself, as the latter method can involve the conditional statement being evaluated multiple times over the transverse dimensions.  For this reason, it is possible to give a filter a \code [...]
 
 One of the common uses of a filter element is to apply discontinuous changes to the vectors and variables of the simulation.
@@ -3243,12 +3359,12 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from the first filter segment!  This filter rather wastefully calls the second one.}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from the first filter segment!  This filter rather wastefully calls the second one.}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
         \PYG{n}{fname}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}filter} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}fname\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}filter} \PYG{n+na}{name=}\PYG{l+s}{"fname"}\PYG{n+nt}{\PYGZgt{}}
        \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}normalisation wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
        \PYG{c+cp}{\PYGZlt{}![CDATA[}
          \PYG{n}{phi} \PYG{o}{*}\PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{o}{/}\PYG{n}{Ncalc}\PYG{p}{)}\PYG{p}{;}
@@ -3257,13 +3373,16 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!integrate}
 
 \subsection{Integrate element}
-\label{reference_elements:integrate-element}\label{reference_elements:integrateelement}
+\label{reference_elements:index-67}\label{reference_elements:integrate-element}\label{reference_elements:integrateelement}
 The \code{\textless{}integrate\textgreater{}} element is at the heart of most XMDS simulations.  It is used to integrate a set of (potentially stochastic) first-order differential equations for one or more of the vectors defined using the \code{\textless{}vector\textgreater{}} element along the propagation dimension.  At the beginning of the simulation, the value of the propagation dimension is set to zero, and the vectors are initialised as defined in the {\hyperref[reference_elements:v [...]
 
+\index{XML element attributes!interval}\index{XML element attributes!algorithm}\index{XML element attributes!steps}\index{XML element attributes!tolerance}\index{Integration algorithms!all}
 The length of the integration is defined by the \code{interval} attribute, which must be a positive real number.  An \code{\textless{}integrate\textgreater{}} element must have an \code{algorithm} attribute defined, which defines the integration method.  Current methods include {\hyperref[reference_elements:si]{\emph{SI}}}, {\hyperref[reference_elements:si]{\emph{SIC}}}, {\hyperref[reference_elements:rk4]{\emph{RK4}}}, {\hyperref[reference_elements:rk4]{\emph{RK9}}}, {\hyperref[reference [...]
-\phantomsection\label{reference_elements:sampleselement}
+
+\index{XML elements!samples}\phantomsection\label{reference_elements:sampleselement}
 The optional \code{\textless{}samples\textgreater{}} element is used to track the evolution of one or more vectors or variables during an integration.  This element must contain a non-negative integer for each {\hyperref[reference_elements:samplinggroupelement]{\emph{\textless{}sampling\_group\textgreater{}}}} element defined in the simulation's {\hyperref[reference_elements:outputelement]{\emph{\textless{}output\textgreater{}}}} element.  The list of integers then defines the number of  [...]
 
 The vectors to be integrated and the form of the differential equations are defined in the {\hyperref[reference_elements:operatorselement]{\emph{\textless{}operators\textgreater{}}}} element (or elements).  Filters to be applied each step can be defined with optional {\hyperref[reference_elements:filterselement]{\emph{\textless{}filters\textgreater{}}}} elements.
@@ -3273,7 +3392,7 @@ Computed vectors can be defined with the \code{\textless{}computed\_vector\textg
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}4\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}10000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}8\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"1e-4"} \PYG{n+na}{steps=}\PYG{l+s}{"10000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-8"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}20\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}filters}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
@@ -3284,79 +3403,93 @@ Example syntax:
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+        \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}potential\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+      \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
 \end{Verbatim}
 
+\index{Operators}\index{XML elements!operators}
 
 \subsubsection{Operators and operator elements}
-\label{reference_elements:operatorselement}\label{reference_elements:operators-and-operator-elements}
+\label{reference_elements:operatorselement}\label{reference_elements:index-70}\label{reference_elements:operators-and-operator-elements}
 An {\hyperref[reference_elements:integrateelement]{\emph{\textless{}integrate\textgreater{}}}} element must contain one or more \code{\textless{}operators\textgreater{}} elements, which define both which vectors are to be integrated, and their derivative in the propagation dimension.  When all vectors to be integrated have the same dimensionality, they can all be defined within a single \code{\textless{}operators\textgreater{}} element, and when vectors with different dimension are to be [...]
-\phantomsection\label{reference_elements:integrationvectorselement}
+
+\index{XML elements!integration\_vectors}\phantomsection\label{reference_elements:integrationvectorselement}
 Within each \code{\textless{}operators\textgreater{}} element, the vectors that are to be integrated are listed by name in the \code{\textless{}integration\_vectors\textgreater{}} element, and the differential equations are written in a `CDATA' block.   The derivative of each component of the integration vectors must be defined along the propagation dimension.  For example, if the integration vectors have components `phi' and `beta', and the propagation dimension is labelled `tau', then  [...]
 
 When noise vectors are referenced, equations with Wiener noises should be written as though the equations are in differential form, as described in the worked examples {\hyperref[worked_examples:kubo]{\emph{Kubo Oscillator}}} and {\hyperref[worked_examples:fibre]{\emph{Fibre Noise}}}.  Jump-based Poisson noises will also be written in an equivalent form, as modelled by the example \code{photodetector.xmds}.
 
+\index{Vectors!non-local access}
 By default, the name of each component references the local value of the vector, but {\hyperref[reference_elements:referencingnonlocal]{\emph{nonlocal variables}}} can be accessed using the standard syntax.  However, typically the most common (and most efficient) method of referencing nonlocal variables is to reference variables that are local in the {\hyperref[reference_elements:transforms]{\emph{transformed space}}} for a given transverse dimension.  This is done using \code{\textless{ [...]
-\phantomsection\label{reference_elements:operatorelement}
+
+\index{XML elements!operator}\phantomsection\label{reference_elements:operatorelement}
+\index{XML element attributes!kind (operator)}
 There are three kinds of \code{\textless{}operator\textgreater{}} elements.  The first is denoted with a \code{kind="functions"} attribute, and contains a `CDATA' block that will be executed in the order that it is defined.  This is useful when you wish to calculate functions that do not depend on the transverse dimensions.  Defining these along with the main equations of motion causes them to be recalculated separately for each point.  The second kind of \code{\textless{}operator\textgr [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}functions\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"functions"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
   \PYG{n}{f} \PYG{o}{=} \PYG{n}{cos}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \end{Verbatim}
 \phantomsection\label{reference_elements:operatornameselement}
-The second kind of operator element defines a list of operators in an \code{\textless{}operator\_names\textgreater{}} element.  The basis of these operators defaults to the transform space unless a different basis is specified using the \code{basis} attribute.  These operators must then be defined in a `CDATA' block, using any {\hyperref[reference_elements:dependencies]{\emph{dependencies}}} as normal.  If the operators constant across the integration, then the attribute \code{constant=" [...]
+The second kind of operator element defines a list of operators in an \code{\textless{}operator\_names\textgreater{}} element.  The basis of these operators defaults to the transform space unless a different basis is specified using the \code{basis} attribute.  These operators must then be defined in a `CDATA' block, using any {\hyperref[reference_elements:dependencies]{\emph{dependencies}}} as normal.  The operators defined in these elements can then be used in the `CDATA' block that de [...]
 
+\index{Operators!IP}\index{Operators!EX}
+\index{IP operators}\index{EX operators}
 Operators of this second kind have the \code{kind="IP"} or \code{kind="EX"} attribute, standing for `interaction picture' and `explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by allowing larger timesteps, but have two important restrictions.  \textbf{Use of IP operators without understanding these restrictions can lea [...]
 
+\index{XML element attributes!constant}
+If the IP or EX operator is constant across the integration, then the attribute \code{constant="yes"} may be set to ensure that it is precalculated at the start of integration, otherwise the \code{constant="no"} attribute ensures that the operator is recalculated at each step.  The \code{constant} attribute is optional and a sensible default is chosen if the attribute is omitted.  Note that for EX operators the default is \code{constant="no"} because the EX operator is typically cheap to [...]
+
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"} \PYG{n+na}{constant=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+    \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \end{Verbatim}
 
+\index{Cross-propagation}
 The third kind of operator element is used to define an integration along a transverse dimension.  This kind of evolution is called ``cross-propagation'', and is described briefly in the examples `tla.xmds', `tla\_sic.xmds' and `sine\_cross.xmds'.  This class of equations have a subset of vectors that have an initial condition on one side of a transverse dimension, and a differential equation defined in that dimension, and as such, this kind of operator element has much of the structure  [...]
 
+\index{XML element attributes!cross-propagation}
 An operator element with the \code{kind="cross\_propagation"} attribute must specify the transverse dimension along which the integration would proceed with the \code{propagation\_dimension} attribute.  It must also specify its own {\hyperref[reference_elements:integrationvectorselement]{\emph{\textless{}integration\_vectors\textgreater{}}}} element, its own \code{\textless{}operators\textgreater{}} elements (of the second kind), and may define an optional {\hyperref[reference_elements:d [...]
-\phantomsection\label{reference_elements:boundaryconditionelement}
+
+\index{XML elements!boundary\_conditions}\index{XML element attributes!kind (boundary\_condition element)}
+\index{Boundary conditions}\phantomsection\label{reference_elements:boundaryconditionelement}
 The boundary conditions are specified by a \code{\textless{}boundary\_conditions\textgreater{}} element, which requires the \code{kind="left"} or \code{kind="right"} attribute to specify on which side of the grid that the boundary conditions are specified.  The boundary conditions for the \code{\textless{}integration\_vectors\textgreater{}} are then specified in a `CDATA' block, which may refer to vectors in an optional {\hyperref[reference_elements:dependencies]{\emph{\textless{}depende [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}cross\PYGZus{}propagation\PYGZdq{}} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}RK4\PYGZdq{}} \PYG{n+na}{propagation\PYGZus{}dimension=}\PYG{l+s}{\PYGZdq{}t\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"cross\PYGZus{}propagation"} \PYG{n+na}{algorithm=}\PYG{l+s}{"RK4"} \PYG{n+na}{propagation\PYGZus{}dimension=}\PYG{l+s}{"t"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}cross\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}constants\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}boundary\PYGZus{}condition} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}left\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}boundary\PYGZus{}condition} \PYG{n+na}{kind=}\PYG{l+s}{"left"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{n}{v} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
       \PYG{n}{w} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/boundary\PYGZus{}condition\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{constant=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{n}{L} \PYG{o}{=} \PYG{k+kc}{i}\PYG{p}{;}
@@ -3379,9 +3512,10 @@ For the purposes of the descriptions below, we will assume that we are consideri
 \begin{gather}
 \begin{split}\frac{d x_j}{dt} = f_j(\mathbf{x}(t),t)\end{split}\notag
 \end{gather}
+\index{Integration algorithms!semi-implicit (SI)}
 
 \paragraph{SI and SIC algorithms}
-\label{reference_elements:si}\label{reference_elements:si-and-sic-algorithms}
+\label{reference_elements:si}\label{reference_elements:index-82}\label{reference_elements:si-and-sic-algorithms}
 The SI algorithm is a semi-implicit fixed-step algorithm that finds the increment of the vector by solving
 \begin{gather}
 \begin{split}x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t+\frac{\Delta t}{2}),t+\frac{\Delta t}{2}\right) \;\Delta t\end{split}\notag
@@ -3396,16 +3530,18 @@ When SI integration is used in conjunction with SI cross-propagation, a slight v
 
 The SI algorithm is correct to second order in the step-size for deterministic equations, and first order in the step-size for Stratonovich stochastic equations with Wiener noises.  This makes it the highest order stochastic algorithm in XMDS, although there are many sets of equations that integrate more efficiently with lower order algorithms.  When called with the \code{iterations="1"} option (the Euler algorithm), it is correct to first order in the step-size for deterministic equatio [...]
 
+\index{Integration algorithms!Runge-Kutta (RK)}
 
 \paragraph{Runge-Kutta algorithms}
-\label{reference_elements:rk4}\label{reference_elements:runge-kutta-algorithms}
+\label{reference_elements:rk4}\label{reference_elements:runge-kutta-algorithms}\label{reference_elements:index-83}
 Runge-Kutta algorithms are the workhorse of numerical integration, and XMDS employs two fixed step versions: \code{algorithm="RK4"}, which is correct to fourth-order in the step size, and \code{algorithm="RK9"}, which is correct to ninth order in the step size.  It must be strongly noted that a higher order of convergence does not automatically mean a superior algorithm.  RK9 requires several times the memory of the RK4 algorithm, and each step requires significantly more computation.
 
 All Runge-Kutta algorithms are convergent for Stratonovich stochastic equations at the order of the square root of the step-size.  This `half-order' convergence may seem very weak, but for some classes of stochastic equation this improves up to one half of the deterministic order of convergence.  Also, the convergence of some stochastic equations is limited by the `deterministic part', which can be improved dramatically by using a higher order Runge-Kutta method.
 
+\index{Integration algorithms!adaptive Runge-Kutta (ARK)}
 
 \paragraph{Adaptive Runge-Kutta algorithms}
-\label{reference_elements:adaptive-runge-kutta-algorithms}\label{reference_elements:ark45}
+\label{reference_elements:adaptive-runge-kutta-algorithms}\label{reference_elements:ark45}\label{reference_elements:index-84}
 Fixed step integrators can encounter two issues.  First, as the equations or parameters of a simulation are changed, the minimum number of steps required to integrate it may change.  This means that the convergence must be re-tested multiple times for each set of parameters, as overestimating the number of steps required to perform an integration to a specified error tolerance can be very inefficient. Second, even if the minimum acceptable number of steps required is known for a given si [...]
 algorithms get around this problem by testing the convergence during the integration, and adjusting the step-size until it reaches some target tolerance.
 
@@ -3415,18 +3551,33 @@ All adaptive stepsize algorithms require a \code{tolerance} attribute, which mus
 
 As all Runge-Kutta solutions have equal order of convergence for stochastic equations, \emph{if the step-size is limited by the stochastic term then the step-size estimation is entirely unreliable}.  Adaptive Runge-Kutta algorithms are therefore not appropriate for stochastic equations.
 
+\index{Integration algorithms!Richardson extrapolation}
+
+\paragraph{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}
+\label{reference_elements:realgorithm}\label{reference_elements:index-85}\label{reference_elements:richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method}
+The Richardson Extrapolation technique begins with a large initial interval and uses another stepper algorithm to compute the solution for this interval. It does this by subdividing the interval into increasing subintervals (i.e. with smaller and smaller stepsizes) and uses rational extrapolation to produce a higher order result than would be obtained using the other stepper on its own. The number of extrapolations performed is controllable via the \code{extrapolations} attribute which i [...]
+
+Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as it's error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool. The com [...]
+
+A number of combinations of fixed-step, fixed-order Richardson Extrapolation are available in XMDS2. The most notable is the Bulirsch-Stoer method which can be selected using \code{algorithm="BS"} or alternatively \code{algorithm="REMM"}. Other combinations include `RERK4', `RERK9' and `RESI' (for stochastic equations). Please note that these additional combinations have not been tested as strictly as the the `REMM' combination and so care should be taken to ensure the results are sane.  [...]
+
+Richardson Extrapolation in general uses more memory than other integrators as multiple result vectors must be stored at the same time, which is something users should be aware of if the \code{extrapolations} attribute is set too high (generally \textless{} 10 should be sufficient).
+
+See the section on the {\hyperref[bulirschStoer:mmdetail]{\emph{Bulirsch-Stoer Algorithm}}} for more details.
+
+\index{XML elements!filters}\index{XML element attributes!where}
 
 \subsubsection{Filters element}
-\label{reference_elements:filterselement}\label{reference_elements:filters-element}
+\label{reference_elements:filterselement}\label{reference_elements:index-86}\label{reference_elements:filters-element}
 {\hyperref[reference_elements:filterelement]{\emph{Filter elements}}} are used inside {\hyperref[reference_elements:sequenceelement]{\emph{sequence elements}}} to execute arbitrary code, or make discontinuous changes in the vectors.  Sometimes it is desirable to perform a filter element at the beginning or end of each step in an integration.  This can be done by placing \code{\textless{}filter\textgreater{}} elements in a \code{\textless{}filters\textgreater{}} element within the \code{\ [...]
 is then executed in the order found in the \code{\textless{}filters\textgreater{}} element.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}100000.0\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}10000000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}8\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"100000.0"} \PYG{n+na}{steps=}\PYG{l+s}{"10000000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-8"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}vector1 vector2\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3446,31 +3597,37 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!breakpoint}\index{XML element attributes!filename (breakpoint element)}\index{XML element attributes!format (breakpoint element)}
 
 \subsection{Breakpoint element}
-\label{reference_elements:breakpoint-element}\label{reference_elements:breakpointelement}
+\label{reference_elements:breakpoint-element}\label{reference_elements:breakpointelement}\label{reference_elements:index-87}
 The \code{\textless{}breakpoint\textgreater{}} element is used to output the full state of one or more vectors.  Unlike sampled output, it executes immediately rather than at the end of a program, and can therefore be used to examine the current state of an ongoing simulation.  The vectors to be output are defined via a {\hyperref[reference_elements:dependencies]{\emph{\textless{}dependencies\textgreater{}}}} element, and the basis is chosen by the \code{basis} attribute supplied to that [...]
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
 
+\index{XML elements!output}
 
 \subsection{Output element}
-\label{reference_elements:outputelement}\label{reference_elements:output-element}
-The \code{\textless{}output\textgreater{}} element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different \code{\textless{}sampling\_group\textgreater{}} element inside the output element.  The \code{\textless{}output\textgreater{}} element m [...]
+\label{reference_elements:outputelement}\label{reference_elements:index-88}\label{reference_elements:output-element}
+\index{XML element attributes!format (output element)}\index{XML element attributes!filename (output element)}\index{XML element attributes!format (output element)}
+The \code{\textless{}output\textgreater{}} element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different \code{\textless{}sampling\_group\textgreater{}} element inside the output element.  The \code{\textless{}output\textgreater{}} element m [...]
 
 The \code{\textless{}samples\textgreater{}} inside \code{\textless{}integrate\textgreater{}} elements defines a string of integers, with exactly one for each \code{\textless{}sampling\_group\textgreater{}} element.  During that integration, the variables described in each \code{\textless{}sampling\_group\textgreater{}} element will be sampled and stored that number of times.
 
+\index{Sampling}
+\index{XML elements!sampling\_group}
 
 \subsubsection{Sampling Group Element}
-\label{reference_elements:samplinggroupelement}\label{reference_elements:sampling-group-element}
+\label{reference_elements:samplinggroupelement}\label{reference_elements:sampling-group-element}\label{reference_elements:index-91}
 A \code{\textless{}sampling\_group\textgreater{}} element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a \code{\textless{}moments\textgreater{}} element, just like the \code{\textless{}components\textgreater{}} element of a vector.  They are defined with a `{\hyperref[reference_elements:xmdscsyntax]{\emph{CDATA}}}` block, accessing any components of vectors and computed vectors [...]
 
+\index{XML element attributes!basis (sampling\_group element)}\index{XML element attributes!initial\_sample}
 The basis of the output is specified by the \code{basis} attribute.  This overrides any basis specification in the \code{\textless{}dependencies\textgreater{}} element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding a number in parentheses after that dimension in the basis string, e.g. \code{basis="x y(32) kz(64)"}.   [...]
 
 The \code{initial\_sample} attribute, which must be ``yes'' or ``no'', determines whether the moment group will be sampled before any integration occurs.
@@ -3478,21 +3635,21 @@ The \code{initial\_sample} attribute, which must be ``yes'' or ``no'', determine
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}SimOutput.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}filter3\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"SimOutput.xsil"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"filter3"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}sparemomentagain\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}integrated\PYGZus{}u main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"kx ky"}\PYG{n+nt}{\PYGZgt{}}integrated\PYGZus{}u main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
           \PYG{n}{sparemomentagain} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{u}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}no\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{L} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{T}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{/}\PYG{n}{mu}\PYG{p}{;}
+        \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{n}{T}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{/}\PYG{n}{mu}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}amp ke\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
@@ -3503,7 +3660,7 @@ Example syntax:
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx(0) ky(64)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx(0) ky(64)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}Dens\PYGZus{}P \PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}fields \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3534,7 +3691,8 @@ which is short for
 \end{Verbatim}
 
 Various properties of dimensions are available.  For example, for a dimension called \code{x}:
-\begin{itemize}
+
+\index{\_lattice}\index{\_min}\index{\_max}\index{\_dx}\index{XML element attributes!basis (sampling\_group element)}\begin{itemize}
 \item {} 
 The number of points is accessible with the variable \code{\_lattice\_x},
 
@@ -3549,9 +3707,63 @@ The step size of a dimension is \code{dx}, and if it is constant, also available
 
 \end{itemize}
 
+\index{Modified midpoint method}
+
+\section{Modified Midpoint Method}
+\label{bulirschStoer:modified-midpoint-method}\label{bulirschStoer:index-0}\label{bulirschStoer::doc}\label{bulirschStoer:mmdetail}
+The modified midpoint can be used standalone as an ordinary differential equation integrator, however it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.
+
+The modified midpoint method advances a vector of dependent variables $y(x)$ from a point $x$, to a point $x + H$ by a sequence of $n$ substeps, each of size $h=H/n$.
+
+The number of right-hand side evaluations required by the modified midpoint method is $n+1$.  The formulas for the method are
+\begin{gather}
+\begin{split}z_0 &= y(x) \\
+z_1 &= z_0 + h f(x, z_0) \\
+z_{m+1} &= z_{m-1} + 2 h f(x + m h, z_m)\; \text{ for } m = 1, 2, \dots, n-1 \\
+y(x+H) \approx y_n &= \frac{1}{2} \left[ z_n + z_{n-1} + h f(x + H, z_n) \right]\end{split}\notag\\\begin{split}\end{split}\notag
+\end{gather}
+The error of this, expressed as a power series in $h$, the stepsize, contains only even powers of $h$.
+\begin{gather}
+\begin{split}y_n - y(x + H) &= \sum_{i=1}^{\infty} \alpha_i h^{2i}\end{split}\notag\\\begin{split}\end{split}\notag
+\end{gather}
+Where $H$ is held constant, but $h$ changes $y$ by varing the $n$ in $h = H/n$.
+
+The importance of this even power series is that using Richardson Extrapolation to combine steps and knock out higher-order error terms gains us two orders at a time.
+
+The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires 1 derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.
+
+\index{Bulirsch-Stoer algorithm}
+
+\section{Bulirsch-Stoer Algorithm}
+\label{bulirschStoer:bulirsch-stoer-algorithm}\label{bulirschStoer:bsdetail}\label{bulirschStoer:index-1}
+The Bulirsch-Stoer algorithm utilizes three core concepts in its design. These are;
+
+Firstly, the usage of Richardson Extrapolation
+
+{\hfill\includegraphics{richardsonExtrapolation.png}\hfill}
+
+Richardson Extrapolation considers the final answer of a numerical calculation, as being an analytic function of an adjustable parameter such as the stepsize $h$. That analytic function can be probed by performing the calculation with various values of $h$, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it, at the point where $h = 0$.
+
+Secondly, the usage of rational function extrapolation in Richardson-type applications. Rational function fits can remain good approximations to analytic functions even after the various terms in powers of $h$, all have comparable magnitudes. In other words, $h$ can be so large as to make the whole notion of the “order” of the method meaningless — and the method can still work superbly.
+
+The third idea is to use an integration method whose error function is strictly even, allowing the rational function or polynomial approximation to be in terms of the variable $h^2$ instead of just $h$.
+
+These three ideas give us the Bulirsch-Stoer method, where a single step takes us from $x$ to $x + H$, where $H$ is supposed to be a significantly large distance. That single step consists of many substeps of the modified midpoint method, which is then extrapolated to zero stepsize.
+
+(Excerpts derived from \textbf{Numerical Recipes: The Art of Scientific Computing}, Third Edition (2007), p1256; Cambridge University Press; ISBN-10: 0521880688, \href{http://www.nr.com/}{http://www.nr.com/})
+
+\index{Bulirsch-Stoer error scaling}
+
+\section{Error Scaling Behaviour}
+\label{bulirschStoer:errorscaling}\label{bulirschStoer:index-2}\label{bulirschStoer:error-scaling-behaviour}
+{\hfill\includegraphics{error_scaling.png}\hfill}
+
+The graph above shows the error scaling behaviour for the Bulirsch-Stoer method. This was generated using data from XMDS2 for a simple problem whose analytical solution was known. For more information and to generate this plot yourself see the testsuite/integrators/richardson\_extrapolation/error\_scaling directory. There you will find the .xmds files for generating the data and a python script to generate the plot above (requires gnuplot).
+
+\index{Advanced topics}
 
 \chapter{Advanced Topics}
-\label{advanced_topics:advancedtopics}\label{advanced_topics:advanced-topics}\label{advanced_topics::doc}
+\label{advanced_topics:advancedtopics}\label{advanced_topics:advanced-topics}\label{advanced_topics:index-0}\label{advanced_topics::doc}
 This section has further details on some important topics.
 
 {\hyperref[advanced_topics:importing]{\emph{Importing data}}} (importing data into XMDS2, and data formats used in the export)
@@ -3560,9 +3772,10 @@ This section has further details on some important topics.
 
 {\hyperref[advanced_topics:dimensionaliases]{\emph{Dimension aliases}}} (dimensions which are declared to be identical, useful for correlation functions)
 
+\index{Importing data}
 
 \section{Importing data}
-\label{advanced_topics:importing}\label{advanced_topics:importing-data}
+\label{advanced_topics:importing}\label{advanced_topics:importing-data}\label{advanced_topics:index-1}
 There are many cases where it is advantageous to import previously acquired data into XMDS2. For example, the differential equation you wish to solve may depend on a complicated functional form, which is more easily obtained via an analytical package such as Mathematica or Maple. Furthermore, importing data from another source can be quicker than needlessly performing calculations in XMDS2. In this tutorial, we shall consider an example of importing into XMDS2 a function generated in Mat [...]
 
 Suppose we want to import the following function into XMDS2:
@@ -3572,7 +3785,7 @@ Suppose we want to import the following function into XMDS2:
 The first step is to create an hdf5 file, from XMDS2, which specifies the dimensions of the grid for the x dimension. Create and save a new XMDS2 file. For the purposes of this tutorial we shall call it ``grid\_specifier.xmds'' with name ``grid\_specifier''. Within this file, enter the following ``dummy'' vector - which we shall call ``gen\_dummy'' - which depends on the x dimension:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}dummy\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}dummy"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dummy\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3586,7 +3799,7 @@ What ``dummy'' is is not actually important. It is only necessary that it is a f
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}grid.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"grid.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}
         gen\PYGZus{}dummy
       \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
@@ -3598,19 +3811,19 @@ In terminal, compile the file ``grid\_specifier.xmds'' in XMDS2 and run the c co
 In order to read the ``grid.h5'' data into Mathematica version 6.0, type the following command into terminal:.. code-block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-xsil2graphics2 \PYGZhy{}e grid.xsil
+xsil2graphics2 -e grid.xsil
 \end{Verbatim}
 
 This creates the Mathematica notebook ``grid.nb''. Open this notebook in Mathematica and evaluate the first set of cells. This has loaded the grid information into Mathematica. For example, suppose you have specified that the $x$ dimension has a lattice of 128 points and a domain of (-32, 32). Then calling ``x1'' in Mathematica should return the following list:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZob{}\PYGZhy{}32., \PYGZhy{}31.5, \PYGZhy{}31., \PYGZhy{}30.5, \PYGZhy{}30., \PYGZhy{}29.5, \PYGZhy{}29., \PYGZhy{}28.5, \PYGZhy{}28., \PYGZhy{}27.5,
-\PYGZhy{}27., \PYGZhy{}26.5, \PYGZhy{}26., \PYGZhy{}25.5, \PYGZhy{}25., \PYGZhy{}24.5, \PYGZhy{}24., \PYGZhy{}23.5, \PYGZhy{}23., \PYGZhy{}22.5,
-\PYGZhy{}22., \PYGZhy{}21.5, \PYGZhy{}21., \PYGZhy{}20.5, \PYGZhy{}20., \PYGZhy{}19.5, \PYGZhy{}19., \PYGZhy{}18.5, \PYGZhy{}18., \PYGZhy{}17.5,
-\PYGZhy{}17., \PYGZhy{}16.5, \PYGZhy{}16., \PYGZhy{}15.5, \PYGZhy{}15., \PYGZhy{}14.5, \PYGZhy{}14., \PYGZhy{}13.5, \PYGZhy{}13., \PYGZhy{}12.5,
-\PYGZhy{}12., \PYGZhy{}11.5, \PYGZhy{}11., \PYGZhy{}10.5, \PYGZhy{}10., \PYGZhy{}9.5, \PYGZhy{}9., \PYGZhy{}8.5, \PYGZhy{}8., \PYGZhy{}7.5, \PYGZhy{}7.,
-\PYGZhy{}6.5, \PYGZhy{}6., \PYGZhy{}5.5, \PYGZhy{}5., \PYGZhy{}4.5, \PYGZhy{}4., \PYGZhy{}3.5, \PYGZhy{}3., \PYGZhy{}2.5, \PYGZhy{}2., \PYGZhy{}1.5, \PYGZhy{}1.,
-\PYGZhy{}0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5,
+\PYGZob{}-32., -31.5, -31., -30.5, -30., -29.5, -29., -28.5, -28., -27.5,
+-27., -26.5, -26., -25.5, -25., -24.5, -24., -23.5, -23., -22.5,
+-22., -21.5, -21., -20.5, -20., -19.5, -19., -18.5, -18., -17.5,
+-17., -16.5, -16., -15.5, -15., -14.5, -14., -13.5, -13., -12.5,
+-12., -11.5, -11., -10.5, -10., -9.5, -9., -8.5, -8., -7.5, -7.,
+-6.5, -6., -5.5, -5., -4.5, -4., -3.5, -3., -2.5, -2., -1.5, -1.,
+-0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5,
 7., 7.5, 8., 8.5, 9., 9.5, 10., 10.5, 11., 11.5, 12., 12.5, 13.,
 13.5, 14., 14.5, 15., 15.5, 16., 16.5, 17., 17.5, 18., 18.5, 19.,
 19.5, 20., 20.5, 21., 21.5, 22., 22.5, 23., 23.5, 24., 24.5, 25.,
@@ -3654,7 +3867,7 @@ The next step is to export the list ``func'' as an h5 file that XMDS2 can read.
 
 \begin{Verbatim}[commandchars=\\\{\}]
 SetDirectory[NotebookDirectory[]];
-Export[\PYGZdq{}func.h5\PYGZdq{}, \PYGZob{}func, x1\PYGZcb{}, \PYGZob{}\PYGZdq{}Datasets\PYGZdq{}, \PYGZob{} \PYGZdq{}function\PYGZus{}x\PYGZdq{}, \PYGZdq{}x\PYGZdq{}\PYGZcb{}\PYGZcb{}]
+Export["func.h5", \PYGZob{}func, x1\PYGZcb{}, \PYGZob{}"Datasets", \PYGZob{} "function\PYGZus{}x", "x"\PYGZcb{}\PYGZcb{}]
 \end{Verbatim}
 
 In the directory containing the notebook ``grid.nb'' you should now see the file ``func.h5''. This file essentially contains the list \code{\{func, x1\}}. However, the hdf5 format stores func and x1 as separate entities called ``Datasets''. For importation into XMDS2 it is necessary that these datasets are named. This is precisely what the segment \code{\{"Datasets", \{ "function\_x", "x"\}\}} in the above Mathematica command does. The dataset corresponding to the grid x1 needs to be giv [...]
@@ -3662,9 +3875,9 @@ In the directory containing the notebook ``grid.nb'' you should now see the file
 The final step is to import the file ``func.h5'' into your primary XMDS2 file. This data will be stored as a vector called ``gen\_function\_x'', in component ``function\_x''.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}function\PYGZus{}x\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}function\PYGZus{}x"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}function\PYGZus{}x\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}} function\PYGZus{}x.h5 \PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -3679,7 +3892,7 @@ The situation is slightly more complicated if the function you wish to import de
 As for the single dimensional case, we need to export an hdf5 file from XMDS2 which specifies the dimensions of the grid. As in the one dimensional case, this is done by creating a dummy vector which depends on all the relevant dimensions:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}dummy\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}dummy"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dummy\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3707,14 +3920,15 @@ This function can be exported as an h5 file,
 
 \begin{Verbatim}[commandchars=\\\{\}]
 SetDirectory[NotebookDirectory[]];
-Export[\PYGZdq{}func.h5\PYGZdq{}, \PYGZob{}func, x1, y1\PYGZcb{}, \PYGZob{}\PYGZdq{}Datasets\PYGZdq{}, \PYGZob{} \PYGZdq{}function\PYGZus{}x\PYGZdq{}, \PYGZdq{}x\PYGZdq{}, \PYGZdq{}y\PYGZdq{}\PYGZcb{}\PYGZcb{}]
+Export["func.h5", \PYGZob{}func, x1, y1\PYGZcb{}, \PYGZob{}"Datasets", \PYGZob{} "function\PYGZus{}x", "x", "y"\PYGZcb{}\PYGZcb{}]
 \end{Verbatim}
 
 and imported into XMDS2 as outlined above.
 
+\index{Convolutions and Fourier transforms}
 
 \section{Convolutions and Fourier transforms}
-\label{advanced_topics:convolutions-and-fourier-transforms}\label{advanced_topics:convolutions}
+\label{advanced_topics:convolutions-and-fourier-transforms}\label{advanced_topics:convolutions}\label{advanced_topics:index-2}
 When evaluating a numerical Fourier transform, XMDS2 doesn't behave as expected. While many simulations have ranges in their spatial coordinate (here assumed to be x) that range from some negative value $x_\text{min}$ to some positive value $x_\text{max}$, the Fourier transform used in XMDS2 treats all spatial coordinates as starting at zero. The result of this is that a phase factor of the form $e^{-i x_\text{min} k}$ is applied to the Fourier space functions after all forward (from rea [...]
 
 The standard Fourier transform is
@@ -3755,12 +3969,14 @@ This requires two forward Fourier transforms to get the two functions f and g in
 
 Sometimes when the convolution theorem is used one of the forward Fourier transforms is calculated analytically and input in Fourier space. In this case only one forward numerical Fourier transform and one backward numerical Fourier transform is used. The number of forward and backward transforms are equal, so no phase factor is required.
 
+\index{Geometry matching mode - loose}
 
 \section{`Loose' \texttt{geometry\_matching\_mode}}
-\label{advanced_topics:loosegeometrymatchingmode}\label{advanced_topics:loose-geometry-matching-mode}
+\label{advanced_topics:loosegeometrymatchingmode}\label{advanced_topics:index-3}\label{advanced_topics:loose-geometry-matching-mode}
+\index{Dimension aliases}
 
 \section{Dimension aliases}
-\label{advanced_topics:dimension-aliases}\label{advanced_topics:dimensionaliases}
+\label{advanced_topics:index-4}\label{advanced_topics:dimension-aliases}\label{advanced_topics:dimensionaliases}
 Dimension aliases specify that two or more dimensions have exactly the same \code{lattice}, \code{domain} and \code{transform}.  This can be useful in situations where the problem enforces this, for example when computing correlation functions or representing square matrices.
 
 Dimension aliases are not just a short-hand for defining an additional dimension, they also permit dimensions to be accessed {\hyperref[reference_elements:referencingnonlocal]{\emph{non-locally}}}, which is essential when computing spatial correlation functions.
@@ -3768,25 +3984,25 @@ Dimension aliases are not just a short-hand for defining an additional dimension
 Here is how to compute a spatial correlation function $g^{(1)}(x, x') = \psi^*(x) \psi(x')$ of the quantity \code{psi}:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ name, features block }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ name, features block }\PYG{c}{--\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}1024\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.0, 1.0)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}xp\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"1024"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.0, 1.0)"} \PYG{n+na}{aliases=}\PYG{l+s}{"xp"} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} psi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ initialisation code }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+      \PYG{c}{\PYGZlt{}!--}\PYG{c}{ initialisation code }\PYG{c}{--\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}correlation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x xp\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"correlation"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x xp"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} g1 \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}} wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
@@ -3796,7 +4012,7 @@ Here is how to compute a spatial correlation function $g^{(1)}(x, x') = \psi^*(x
     \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ integration and sampling code }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ integration and sampling code }\PYG{c}{--\PYGZgt{}}
 
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
@@ -3805,9 +4021,10 @@ In this simulation note that the vector \code{wavefunction} defaults to only hav
 
 See the example \code{groundstate\_gaussian.xmds} for a complete example.
 
+\index{FAQ}
 
 \chapter{Frequently Asked Questions}
-\label{faq:faq}\label{faq::doc}\label{faq:frequently-asked-questions}
+\label{faq:index-0}\label{faq:faq}\label{faq::doc}\label{faq:frequently-asked-questions}
 
 \section{XMDS scripts look complicated! How do I start?}
 \label{faq:xmds-scripts-look-complicated-how-do-i-start}
@@ -3822,35 +4039,40 @@ The documentation on this website is currently incomplete, but it still covers a
 
 You should also feel free to email questions to the XMDS users' mailing list at \href{mailto:xmds-users at lists.sourceforge.net}{xmds-users at lists.sourceforge.net}, where the developers and other users can assist you. You can join the mailing list by going to \href{http://sourceforge.net/projects/xmds/}{http://sourceforge.net/projects/xmds/} and clicking on ``mailing lists.'' Also, if you look through the mailing list archives, your particular problem may already have been discussed.
 
+\index{Citing XMDS2}
 
 \section{How should I cite XMDS2?}
-\label{faq:how-should-i-cite-xmds2}
+\label{faq:how-should-i-cite-xmds2}\label{faq:index-1}
 If you publish work that has involved XMDS2, please cite it as: \href{http://dx.doi.org/10.1016/j.cpc.2012.08.016}{Comput. Phys. Commun. 184, 201-208 (2013)}.
 
+\index{Bug reports}
 
 \section{I think I found a bug! Where should I report it?}
-\label{faq:i-think-i-found-a-bug-where-should-i-report-it}
+\label{faq:i-think-i-found-a-bug-where-should-i-report-it}\label{faq:index-2}
 Please report bugs to the developer mailing list at \href{mailto:xmds-devel at lists.sourceforge.net}{xmds-devel at lists.sourceforge.net}. In your email, please include a description of the problem and attach the XMDS2 script that triggers the bug.
 
+\index{Time dependence in vectors}
 
 \section{How do I put time dependence into my vectors?}
-\label{faq:how-do-i-put-time-dependence-into-my-vectors}
+\label{faq:how-do-i-put-time-dependence-into-my-vectors}\label{faq:index-3}
 Standard vectors can't have time dependence (or, more accurately, depend on the \code{propagation\_dimension} variable), but computed vectors can. So, for example, if you have set your \code{propagation\_dimension} as ``t'', you can simply use the variable ``t'' in your computed vector and it will work.
 
 Alternatively, you can explicitly use the \code{propagation\_dimension} variable in your differential equation inside the \code{\textless{}operators\textgreater{}} block.
 
+\index{Grid specification at run-time}
 
 \section{Can I specify the range of my domain and number of grid points at run-time?}
-\label{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}
+\label{faq:index-4}\label{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}
 Yes, you can. In your script, specify the domain and number of grid points as arguments to be passed in at run-time, use those variables in your \code{\textless{}geometry\textgreater{}} block rather than explicitly specifying them, and use the \code{\textless{}validation kind="run-time" /\textgreater{}} feature. See the {\hyperref[reference_elements:validation]{\emph{Validation}}} entry in the Reference section for an example.
 
 While the domain can always be specified in this way, specifying the lattice size at run-time is currently only allowed with the following transforms: `dct', `dst', `dft' and `none' (see {\hyperref[reference_elements:validation]{\emph{Transforms}}} in the Reference section).
 
 Also note that for some multi-dimensional spaces using different transforms, XMDS2 will sometimes optimise the code it generates based on the relative sizes of the dimensions. If one or more of the lattices are specified at run-time it is unable to do this and will have to make guesses. In some situations this may result in slightly slower code.
 
+\index{IP versus EX operators}
 
 \section{When can I use IP operators (and why should I) and when must I use EX operators?}
-\label{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}
+\label{faq:index-5}\label{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}
 An {\hyperref[reference_elements:operatornameselement]{\emph{\textless{}operator\textgreater{}}}} that specifies named operators to be used in integration equations can have the \code{kind="IP"} or \code{kind="EX"} attribute, standing for `interaction picture' and `explicit' operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve speed by al [...]
 
 Some explanation is in order.  The IP algorithm applies the operator separately to the rest of the evolution.  The reason this can be so effective is that the separate evolution can be performed exactly.  The solution of the equation $\frac{d \psi}{dt} = L \psi$ is $\psi(t+\Delta t) = exp(L \Delta t) \psi(t)$ for arbitrarily large timestep $\Delta t$.  For a diagonal linear \code{L}, the matrix exponential is straightforward.  Also, when it is constant, then the exponential can be comput [...]
@@ -3873,7 +4095,7 @@ We have made the decision to call the executables ``xmds2'' and ``xsil2graphics2
 
 
 \chapter{Optimisation Hints}
-\label{optimisation_hints::doc}\label{optimisation_hints:optimisation-hints}
+\label{optimisation_hints:optimisationhints}\label{optimisation_hints::doc}\label{optimisation_hints:optimisation-hints}
 There are a variety of things you can do to make your simulations run faster.
 
 
@@ -3895,10 +4117,44 @@ Dimensions using matrix transforms should be first for performance reasons.  Unl
 Avoid transcendental functions like $\sin(x)$ or $\exp(x)$ in inner loops. Not all operations are made equal, use multiplication over division.
 
 
-\subsection{Use the Interaction Picture (IP) operator}
-\label{optimisation_hints:use-the-interaction-picture-ip-operator}
-Just do it. Only use the EX operator when you have to. If you must use the EX operator, consider making it \code{constant="no"}. It uses less memory.
-When you use the IP operator, make sure you know what it's doing.  Do not pre- or post-multiply that term in your equations.
+\subsection{Optimising with the Interaction Picture (IP) operator}
+\label{optimisation_hints:optimising-with-the-interaction-picture-ip-operator}\label{optimisation_hints:optimisingipoperators}
+You should use the IP operator when you can. Only use the EX operator when you have to. If you must use the EX operator, consider making it \code{constant="no"}. It uses less memory.
+When you use the IP operator, make sure you know what it's doing.  Do not pre- or post-multiply that term in your equations, XMDS will do a fairly thorough check to see you aren't using the IP operator improperly, but it is possible to confuse XMDS's check.
+
+If your simulation uses two or more dimensions, check to see if your IP operator is separable, i.e. can be written in the form $f(kx) + g(ky)$ (this is frequently possible in atom-optics simulations). If your IP operator is separable, create separate IP operators for each dimension.  This provides a significant speedup (\textasciitilde{}30\%) for simulations using an adaptive integrator.  For example, instead of using the IP operator:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+  \PYG{c+cp}{\PYGZlt{}![CDATA[}
+    \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{p}{;}
+  \PYG{c+cp}{]]\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}![CDATA[}
+  \PYG{n}{dpsi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{psi}\PYG{p}{]} \PYG{o}{+} \PYG{c+cm}{/* other terms */}
+\PYG{c+cp}{]]\PYGZgt{}}
+\end{Verbatim}
+
+replace it with the pair of IP operators:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Tx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+  \PYG{c+cp}{\PYGZlt{}![CDATA[}
+    \PYG{n}{Tx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+  \PYG{c+cp}{]]\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ty\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
+  \PYG{c+cp}{\PYGZlt{}![CDATA[}
+    \PYG{n}{Ty} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+  \PYG{c+cp}{]]\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}![CDATA[}
+  \PYG{n}{dpsi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Tx}\PYG{p}{[}\PYG{n}{psi}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Ty}\PYG{p}{[}\PYG{n}{psi}\PYG{p}{]} \PYG{o}{+} \PYG{c+cm}{/* other terms */}
+\PYG{c+cp}{]]\PYGZgt{}}
+\end{Verbatim}
 
 When using the IP operator, check if your operator is purely real or purely imaginary.  If real, (e.g. \code{L = -0.5*kx * kx;}), then add the attribute \code{type="real"} to the \code{\textless{}operator kind="ip"\textgreater{}} tag.  If purely imaginary, use \code{type="imaginary"}.  This optimisation saves performing the part of the complex exponential that is unnecessary.
 
@@ -3919,17 +4175,17 @@ The first term in each evolution equation can be solved exactly with an IP opera
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}imaginary\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{"kx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"imaginary"} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lxx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
 
-    \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
-    \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
+    \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
+    \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
 
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -3942,20 +4198,20 @@ A final optimisation is to cause the integration code itself to operate in Fouri
 The fully optimised code then reads:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}6\PYGZdq{}} \PYG{n+na}{home\PYGZus{}space=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-6"} \PYG{n+na}{home\PYGZus{}space=}\PYG{l+s}{"k"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}} 10 \PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}imaginary\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{"kx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"imaginary"} \PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lxx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
 
-      \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
-      \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
+      \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
+      \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
 
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -4001,7 +4257,7 @@ This will make xpdeint generate code that is more friendly to compiler's auto-ve
 If you are using the OpenMP feature and are using \href{http://www.fftw.org}{FFTW}-based transforms (Discrete Fourier/Cosine/Sine Transforms), you should consider using threads with your FFT's by adding the following to the \code{\textless{}features\textgreater{}} block at the start of your simulation:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{threads=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{threads=}\PYG{l+s}{"2"} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 Replace the number of threads in the above code by the number of threads that you want to use.
@@ -4024,7 +4280,7 @@ The file format used in this example is \href{http://www.hdfgroup.org/HDF5/}{HDF
 If your wavefunction vector is called \code{'wavefunction'}, then to save the groundstate to the file \code{groundstate\_break.h5} in the HDF5 format, put the following code immediately after the integrate block that calculates your groundstate:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
@@ -4034,9 +4290,9 @@ In addition to the \code{groundstate\_break.h5} file, an XSIL wrapper \code{grou
 To load this groundstate into your evolution script, the declaration of your \code{'wavefunction'} vector in your evolution script should look something like
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}phi1 phi2\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}groundstate\PYGZus{}break.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -4049,21 +4305,23 @@ Note that the groundstate-finder doesn't need to have all of the components that
 \label{optimisation_hints:use-an-energy-or-momentum-offset}
 This is just the interaction picture with a constant term in the Hamiltonian. If your state is going to rotate like $e^{i(\omega + \delta\omega)t}$, then transform your equations to remove the $e^{i \omega t}$ term. Likewise for spatial rotations, if one mode will be moving on average with momentum $\hbar k$, then transform your equations to remove that term. This way, you may be able to reduce the density of points you need in that dimension. Warning: don't forget to consider this when  [...]
 
+\index{xsil2graphics2}\index{Exporting data}
 
 \chapter{xsil2graphics2}
-\label{xsil2graphics2:xsil2graphics2}\label{xsil2graphics2::doc}\label{xsil2graphics2:id1}
-\textbf{xsil2graphics2} is a way of converting ''.xsil'' files to formats that other programs can read.  The syntax is described in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}}, and by using the \code{xsil2graphics2 -{-}help} option.  It currently can covert any output format for use by Mathematica.
+\label{xsil2graphics2:index-0}\label{xsil2graphics2:xsil2graphics2}\label{xsil2graphics2::doc}\label{xsil2graphics2:id1}
+\textbf{xsil2graphics2} is a way of converting ''.xsil'' files to formats that other programs can read.  The syntax is described in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}}, and by using the \code{xsil2graphics2 -{-}help} option.  It currently can covert any output format for use by Mathematica, MATLAB and Octave.
 
 We recommend HDF5 format instead of the binary format for output and input, as many visualisation tools can already read/write to this format directly.
 
 
 \chapter{Developer Documentation}
-\label{developer:developer-documentation}\label{developer::doc}
+\label{developer:developer-documentation}\label{developer:developerdocumentation}\label{developer::doc}
 Developers need to know more than users.  For example, they need to know about the test suite, and writing test cases.  They need to know how to perform a developer installation.  They need to know how to edit and compile this documentation.  They need a step-by-step release process.
 
+\index{Test scripts}
 
 \section{Test scripts}
-\label{developer:test-scripts}\label{developer:testscripts}
+\label{developer:test-scripts}\label{developer:index-0}\label{developer:testscripts}
 Every time you add a new feature and/or fix a new and exciting bug, it is a great idea to make sure that the new feature works and/or the bug stays fixed.  Fortunately, it is pleasantly easy to add a test case to the testing suite.
 \begin{enumerate}
 \item {} 
@@ -4118,23 +4376,131 @@ Commit the \code{.xmds}, \code{*\_expected.xsil} file and any \code{*\_expected*
 
 \subsection{moment\_group element}
 \label{developer:momentgroupelement}\label{developer:moment-group-element}
+\index{Documentation format}
 
-\section{Steps to update \texttt{XMDS} script validator (XML schema)}
-\label{developer:steps-to-update-xmds-script-validator-xml-schema}\begin{enumerate}
-\item {} 
-Modify \code{xpdeint/support/xpdeint.rnc}. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes.
+\section{XMDS Documentation}
+\label{developer:userdocumentation}\label{developer:xmds-documentation}\label{developer:index-1}
+Documentation in XMDS is written as reStructuredText files (.rst), which are then parsed into HTML files to be displayed on their website.
 
-\item {} 
-Run \code{make} in \code{xpdeint/support/} to update \code{xpdeint/support/xpdeint.rng}. This is the file which is actually used, which is in RelaxNG format, but RelaxNG compact is easier to read and edit.
+You can find the user documentation folder located \code{admin/userdoc-source}. This is where all of the .rst files are kept. If you’re wanting to add documentation to the site, you’ll need to create your own .rst file, with the name of the webpage as the filename.
 
-\item {} 
-Commit both \code{xpdeint/support/xpdeint.rnc} and \code{xpdeint/support/xpdeint.rng}.
+RST is a relatively simple language, which is basically simplified HTML markup. For documentation on how to make Lists, Href Links, Embed images etc, you should check here;
 
-\end{enumerate}
+\href{http://docutils.sourceforge.net/docs/user/rst/quickref.html}{http://docutils.sourceforge.net/docs/user/rst/quickref.html}
+\href{http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html}{http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html}
+
+However, you should easily be able to use some of the pre-existing .rst files in the project as a template to create yours.
+
+Once your documentation is in this folder, it should be deployed along with the project to their website when you run create\_release\_version.sh, which can be found in the /Trunk/xpdeint/admin folder. If you would like to test to see what your rst file generates without running this shell script, you can use the Makefile in the userdoc-source folder, by running “make html”.
+
+NOTE: Before you can run the create\_release\_version.sh file, there are a few packages you will need. This command uses latex to generate the XMDS2 pdf, so you’ll be needing the following packages; \code{texlive-fonts-recommended}, \code{texlive-lang-cjk}, \code{texlive-latex-base}.
 
+\index{XML schema updates}
+
+\section{How to update \texttt{XMDS2} script validator (XML schema)}
+\label{developer:how-to-update-xmds2-script-validator-xml-schema}\label{developer:index-2}\label{developer:howtoaddelementtovalidator}
+{\hfill\includegraphics{IntroduceNewElement.png}}
+
+This is a short guide to adding an element to XMDS2, so that it can be validated by the XMDS2 script validator. In this guide, the example being used will be the addition of a matrix element to the validator.  The matrix will have a  ‘name’ and a ‘type’ (so it can be called later, and the type is known for future reference). Each matrix will also need a ‘row’ component, and possibly an initialisation value.
+
+Navigate to \code{xpdeint/support/xpdeint.rnc}. This is a RelaxNG compact file, which specifies the XML schema which is only used for issuing warnings to users about missing or extraneous XML tags / attributes. Add the following lines to the end of the file (so that it is outside all other brackets in the file):
+
+\begin{Verbatim}[commandchars=\\\{\}]
+Matrix = element matrix \PYGZob{}
+    attribute name \PYGZob{} text \PYGZcb{}
+    , attribute type \PYGZob{} text \PYGZcb{}?
+    , element components \PYGZob{} text \PYGZcb{}
+    , element initialisation \PYGZob{}
+        attribute kind \PYGZob{} text \PYGZcb{}?
+    \PYGZcb{}?
+\PYGZcb{}
+\end{Verbatim}
+
+Save this file, and then in the terminal navigate to the folder \code{xpdeint/support/} and run \code{make}. This updates the XML based file \code{xpdeint/support/xpdeint.rng}, which is the file the parser uses to validate elements in XMDS2. This file which is  used is in RelaxNG format, but RelaxNG compact is easier to read and edit.
+
+Commit both \code{xpdeint/support/xpdeint.rnc} and \code{xpdeint/support/xpdeint.rng} to the code repository.
+
+\index{Adding an integrator}
+
+\section{How to introduce a new integrator Stepper into the XMDS2 environment}
+\label{developer:how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment}\label{developer:howtoaddintegrator}\label{developer:index-3}
+{\hfill\includegraphics{IntroduceNewIntegrationTechnique.png}}
+
+This is a short guide to adding a new stepper containing a new mathematical technique to XMDS2, which can then be used by to integrate equations. This guide describes the logistics of introducing a new stepper and as such, the code inside the stepper template is outside the scope of this document. The new stepper which will be used in this guide will be called ‘IntegrateMethodStepper’.
+
+Navigate to the \code{xpdeint/Segments/Integrators} directory. Create a file called \code{IntegrateMethodStepper.tmpl} in this directory. In this file, implement the new integration algorithm (follow the convention of existing steppers in that folder). In this same folder, open the file named \code{\_\_init\_\_.py} and add the following line to the bottom of the file and save it:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+import IntegrateMethodStepper
+\end{Verbatim}
+
+Navigate up until you are in the \code{xpdeint} directory. Open the file \code{XMDS2Parser.py}, and `find' the algorithm map (Ctrl+F \textgreater{} algorithmMap works for most text editors). The mnemonic ‘IM’ will be used for our Stepper. If the stepper uses fixed step sizes, then add the following line to the algorithm map:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+'IM':   (Integrators.FixedStep.FixedStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+\end{Verbatim}
+
+Otherwise, if your stepper is an adaptive Stepper, add the following line:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+'IM':   (Integrators.AdaptiveStep.AdaptiveStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+\end{Verbatim}
+
+In the terminal, navigate to the \code{xpdeint} directory, and run make over the entire directory. `IM' can now be used to specify the new Stepper as your integration algorithm inside your .xmds files, e.g.
+
+\begin{Verbatim}[commandchars=\\\{\}]
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"IM"} \PYG{n+na}{interval=}\PYG{l+s}{"5.0"} \PYG{n+na}{steps=}\PYG{l+s}{"2000"}\PYG{n+nt}{\PYGZgt{}}
+    ...
+\PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
+\end{Verbatim}
+\phantomsection\label{developer:logicalbreakdownparsingprocess}
+\index{XMDS2 parsing process}
+
+\section{Logical breakdown of XMDS2 Parsing Process}
+\label{developer:index-4}\label{developer:logical-breakdown-of-xmds2-parsing-process}
+The following information is intended to assist developers in understanding the logical process undertaken by the XMDS2 system when parsing an .xmds file. The documentation was not designed to be exhaustive, but rather to help paint a picture of part of the way XMDS2 works.
+
+The flowcharts have been created in open source diagram drawing program Dia, and compiled into .png files which are displayed below. This page contains links to the original .dia files, so if you find any error in the information below (or you'd like to extend it, by adding in more information), please update the .dia files and commit them (and their compiled versions) to svn.
+
+
+\subsection{Overall process for parsing XML file in XMDS2}
+\label{developer:overall-process-for-parsing-xml-file-in-xmds2}
+{\hfill\includegraphics{Overall_Flowchart.png}\hfill}
+
+The original .dia file can be downloaded here.
+
+
+\subsection{parser2.py parses XML file (Sub process 3)}
+\label{developer:parser2-py-parses-xml-file-sub-process-3}
+{\hfill\includegraphics{Subprocess3_ParsingXMLFile.png}\hfill}
+
+You can download the original dia file here.
+
+
+\subsection{Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}
+\label{developer:pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4}
+{\hfill\includegraphics{Subprocess3_4_parseXMLDocument.png}\hfill}
+
+You can download the original dia file here.
+
+
+\subsection{Parse Top Level Sequence elements (Sub process 3.4.11)}
+\label{developer:parse-top-level-sequence-elements-sub-process-3-4-11}
+{\hfill\includegraphics{Subprocess3_4_11_ParseTopLvlSeqElements.png}\hfill}
+
+You can download the original dia file here.
+
+
+\subsection{Parse Integrate Element (Sub process 3.4.11.2)}
+\label{developer:parse-integrate-element-sub-process-3-4-11-2}
+{\hfill\includegraphics{Subprocess3_4_11_2_ParseIntegrateElement.png}\hfill}
+
+You can download the original dia file here.
+
+\index{XMDS2 project directory layout}
 
 \section{Directory layout}
-\label{developer:directory-layout}
+\label{developer:index-5}\label{developer:directory-layout}
 
 \subsection{XMDS2's code and templates}
 \label{developer:xmds2-s-code-and-templates}
@@ -4261,16 +4627,403 @@ This directory also contains code for the input script parser, code blocks, code
 
 \end{itemize}
 
+\index{Licensing}
 
 \chapter{Licensing}
-\label{licensing::doc}\label{licensing:licensing}\label{licensing:id1}
-XMDS2 is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install. You can also find it here: \href{http://www.gnu.org/licenses/}{http://www.gnu.org/licenses/}
+\label{licensing:index-0}\label{licensing::doc}\label{licensing:licensing}\label{licensing:id1}
+The XMDS2 codebase is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install.
+
+The XMDS2 documentation is licensed under the GNU Free Documentation License.
+
+We encourage people to submit patches to us that extend XMDS2's functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license, or under the GNU FDL license if your patch contributes to the documentation.
+
+Both licenses can be found at \href{http://www.gnu.org/licenses/}{http://www.gnu.org/licenses/}, but we also include them below for convenience.
+
+\begin{DUlineblock}{0em}
+\item[] 
+\item[] 
+\end{DUlineblock}
+
+\index{GNU General Public License}\index{GPL}
+
+\section{GNU General Public License}
+\label{licensing:gnu-general-public-license}\label{licensing:index-1}
+\textbf{GNU GENERAL PUBLIC LICENSE}
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
-We encourage people to submit patches to us that extend XMDS2's functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license.
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
 
+\textbf{Preamble}
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General [...]
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+\textbf{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}
+\begin{enumerate}
+\setcounter{enumi}{-1}
+\item {} 
+This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The ``Program'', below, refers to any such program or work, and a ``work based on the Program'' means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.  [...]
+
+\end{enumerate}
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+\begin{enumerate}
+\item {} 
+You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+\end{enumerate}
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+\begin{enumerate}
+\setcounter{enumi}{1}
+\item {} 
+You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+\begin{enumerate}
+\item {} 
+You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+\item {} 
+You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
+\item {} 
+If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is inte [...]
+
+\end{enumerate}
+
+\end{enumerate}
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose p [...]
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+\begin{enumerate}
+\setcounter{enumi}{2}
+\item {} 
+You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+\begin{enumerate}
+\item {} 
+Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+\item {} 
+Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+\item {} 
+Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
+\end{enumerate}
+
+\end{enumerate}
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major co [...]
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+\begin{enumerate}
+\setcounter{enumi}{3}
+\item {} 
+You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+\item {} 
+You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+\item {} 
+Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+\item {} 
+If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distrib [...]
+
+\end{enumerate}
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/dono [...]
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+\begin{enumerate}
+\setcounter{enumi}{7}
+\item {} 
+If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+\item {} 
+The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+\end{enumerate}
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and ``any later version'', you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+\begin{enumerate}
+\setcounter{enumi}{9}
+\item {} 
+If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+\end{enumerate}
+
+NO WARRANTY
+\begin{enumerate}
+\setcounter{enumi}{10}
+\item {} 
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SH [...]
+
+\item {} 
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPER [...]
+
+\end{enumerate}
+
+\begin{DUlineblock}{0em}
+\item[] 
+\item[] 
+\end{DUlineblock}
+
+\index{GNU Free Documentation License}
+
+\section{GNU Free Documentation License}
+\label{licensing:gnu-free-documentation-license}\label{licensing:index-2}
+\textbf{GNU Free Documentation License}
+
+Version 1.3, 3 November 2008
+
+Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. \textless{}\href{http://fsf.org/}{http://fsf.org/}\textgreater{}
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+\begin{enumerate}
+\setcounter{enumi}{-1}
+\item {} 
+PREAMBLE
+
+\end{enumerate}
+
+The purpose of this License is to make a manual, textbook, or other functional and useful document ``free'' in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
+
+We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or dis [...]
+
+A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the [...]
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. [...]
+
+Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are  [...]
+
+The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
+
+The ``publisher'' means any person or entity that distributes copies of the Document to the public.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchang [...]
+
+You may also lend copies, under the same conditions stated above, and you may publicly display copies.
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with [...]
+
+If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
+
+If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you [...]
+
+It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
+\begin{enumerate}
+\item {} 
+Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
+
+\item {} 
+List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
+
+\item {} 
+State on the Title page the name of the publisher of the Modified Version, as the publisher.
+
+\item {} 
+Preserve all the copyright notices of the Document.
+
+\item {} 
+Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
+
+\item {} 
+Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
+
+\item {} 
+Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
+
+\item {} 
+Include an unaltered copy of this License.
+
+\item {} 
+Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
+
+\item {} 
+Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
+
+\item {} 
+For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
+
+\item {} 
+Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
+
+\item {} 
+Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version.
+
+\item {} 
+Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section.
+
+\item {} 
+Preserve any Warranty Disclaimers.
+
+\end{enumerate}
+
+If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
+
+You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add ano [...]
+
+The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in t [...]
+
+In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements''.
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative work [...]
+
+If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, p [...]
+
+If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
+
+Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See \href{http://www.gnu.org/copyleft/}{http://www.gnu.org/copyleft/}.
+
+Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as [...]
+11. RELICENSING
+
+``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site.
+
+``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.
+
+``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document.
+
+An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
+\begin{quote}
+
+Copyright (C)  YEAR  YOUR NAME.
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+\end{quote}
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with … Texts.'' line with this:
+\begin{quote}
+
+with the Invariant Sections being LIST THEIR TITLES, with the
+Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+
+If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
+
+If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
+
+\index{News}
 
 \chapter{News}
-\label{news:news}\label{news::doc}\label{news:id1}
+\label{news:news}\label{news:index-0}\label{news::doc}\label{news:id1}
+
+\section{XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}
+\label{news:xmds-2-2-0-out-of-cheese-error-january-13-2014}
+XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically
+\begin{itemize}
+\item {} 
+Separated IP operators.  This is a significant performance optimisation (\textasciitilde{}30\%) for problems with two or more dimensions.  It requires separating IP operators of the form ``f(kx) + g(ky)'' (e.g. kinetic energy for quantum physics) into \emph{two} IP operators and explicitly setting the dimensions=''x'' and dimensions=''y'' attributes on each.  See {\hyperref[optimisation_hints:optimisationhints]{\emph{Optimisation hints}}} for details.
+
+\item {} 
+Significant speed optimisations for adaptive integrators with IP operators (past IP operator calculations are re-used if the time-step hasn't changed).
+
+\item {} 
+The ``constant'' attribute for IP/EX operators is now unnecessary and considered advanced usage.  If you don't know whether to specify constant=''yes'' or constant=''no'', don't specify either.
+
+\item {} 
+The xsil2graphics2 data exporter now supports Matlab, Octave, Mathematica and Python in all output formats, as well as R (HDF5 only).  The Matlab/Octave scripts are now identical.  A script generated for one will work for the other.
+
+\item {} 
+Bessel-Neumann transforms have been implemented.  Set transform=''bessel-neumann'' if you want a Bessel (Hankel) transform but have zero derivative at the boundary (Neumann boundary conditions) instead of zero function value (Dirichlet boundary conditions).  If you don't care about your boundary condition, stick with the ``bessel'' transform.
+
+\item {} 
+A Bulirisch-Stoer integrator.  This can be useful for problems which are very smooth as you can use an arbitrarily high order algorithm.  Specify algorithm=''RE'' and extrapolations=''5'' to have a 10th order integrator.  Currently this is fixed-step only.
+
+\item {} 
+``adaptive-mpi-multipath'' driver.  This implements a load scheduler that better spreads the work across different CPUs when different paths can take very different amounts of time. Also useful in heterogeneous clusters.
+
+\item {} 
+XMDS2 is currently undergoing acceptance into Debian linux and will soon be able to be installed via the package manager. In the meantime you can find it in the private APT repository at \href{http://xmds.laboissiere.net}{http://xmds.laboissiere.net}.
+
+\item {} 
+A number of bug fixes.
+
+\item {} 
+Expanded and improved documentation.
+
+\end{itemize}
+
+Many thanks to all who contributed to this release!
+
 
 \section{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}
 \label{news:xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013}
@@ -4357,7 +5110,7 @@ XMDS 2.1 is a significant upgrade with many improvements and bug fixes since 2.0
 Existing users should note that this release introduces a more concise syntax for moment groups.  You can now use:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y z\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"} \PYG{n+na}{basis=}\PYG{l+s}{"x y z"}\PYG{n+nt}{\PYGZgt{}}
     ...
 \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 \end{Verbatim}
@@ -4366,7 +5119,7 @@ Instead of:
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}group}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y z\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"} \PYG{n+na}{basis=}\PYG{l+s}{"x y z"}\PYG{n+nt}{\PYGZgt{}}
         ...
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/group\PYGZgt{}}
diff --git a/documentation/latex/xmds2.toc b/documentation/latex/xmds2.toc
index 67b0e72..0c7777c 100644
--- a/documentation/latex/xmds2.toc
+++ b/documentation/latex/xmds2.toc
@@ -11,12 +11,12 @@
 \contentsline {chapter}{\numberline {4}Worked Examples}{15}{chapter.4}
 \contentsline {section}{\numberline {4.1}The nonlinear Schr\IeC {\"o}dinger equation}{15}{section.4.1}
 \contentsline {section}{\numberline {4.2}Kubo Oscillator}{19}{section.4.2}
-\contentsline {section}{\numberline {4.3}Fibre Noise}{21}{section.4.3}
-\contentsline {section}{\numberline {4.4}Integer Dimensions}{25}{section.4.4}
+\contentsline {section}{\numberline {4.3}Fibre Noise}{23}{section.4.3}
+\contentsline {section}{\numberline {4.4}Integer Dimensions}{27}{section.4.4}
 \contentsline {section}{\numberline {4.5}Wigner Function}{28}{section.4.5}
 \contentsline {section}{\numberline {4.6}Finding the Ground State of a BEC (continuous renormalisation)}{31}{section.4.6}
 \contentsline {section}{\numberline {4.7}Finding the Ground State of a BEC again}{35}{section.4.7}
-\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{39}{section.4.8}
+\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{40}{section.4.8}
 \contentsline {chapter}{\numberline {5}Reference section}{43}{chapter.5}
 \contentsline {section}{\numberline {5.1}Configuration, installation and runtime options}{43}{section.5.1}
 \contentsline {section}{\numberline {5.2}Useful XML Syntax}{44}{section.5.2}
@@ -46,83 +46,99 @@
 \contentsline {subsection}{\numberline {5.4.7}Geometry Element}{53}{subsection.5.4.7}
 \contentsline {subsubsection}{The ``dft'' transform}{54}{subsubsection*.24}
 \contentsline {subsubsection}{The ``dct'' transform}{55}{subsubsection*.25}
-\contentsline {subsubsection}{The ``dst'' transform}{55}{subsubsection*.26}
-\contentsline {subsubsection}{The ``bessel'' transform}{56}{subsubsection*.27}
+\contentsline {subsubsection}{The ``dst'' transform}{56}{subsubsection*.26}
+\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{56}{subsubsection*.27}
 \contentsline {subsubsection}{The ``spherical-bessel'' transform}{57}{subsubsection*.28}
 \contentsline {subsubsection}{The ``hermite-gauss'' transform}{58}{subsubsection*.29}
 \contentsline {subsection}{\numberline {5.4.8}Vector Element}{59}{subsection.5.4.8}
-\contentsline {subsubsection}{The dependencies element}{60}{subsubsection*.34}
-\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{61}{subsection.5.4.9}
+\contentsline {subsubsection}{The dependencies element}{61}{subsubsection*.34}
+\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{62}{subsection.5.4.9}
 \contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{62}{subsection.5.4.10}
 \contentsline {subsubsection}{Uniform noise}{63}{subsubsection*.36}
 \contentsline {subsubsection}{Gaussian noise}{63}{subsubsection*.37}
 \contentsline {subsubsection}{Wiener noise}{64}{subsubsection*.38}
 \contentsline {subsubsection}{Poissonian noise}{64}{subsubsection*.39}
-\contentsline {subsubsection}{Jump noise}{64}{subsubsection*.40}
+\contentsline {subsubsection}{Jump noise}{65}{subsubsection*.40}
 \contentsline {subsection}{\numberline {5.4.11}Sequence Element}{65}{subsection.5.4.11}
 \contentsline {subsection}{\numberline {5.4.12}Filter element}{65}{subsection.5.4.12}
 \contentsline {subsection}{\numberline {5.4.13}Integrate element}{66}{subsection.5.4.13}
 \contentsline {subsubsection}{Operators and operator elements}{67}{subsubsection*.42}
-\contentsline {subsubsection}{Algorithms}{68}{subsubsection*.47}
+\contentsline {subsubsection}{Algorithms}{69}{subsubsection*.47}
 \contentsline {paragraph}{SI and SIC algorithms}{69}{paragraph*.48}
 \contentsline {paragraph}{Runge-Kutta algorithms}{69}{paragraph*.49}
-\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{69}{paragraph*.50}
-\contentsline {subsubsection}{Filters element}{70}{subsubsection*.51}
-\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{70}{subsection.5.4.14}
-\contentsline {subsection}{\numberline {5.4.15}Output element}{71}{subsection.5.4.15}
-\contentsline {subsubsection}{Sampling Group Element}{71}{subsubsection*.52}
-\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{72}{subsection.5.4.16}
-\contentsline {chapter}{\numberline {6}Advanced Topics}{73}{chapter.6}
-\contentsline {section}{\numberline {6.1}Importing data}{73}{section.6.1}
-\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{75}{section.6.2}
-\contentsline {subsection}{\numberline {6.2.1}Example 1}{76}{subsection.6.2.1}
-\contentsline {subsection}{\numberline {6.2.2}Example 2}{77}{subsection.6.2.2}
-\contentsline {subsection}{\numberline {6.2.3}Example 3}{77}{subsection.6.2.3}
-\contentsline {section}{\numberline {6.3}`Loose' \texttt {geometry\_matching\_mode}}{78}{section.6.3}
-\contentsline {section}{\numberline {6.4}Dimension aliases}{78}{section.6.4}
-\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{79}{chapter.7}
-\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{79}{section.7.1}
-\contentsline {section}{\numberline {7.2}Where can I get help?}{79}{section.7.2}
-\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{79}{section.7.3}
-\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{79}{section.7.4}
-\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{79}{section.7.5}
-\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{80}{section.7.6}
-\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{80}{section.7.7}
-\contentsline {section}{\numberline {7.8}Visual Editors}{80}{section.7.8}
-\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{81}{chapter.8}
-\contentsline {chapter}{\numberline {9}Optimisation Hints}{83}{chapter.9}
-\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{83}{section.9.1}
-\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{83}{subsection.9.1.1}
-\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{83}{subsection.9.1.2}
-\contentsline {section}{\numberline {9.2}Reduce code complexity}{83}{section.9.2}
-\contentsline {subsection}{\numberline {9.2.1}Use the Interaction Picture (IP) operator}{83}{subsection.9.2.1}
-\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{83}{subsection.9.2.2}
-\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{85}{subsection.9.2.3}
-\contentsline {section}{\numberline {9.3}Compiler and library tricks}{85}{section.9.3}
-\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{85}{subsection.9.3.1}
-\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{85}{subsection.9.3.2}
-\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{85}{subsection.9.3.3}
-\contentsline {subsection}{\numberline {9.3.4}OpenMP}{85}{subsection.9.3.4}
-\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{86}{subsection.9.3.5}
-\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{86}{section.9.4}
-\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{86}{subsection.9.4.1}
-\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{86}{subsection.9.4.2}
-\contentsline {chapter}{\numberline {10}xsil2graphics2}{87}{chapter.10}
-\contentsline {chapter}{\numberline {11}Developer Documentation}{89}{chapter.11}
-\contentsline {section}{\numberline {11.1}Test scripts}{89}{section.11.1}
-\contentsline {subsection}{\numberline {11.1.1}Testing element}{90}{subsection.11.1.1}
-\contentsline {subsection}{\numberline {11.1.2}command\_line element}{90}{subsection.11.1.2}
-\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{90}{subsection.11.1.3}
-\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{90}{subsection.11.1.4}
-\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{90}{subsection.11.1.5}
-\contentsline {section}{\numberline {11.2}Steps to update \texttt {XMDS} script validator (XML schema)}{90}{section.11.2}
-\contentsline {section}{\numberline {11.3}Directory layout}{90}{section.11.3}
-\contentsline {subsection}{\numberline {11.3.1}XMDS2's code and templates}{90}{subsection.11.3.1}
-\contentsline {subsection}{\numberline {11.3.2}Support files}{91}{subsection.11.3.2}
-\contentsline {chapter}{\numberline {12}Licensing}{93}{chapter.12}
-\contentsline {chapter}{\numberline {13}News}{95}{chapter.13}
-\contentsline {section}{\numberline {13.1}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{95}{section.13.1}
-\contentsline {section}{\numberline {13.2}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{95}{section.13.2}
-\contentsline {section}{\numberline {13.3}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{95}{section.13.3}
-\contentsline {section}{\numberline {13.4}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{96}{section.13.4}
-\contentsline {section}{\numberline {13.5}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{97}{section.13.5}
+\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{70}{paragraph*.50}
+\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{70}{paragraph*.51}
+\contentsline {subsubsection}{Filters element}{71}{subsubsection*.52}
+\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{71}{subsection.5.4.14}
+\contentsline {subsection}{\numberline {5.4.15}Output element}{72}{subsection.5.4.15}
+\contentsline {subsubsection}{Sampling Group Element}{72}{subsubsection*.53}
+\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{73}{subsection.5.4.16}
+\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{73}{section.5.5}
+\contentsline {section}{\numberline {5.6}Bulirsch-Stoer Algorithm}{74}{section.5.6}
+\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{75}{section.5.7}
+\contentsline {chapter}{\numberline {6}Advanced Topics}{77}{chapter.6}
+\contentsline {section}{\numberline {6.1}Importing data}{77}{section.6.1}
+\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{79}{section.6.2}
+\contentsline {subsection}{\numberline {6.2.1}Example 1}{80}{subsection.6.2.1}
+\contentsline {subsection}{\numberline {6.2.2}Example 2}{81}{subsection.6.2.2}
+\contentsline {subsection}{\numberline {6.2.3}Example 3}{81}{subsection.6.2.3}
+\contentsline {section}{\numberline {6.3}`Loose' \texttt {geometry\_matching\_mode}}{82}{section.6.3}
+\contentsline {section}{\numberline {6.4}Dimension aliases}{82}{section.6.4}
+\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{83}{chapter.7}
+\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{83}{section.7.1}
+\contentsline {section}{\numberline {7.2}Where can I get help?}{83}{section.7.2}
+\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{83}{section.7.3}
+\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{83}{section.7.4}
+\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{83}{section.7.5}
+\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{84}{section.7.6}
+\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{84}{section.7.7}
+\contentsline {section}{\numberline {7.8}Visual Editors}{84}{section.7.8}
+\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{85}{chapter.8}
+\contentsline {chapter}{\numberline {9}Optimisation Hints}{87}{chapter.9}
+\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{87}{section.9.1}
+\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{87}{subsection.9.1.1}
+\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{87}{subsection.9.1.2}
+\contentsline {section}{\numberline {9.2}Reduce code complexity}{87}{section.9.2}
+\contentsline {subsection}{\numberline {9.2.1}Optimising with the Interaction Picture (IP) operator}{87}{subsection.9.2.1}
+\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{88}{subsection.9.2.2}
+\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{89}{subsection.9.2.3}
+\contentsline {section}{\numberline {9.3}Compiler and library tricks}{89}{section.9.3}
+\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{89}{subsection.9.3.1}
+\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{89}{subsection.9.3.2}
+\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{90}{subsection.9.3.3}
+\contentsline {subsection}{\numberline {9.3.4}OpenMP}{90}{subsection.9.3.4}
+\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{90}{subsection.9.3.5}
+\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{90}{section.9.4}
+\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{90}{subsection.9.4.1}
+\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{91}{subsection.9.4.2}
+\contentsline {chapter}{\numberline {10}xsil2graphics2}{93}{chapter.10}
+\contentsline {chapter}{\numberline {11}Developer Documentation}{95}{chapter.11}
+\contentsline {section}{\numberline {11.1}Test scripts}{95}{section.11.1}
+\contentsline {subsection}{\numberline {11.1.1}Testing element}{96}{subsection.11.1.1}
+\contentsline {subsection}{\numberline {11.1.2}command\_line element}{96}{subsection.11.1.2}
+\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{96}{subsection.11.1.3}
+\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{96}{subsection.11.1.4}
+\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{96}{subsection.11.1.5}
+\contentsline {section}{\numberline {11.2}XMDS Documentation}{96}{section.11.2}
+\contentsline {section}{\numberline {11.3}How to update \texttt {XMDS2} script validator (XML schema)}{98}{section.11.3}
+\contentsline {section}{\numberline {11.4}How to introduce a new integrator Stepper into the XMDS2 environment}{101}{section.11.4}
+\contentsline {section}{\numberline {11.5}Logical breakdown of XMDS2 Parsing Process}{102}{section.11.5}
+\contentsline {subsection}{\numberline {11.5.1}Overall process for parsing XML file in XMDS2}{104}{subsection.11.5.1}
+\contentsline {subsection}{\numberline {11.5.2}parser2.py parses XML file (Sub process 3)}{107}{subsection.11.5.2}
+\contentsline {subsection}{\numberline {11.5.3}Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}{110}{subsection.11.5.3}
+\contentsline {subsection}{\numberline {11.5.4}Parse Top Level Sequence elements (Sub process 3.4.11)}{111}{subsection.11.5.4}
+\contentsline {subsection}{\numberline {11.5.5}Parse Integrate Element (Sub process 3.4.11.2)}{112}{subsection.11.5.5}
+\contentsline {section}{\numberline {11.6}Directory layout}{113}{section.11.6}
+\contentsline {subsection}{\numberline {11.6.1}XMDS2's code and templates}{113}{subsection.11.6.1}
+\contentsline {subsection}{\numberline {11.6.2}Support files}{114}{subsection.11.6.2}
+\contentsline {chapter}{\numberline {12}Licensing}{115}{chapter.12}
+\contentsline {section}{\numberline {12.1}GNU General Public License}{115}{section.12.1}
+\contentsline {section}{\numberline {12.2}GNU Free Documentation License}{118}{section.12.2}
+\contentsline {chapter}{\numberline {13}News}{125}{chapter.13}
+\contentsline {section}{\numberline {13.1}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.1}
+\contentsline {section}{\numberline {13.2}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{125}{section.13.2}
+\contentsline {section}{\numberline {13.3}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.3}
+\contentsline {section}{\numberline {13.4}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.4}
+\contentsline {section}{\numberline {13.5}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.5}
+\contentsline {section}{\numberline {13.6}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.6}
+\contentsline {chapter}{Index}{129}{section*.55}
diff --git a/documentation/licensing.html b/documentation/licensing.html
index d4ecb47..f143c68 100644
--- a/documentation/licensing.html
+++ b/documentation/licensing.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Licensing — XMDS2 2.1.4 documentation</title>
+    <title>Licensing — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,9 +46,196 @@
           <div class="body">
             
   <div class="section" id="licensing">
-<span id="id1"></span><h1>Licensing<a class="headerlink" href="#licensing" title="Permalink to this headline">¶</a></h1>
-<p>XMDS2 is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install. You can also find it here: <a class="reference external" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
-<p>We encourage people to submit patches to us that extend XMDS2’s functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license.</p>
+<span id="index-0"></span><span id="id1"></span><h1>Licensing<a class="headerlink" href="#licensing" title="Permalink to this headline">¶</a></h1>
+<p>The XMDS2 codebase is licensed under the GPL version 2 license, which can be found in the COPYING file in the root directory of your XMDS install.</p>
+<p>The XMDS2 documentation is licensed under the GNU Free Documentation License.</p>
+<p>We encourage people to submit patches to us that extend XMDS2’s functionality and fix bugs. If you do send us a patch, we do not require copyright assignment, but please include a statement saying you agree to license your code under the GPL v2 license, or under the GNU FDL license if your patch contributes to the documentation.</p>
+<p>Both licenses can be found at <a class="reference external" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>, but we also include them below for convenience.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+<div class="line"><br /></div>
+</div>
+<div class="section" id="gnu-general-public-license">
+<span id="index-1"></span><h2>GNU General Public License<a class="headerlink" href="#gnu-general-public-license" title="Permalink to this headline">¶</a></h2>
+<p><strong>GNU GENERAL PUBLIC LICENSE</strong></p>
+<p>Version 2, June 1991</p>
+<p>Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA</p>
+<p>Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</p>
+<p><strong>Preamble</strong></p>
+<p>The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU  [...]
+<p>When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.</p>
+<p>To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.</p>
+<p>For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.</p>
+<p>We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.</p>
+<p>Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations.</p>
+<p>Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.</p>
+<p>The precise terms and conditions for copying, distribution and modification follow.</p>
+<p><strong>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</strong></p>
+<ol class="arabic simple" start="0">
+<li>This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated [...]
+</ol>
+<p>Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.</p>
+<ol class="arabic simple">
+<li>You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.</li>
+</ol>
+<p>You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.</p>
+<ol class="arabic" start="2">
+<li><p class="first">You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:</p>
+<blockquote>
+<div><ol class="loweralpha simple">
+<li>You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.</li>
+<li>You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.</li>
+<li>If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is  [...]
+</ol>
+</div></blockquote>
+</li>
+</ol>
+<p>These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whos [...]
+<p>Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.</p>
+<p>In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.</p>
+<ol class="arabic" start="3">
+<li><p class="first">You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:</p>
+<blockquote>
+<div><ol class="loweralpha simple">
+<li>Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,</li>
+<li>Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,</li>
+<li>Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)</li>
+</ol>
+</div></blockquote>
+</li>
+</ol>
+<p>The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major [...]
+<p>If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.</p>
+<ol class="arabic simple" start="4">
+<li>You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.</li>
+<li>You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works b [...]
+<li>Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.</li>
+<li>If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not dis [...]
+</ol>
+<p>If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.</p>
+<p>It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/d [...]
+<p>This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.</p>
+<ol class="arabic simple" start="8">
+<li>If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.</li>
+<li>The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.</li>
+</ol>
+<p>Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.</p>
+<ol class="arabic simple" start="10">
+<li>If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.</li>
+</ol>
+<p>NO WARRANTY</p>
+<ol class="arabic simple" start="11">
+<li>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM I [...]
+<li>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO  [...]
+</ol>
+<div class="line-block">
+<div class="line"><br /></div>
+<div class="line"><br /></div>
+</div>
+</div>
+<div class="section" id="gnu-free-documentation-license">
+<span id="index-2"></span><h2>GNU Free Documentation License<a class="headerlink" href="#gnu-free-documentation-license" title="Permalink to this headline">¶</a></h2>
+<p><strong>GNU Free Documentation License</strong></p>
+<p>Version 1.3, 3 November 2008</p>
+<p>Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <<a class="reference external" href="http://fsf.org/">http://fsf.org/</a>></p>
+<p>Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.</p>
+<ol class="arabic simple" start="0">
+<li>PREAMBLE</li>
+</ol>
+<p>The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.</p>
+<p>This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.</p>
+<p>We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
+1. APPLICABILITY AND DEFINITIONS</p>
+<p>This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if  [...]
+<p>A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.</p>
+<p>A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical  [...]
+<p>The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.</p>
+<p>The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.</p>
+<p>A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to tex [...]
+<p>Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools a [...]
+<p>The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.</p>
+<p>The “publisher” means any person or entity that distributes copies of the Document to the public.</p>
+<p>A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a  [...]
+<p>The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
+2. VERBATIM COPYING</p>
+<p>You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exch [...]
+<p>You may also lend copies, under the same conditions stated above, and you may publicly display copies.
+3. COPYING IN QUANTITY</p>
+<p>If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full t [...]
+<p>If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.</p>
+<p>If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when  [...]
+<p>It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
+4. MODIFICATIONS</p>
+<p>You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:</p>
+<blockquote>
+<div><ol class="upperalpha simple">
+<li>Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.</li>
+<li>List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.</li>
+<li>State on the Title page the name of the publisher of the Modified Version, as the publisher.</li>
+<li>Preserve all the copyright notices of the Document.</li>
+<li>Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.</li>
+<li>Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.</li>
+<li>Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.</li>
+<li>Include an unaltered copy of this License.</li>
+<li>Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.</li>
+<li>Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.</li>
+<li>For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.</li>
+<li>Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.</li>
+<li>Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.</li>
+<li>Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.</li>
+<li>Preserve any Warranty Disclaimers.</li>
+</ol>
+</div></blockquote>
+<p>If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.</p>
+<p>You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add  [...]
+<p>The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
+5. COMBINING DOCUMENTS</p>
+<p>You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.</p>
+<p>The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections i [...]
+<p>In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements”.
+6. COLLECTIONS OF DOCUMENTS</p>
+<p>You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.</p>
+<p>You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
+7. AGGREGATION WITH INDEPENDENT WORKS</p>
+<p>A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themsel [...]
+<p>If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
+8. TRANSLATION</p>
+<p>Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers [...]
+<p>If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
+9. TERMINATION</p>
+<p>You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.</p>
+<p>However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.</p>
+<p>Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.</p>
+<p>Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.
+10. FUTURE REVISIONS OF THIS LICENSE</p>
+<p>The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See <a class="reference external" href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.</p>
+<p>Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever publ [...]
+11. RELICENSING</p>
+<p>“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.</p>
+<p>“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.</p>
+<p>“Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.</p>
+<p>An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.</p>
+<p>The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.
+ADDENDUM: How to use this License for your documents</p>
+<p>To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:</p>
+<blockquote>
+<div>Copyright (C)  YEAR  YOUR NAME.
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+A copy of the license is included in the section entitled “GNU
+Free Documentation License”.</div></blockquote>
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with … Texts.” line with this:</p>
+<blockquote>
+<div>with the Invariant Sections being LIST THEIR TITLES, with the
+Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.</div></blockquote>
+<p>If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.</p>
+<p>If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.</p>
+</div>
 </div>
 
 
@@ -58,6 +247,15 @@
             <p class="logo"><a href="index.html">
               <img class="logo" src="_static/xmds_logo.png" alt="Logo"/>
             </a></p>
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Licensing</a><ul>
+<li><a class="reference internal" href="#gnu-general-public-license">GNU General Public License</a></li>
+<li><a class="reference internal" href="#gnu-free-documentation-license">GNU Free Documentation License</a></li>
+</ul>
+</li>
+</ul>
+
 <div id="searchbox" style="display: none">
   <h3>Quick search</h3>
     <form class="search" action="search.html" method="get">
@@ -81,13 +279,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/news.html b/documentation/news.html
index 4f8e895..0a90c9e 100644
--- a/documentation/news.html
+++ b/documentation/news.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>News — XMDS2 2.1.4 documentation</title>
+    <title>News — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,24 @@
           <div class="body">
             
   <div class="section" id="news">
-<span id="id1"></span><h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<span id="index-0"></span><span id="id1"></span><h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
+<h2>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h2>
+<p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
+<ul class="simple">
+<li>Separated IP operators.  This is a significant performance optimisation (~30%) for problems with two or more dimensions.  It requires separating IP operators of the form “f(kx) + g(ky)” (e.g. kinetic energy for quantum physics) into <em>two</em> IP operators and explicitly setting the dimensions=”x” and dimensions=”y” attributes on each.  See <a class="reference internal" href="optimisation_hints.html#optimisationhints"><em>Optimisation hints</em>< [...]
+<li>Significant speed optimisations for adaptive integrators with IP operators (past IP operator calculations are re-used if the time-step hasn’t changed).</li>
+<li>The “constant” attribute for IP/EX operators is now unnecessary and considered advanced usage.  If you don’t know whether to specify constant=”yes” or constant=”no”, don’t specify either.</li>
+<li>The xsil2graphics2 data exporter now supports Matlab, Octave, Mathematica and Python in all output formats, as well as R (HDF5 only).  The Matlab/Octave scripts are now identical.  A script generated for one will work for the other.</li>
+<li>Bessel-Neumann transforms have been implemented.  Set transform=”bessel-neumann” if you want a Bessel (Hankel) transform but have zero derivative at the boundary (Neumann boundary conditions) instead of zero function value (Dirichlet boundary conditions).  If you don’t care about your boundary condition, stick with the “bessel” transform.</li>
+<li>A Bulirisch-Stoer integrator.  This can be useful for problems which are very smooth as you can use an arbitrarily high order algorithm.  Specify algorithm=”RE” and extrapolations=”5” to have a 10th order integrator.  Currently this is fixed-step only.</li>
+<li>“adaptive-mpi-multipath” driver.  This implements a load scheduler that better spreads the work across different CPUs when different paths can take very different amounts of time. Also useful in heterogeneous clusters.</li>
+<li>XMDS2 is currently undergoing acceptance into Debian linux and will soon be able to be installed via the package manager. In the meantime you can find it in the private APT repository at <a class="reference external" href="http://xmds.laboissiere.net">http://xmds.laboissiere.net</a>.</li>
+<li>A number of bug fixes.</li>
+<li>Expanded and improved documentation.</li>
+</ul>
+<p>Many thanks to all who contributed to this release!</p>
+</div>
 <div class="section" id="xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">
 <h2>XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)<a class="headerlink" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013" title="Permalink to this headline">¶</a></h2>
 <p>The XMDS 2.1.4 update contains many new improvements and bugfixes:</p>
@@ -149,6 +168,7 @@
   <h3><a href="index.html">Table Of Contents</a></h3>
   <ul>
 <li><a class="reference internal" href="#">News</a><ul>
+<li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
@@ -181,13 +201,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/news.html b/documentation/news_content.html
similarity index 77%
copy from documentation/news.html
copy to documentation/news_content.html
index 4f8e895..96ad578 100644
--- a/documentation/news.html
+++ b/documentation/news_content.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>News — XMDS2 2.1.4 documentation</title>
+    <title>News — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,24 @@
           <div class="body">
             
   <div class="section" id="news">
-<span id="id1"></span><h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
+<h2>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h2>
+<p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
+<ul class="simple">
+<li>Separated IP operators.  This is a significant performance optimisation (~30%) for problems with two or more dimensions.  It requires separating IP operators of the form “f(kx) + g(ky)” (e.g. kinetic energy for quantum physics) into <em>two</em> IP operators and explicitly setting the dimensions=”x” and dimensions=”y” attributes on each.  See <a class="reference internal" href="optimisation_hints.html#optimisationhints"><em>Optimisation hints</em>< [...]
+<li>Significant speed optimisations for adaptive integrators with IP operators (past IP operator calculations are re-used if the time-step hasn’t changed).</li>
+<li>The “constant” attribute for IP/EX operators is now unnecessary and considered advanced usage.  If you don’t know whether to specify constant=”yes” or constant=”no”, don’t specify either.</li>
+<li>The xsil2graphics2 data exporter now supports Matlab, Octave, Mathematica and Python in all output formats, as well as R (HDF5 only).  The Matlab/Octave scripts are now identical.  A script generated for one will work for the other.</li>
+<li>Bessel-Neumann transforms have been implemented.  Set transform=”bessel-neumann” if you want a Bessel (Hankel) transform but have zero derivative at the boundary (Neumann boundary conditions) instead of zero function value (Dirichlet boundary conditions).  If you don’t care about your boundary condition, stick with the “bessel” transform.</li>
+<li>A Bulirisch-Stoer integrator.  This can be useful for problems which are very smooth as you can use an arbitrarily high order algorithm.  Specify algorithm=”RE” and extrapolations=”5” to have a 10th order integrator.  Currently this is fixed-step only.</li>
+<li>“adaptive-mpi-multipath” driver.  This implements a load scheduler that better spreads the work across different CPUs when different paths can take very different amounts of time. Also useful in heterogeneous clusters.</li>
+<li>XMDS2 is currently undergoing acceptance into Debian linux and will soon be able to be installed via the package manager. In the meantime you can find it in the private APT repository at <a class="reference external" href="http://xmds.laboissiere.net">http://xmds.laboissiere.net</a>.</li>
+<li>A number of bug fixes.</li>
+<li>Expanded and improved documentation.</li>
+</ul>
+<p>Many thanks to all who contributed to this release!</p>
+</div>
 <div class="section" id="xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">
 <h2>XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)<a class="headerlink" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013" title="Permalink to this headline">¶</a></h2>
 <p>The XMDS 2.1.4 update contains many new improvements and bugfixes:</p>
@@ -149,6 +168,7 @@
   <h3><a href="index.html">Table Of Contents</a></h3>
   <ul>
 <li><a class="reference internal" href="#">News</a><ul>
+<li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
@@ -181,13 +201,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/objects.inv b/documentation/objects.inv
index f80b0e8..cf97f78 100644
Binary files a/documentation/objects.inv and b/documentation/objects.inv differ
diff --git a/documentation/optimisation_hints.html b/documentation/optimisation_hints.html
index 2700258..a4c254d 100644
--- a/documentation/optimisation_hints.html
+++ b/documentation/optimisation_hints.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Optimisation Hints — XMDS2 2.1.4 documentation</title>
+    <title>Optimisation Hints — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,7 @@
           <div class="body">
             
   <div class="section" id="optimisation-hints">
-<h1>Optimisation Hints<a class="headerlink" href="#optimisation-hints" title="Permalink to this headline">¶</a></h1>
+<span id="optimisationhints"></span><h1>Optimisation Hints<a class="headerlink" href="#optimisation-hints" title="Permalink to this headline">¶</a></h1>
 <p>There are a variety of things you can do to make your simulations run faster.</p>
 <div class="section" id="geometry-and-transform-based-tricks">
 <h2>Geometry and transform-based tricks<a class="headerlink" href="#geometry-and-transform-based-tricks" title="Permalink to this headline">¶</a></h2>
@@ -60,10 +62,40 @@
 <div class="section" id="reduce-code-complexity">
 <h2>Reduce code complexity<a class="headerlink" href="#reduce-code-complexity" title="Permalink to this headline">¶</a></h2>
 <p>Avoid transcendental functions like <span class="math">\(\sin(x)\)</span> or <span class="math">\(\exp(x)\)</span> in inner loops. Not all operations are made equal, use multiplication over division.</p>
-<div class="section" id="use-the-interaction-picture-ip-operator">
-<h3>Use the Interaction Picture (IP) operator<a class="headerlink" href="#use-the-interaction-picture-ip-operator" title="Permalink to this headline">¶</a></h3>
-<p>Just do it. Only use the EX operator when you have to. If you must use the EX operator, consider making it <tt class="docutils literal"><span class="pre">constant="no"</span></tt>. It uses less memory.
-When you use the IP operator, make sure you know what it’s doing.  Do not pre- or post-multiply that term in your equations.</p>
+<div class="section" id="optimising-with-the-interaction-picture-ip-operator">
+<span id="optimisingipoperators"></span><h3>Optimising with the Interaction Picture (IP) operator<a class="headerlink" href="#optimising-with-the-interaction-picture-ip-operator" title="Permalink to this headline">¶</a></h3>
+<p>You should use the IP operator when you can. Only use the EX operator when you have to. If you must use the EX operator, consider making it <tt class="docutils literal"><span class="pre">constant="no"</span></tt>. It uses less memory.
+When you use the IP operator, make sure you know what it’s doing.  Do not pre- or post-multiply that term in your equations, XMDS will do a fairly thorough check to see you aren’t using the IP operator improperly, but it is possible to confuse XMDS’s check.</p>
+<p>If your simulation uses two or more dimensions, check to see if your IP operator is separable, i.e. can be written in the form <span class="math">\(f(kx) + g(ky)\)</span> (this is frequently possible in atom-optics simulations). If your IP operator is separable, create separate IP operators for each dimension.  This provides a significant speedup (~30%) for simulations using an adaptive integrator.  For example, instead of using the IP operator:</p>
+<div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span><span class="nt">></span>
+  <span class="nt"><operator_names></span>T<span class="nt"></operator_names></span>
+  <span class="cp"><![CDATA[</span>
+    <span class="n">T</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="mf">0.5</span><span class="o">*</span><span class="n">hbar</span><span class="o">/</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span> <span class="o">+</span> <span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">) [...]
+  <span class="cp">]]></span>
+<span class="nt"></operator></span>
+<span class="cp"><![CDATA[</span>
+  <span class="n">dpsi_dt</span> <span class="o">=</span> <span class="n">T</span><span class="p">[</span><span class="n">psi</span><span class="p">]</span> <span class="o">+</span> <span class="cm">/* other terms */</span>
+<span class="cp">]]></span>
+</pre></div>
+</div>
+<p>replace it with the pair of IP operators:</p>
+<div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">dimensions=</span><span class="s">"x"</span><span class="nt">></span>
+  <span class="nt"><operator_names></span>Tx<span class="nt"></operator_names></span>
+  <span class="cp"><![CDATA[</span>
+    <span class="n">Tx</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="mf">0.5</span><span class="o">*</span><span class="n">hbar</span><span class="o">/</span><span class="n">M</span><span class="o">*</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span><span class="p">;</span>
+  <span class="cp">]]></span>
+<span class="nt"></operator></span>
+<span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">dimensions=</span><span class="s">"y"</span><span class="nt">></span>
+  <span class="nt"><operator_names></span>Ty<span class="nt"></operator_names></span>
+  <span class="cp"><![CDATA[</span>
+    <span class="n">Ty</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="mf">0.5</span><span class="o">*</span><span class="n">hbar</span><span class="o">/</span><span class="n">M</span><span class="o">*</span><span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">;</span>
+  <span class="cp">]]></span>
+<span class="nt"></operator></span>
+<span class="cp"><![CDATA[</span>
+  <span class="n">dpsi_dt</span> <span class="o">=</span> <span class="n">Tx</span><span class="p">[</span><span class="n">psi</span><span class="p">]</span> <span class="o">+</span> <span class="n">Ty</span><span class="p">[</span><span class="n">psi</span><span class="p">]</span> <span class="o">+</span> <span class="cm">/* other terms */</span>
+<span class="cp">]]></span>
+</pre></div>
+</div>
 <p>When using the IP operator, check if your operator is purely real or purely imaginary.  If real, (e.g. <tt class="docutils literal"><span class="pre">L</span> <span class="pre">=</span> <span class="pre">-0.5*kx</span> <span class="pre">*</span> <span class="pre">kx;</span></tt>), then add the attribute <tt class="docutils literal"><span class="pre">type="real"</span></tt> to the <tt class="docutils literal"><span class="pre"><operator</span> <span class="pre">kind=" [...]
 </div>
 <div class="section" id="consider-writing-the-evolution-in-spectral-basis">
@@ -205,7 +237,7 @@ When you use the IP operator, make sure you know what it’s doing.  Do not
 </ul>
 </li>
 <li><a class="reference internal" href="#reduce-code-complexity">Reduce code complexity</a><ul>
-<li><a class="reference internal" href="#use-the-interaction-picture-ip-operator">Use the Interaction Picture (IP) operator</a></li>
+<li><a class="reference internal" href="#optimising-with-the-interaction-picture-ip-operator">Optimising with the Interaction Picture (IP) operator</a></li>
 <li><a class="reference internal" href="#consider-writing-the-evolution-in-spectral-basis">Consider writing the evolution in spectral basis</a></li>
 <li><a class="reference internal" href="#don-t-recalculate-things-you-don-t-have-to">Don’t recalculate things you don’t have to</a></li>
 </ul>
@@ -250,13 +282,13 @@ When you use the IP operator, make sure you know what it’s doing.  Do not
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/reference_elements.html b/documentation/reference_elements.html
index 18853c6..4cdb194 100644
--- a/documentation/reference_elements.html
+++ b/documentation/reference_elements.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>XMDS2 script elements — XMDS2 2.1.4 documentation</title>
+    <title>XMDS2 script elements — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -43,11 +45,11 @@
         <div class="bodywrapper">
           <div class="body">
             
-  <style> .attributes-code {color:#0000BB; font-family:'monospace'; font-style:italic} </style><style> .attributes-standard {color:#0000BB; font-family:'monospace'; font-style:italic; font-size:smaller} </style><style> .smaller-font {font-size:smaller} </style><div class="section" id="xmds2-script-elements">
-<span id="referenceelements"></span><h1>XMDS2 script elements<a class="headerlink" href="#xmds2-script-elements" title="Permalink to this headline">¶</a></h1>
+  <div class="section" id="xmds2-script-elements">
+<span id="referenceelements"></span><span id="index-0"></span><h1>XMDS2 script elements<a class="headerlink" href="#xmds2-script-elements" title="Permalink to this headline">¶</a></h1>
 <p>This section outlines all the elements and options available in an XMDS2 script.  This is very much a <strong>work in progress</strong>, beginning with placeholders in most cases, as we have prioritised the tutorials for new users.  One of the most productive ways that non-developer veterans can contribute to the project is to help develop this documentation.</p>
 <div class="section" id="simulation-element">
-<span id="simulationelement"></span><h2>Simulation element<a class="headerlink" href="#simulation-element" title="Permalink to this headline">¶</a></h2>
+<span id="simulationelement"></span><span id="index-1"></span><h2>Simulation element<a class="headerlink" href="#simulation-element" title="Permalink to this headline">¶</a></h2>
 <p>The <tt class="docutils literal"><span class="pre"><simulation></span></tt> element is the single top level element in an XMDS2 simulation, and contains all the other elements.  All XMDS scripts must contain exactly one simulation element, and it must have the <tt class="docutils literal"><span class="pre">xmds-version="2"</span></tt> attribute defined.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -57,7 +59,7 @@
 </div>
 </div>
 <div class="section" id="name-element">
-<span id="nameelement"></span><h2>Name element<a class="headerlink" href="#name-element" title="Permalink to this headline">¶</a></h2>
+<span id="nameelement"></span><span id="index-2"></span><h2>Name element<a class="headerlink" href="#name-element" title="Permalink to this headline">¶</a></h2>
 <p>The name of your simulation. This element is optional, but recommended. If it is set, it will be the name of the executable file generated from this script. It will also be the name of the output file (with an appropriate extension) if the <tt class="docutils literal"><span class="pre">filename</span></tt> attribute is not given a value in the <tt class="docutils literal"><span class="pre"><output></span></tt> element.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><name></span> funky_solver <span class="nt"></name></span>
@@ -65,7 +67,7 @@
 </div>
 </div>
 <div class="section" id="author-element">
-<span id="authorelement"></span><h2>Author element<a class="headerlink" href="#author-element" title="Permalink to this headline">¶</a></h2>
+<span id="authorelement"></span><span id="index-3"></span><h2>Author element<a class="headerlink" href="#author-element" title="Permalink to this headline">¶</a></h2>
 <p>The author(s) of this script. This element is optional, but can be useful if you need to find the person who has written an incomprehensible script and thinks comments are for the weak.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><author></span> Ima Mollusc <span class="nt"></author></span>
@@ -73,7 +75,7 @@
 </div>
 </div>
 <div class="section" id="description-element">
-<span id="descriptionelement"></span><h2>Description element<a class="headerlink" href="#description-element" title="Permalink to this headline">¶</a></h2>
+<span id="descriptionelement"></span><span id="index-4"></span><h2>Description element<a class="headerlink" href="#description-element" title="Permalink to this headline">¶</a></h2>
 <p>A description of what the simulation does. Optional, but recommended, in case you (or someone else) has to revist the script at some distant point in the future.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><description></span>
@@ -86,7 +88,7 @@
 </div>
 </div>
 <div class="section" id="features-elements">
-<span id="featureselement"></span><h2>Features Elements<a class="headerlink" href="#features-elements" title="Permalink to this headline">¶</a></h2>
+<span id="featureselement"></span><span id="index-5"></span><h2>Features Elements<a class="headerlink" href="#features-elements" title="Permalink to this headline">¶</a></h2>
 <p>Features elements are where simulation-wide options are specified. The <tt class="docutils literal"><span class="pre"><features></span></tt> element wraps one or more elements describing features. There are many possible feature elements. Currently, a full list of the features supported is:</p>
 <blockquote>
 <div><ul class="simple">
@@ -117,7 +119,7 @@
 </pre></div>
 </div>
 <div class="section" id="arguments-element">
-<span id="argumentselement"></span><h3>Arguments Element<a class="headerlink" href="#arguments-element" title="Permalink to this headline">¶</a></h3>
+<span id="argumentselement"></span><span id="index-6"></span><h3>Arguments Element<a class="headerlink" href="#arguments-element" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><arguments></span></tt> element is optional, and allows defining variables that can be passed to the simulation at run time. These variables are then globally accessible throughout the simulation script. Each of the variables must be defined in an <tt class="docutils literal"><span class="pre"><argument></span></tt> element (see below). The variables can then be passed to the simulation executable as options on the command [...]
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><name></span> arguments_test <span class="nt"></name></span>
 <span class="nt"><features></span>
@@ -150,24 +152,24 @@
 </pre></div>
 </div>
 <div class="section" id="argument-element">
-<span id="argumentelement"></span><h4>Argument element<a class="headerlink" href="#argument-element" title="Permalink to this headline">¶</a></h4>
-<p>Each <tt class="docutils literal"><span class="pre"><argument></span></tt> element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: <tt class="docutils literal"><span class="pre">name</span></tt>, <tt class="docutils literal"><span class="pre">type</span></tt>, and <tt class="docutils literal"><span class="pre">default_value</span></tt>. <tt class="docutils literal"><span class="pre">name</span></t [...]
+<span id="argumentelement"></span><span id="index-7"></span><h4>Argument element<a class="headerlink" href="#argument-element" title="Permalink to this headline">¶</a></h4>
+<p id="index-8">Each <tt class="docutils literal"><span class="pre"><argument></span></tt> element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: <tt class="docutils literal"><span class="pre">name</span></tt>, <tt class="docutils literal"><span class="pre">type</span></tt>, and <tt class="docutils literal"><span class="pre">default_value</span></tt>. <tt class="docutils literal"><span class="pre">n [...]
 </div>
 </div>
 <div class="section" id="auto-vectorise-element">
-<span id="autovectorise"></span><h3>Auto_vectorise element<a class="headerlink" href="#auto-vectorise-element" title="Permalink to this headline">¶</a></h3>
+<span id="autovectorise"></span><span id="index-9"></span><h3>Auto_vectorise element<a class="headerlink" href="#auto-vectorise-element" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><auto_vectorise</span> <span class="pre">/></span></tt> feature attempts to activate automatic vectorisation for large loops, if it is available in the compiler.  This should make some simulations go faster.</p>
 </div>
 <div class="section" id="benchmark">
-<span id="id1"></span><h3>Benchmark<a class="headerlink" href="#benchmark" title="Permalink to this headline">¶</a></h3>
+<span id="index-10"></span><span id="id1"></span><h3>Benchmark<a class="headerlink" href="#benchmark" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><benchmark</span> <span class="pre">/></span></tt> feature includes a timing routine in the generated code, so that it is possible to see how long the simulations take to run.</p>
 </div>
 <div class="section" id="bing">
-<span id="id2"></span><h3>Bing<a class="headerlink" href="#bing" title="Permalink to this headline">¶</a></h3>
+<span id="index-11"></span><span id="id2"></span><h3>Bing<a class="headerlink" href="#bing" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><bing</span> <span class="pre">/></span></tt> feature causes the simulation to make an invigorating sound when the simulation finishes executing.</p>
 </div>
 <div class="section" id="c-flags">
-<span id="cflags"></span><h3>C Flags<a class="headerlink" href="#c-flags" title="Permalink to this headline">¶</a></h3>
+<span id="cflags"></span><span id="index-12"></span><h3>C Flags<a class="headerlink" href="#c-flags" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><cflags></span></tt> feature allows extra flags to be passed to the compiler.  This can be useful for optimisation, and also using specific external libraries.  The extra options to be passed are defined with a ‘CDATA’ block.  The compile options can be made visible by running XMDS2 either with the “-v” (verbose) option, or the “-g” (debug) option.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><cflags></span>
@@ -179,7 +181,7 @@
 </div>
 </div>
 <div class="section" id="chunked-output">
-<span id="chunkedoutput"></span><h3>Chunked Output<a class="headerlink" href="#chunked-output" title="Permalink to this headline">¶</a></h3>
+<span id="chunkedoutput"></span><span id="index-13"></span><h3>Chunked Output<a class="headerlink" href="#chunked-output" title="Permalink to this headline">¶</a></h3>
 <p>By default, XMDS2 keeps the contents of all output moment groups in memory until the end of the simulation when they are written to the output file.  This can be a problem if your simulation creates a very large amount of output.  <tt class="docutils literal"><span class="pre"><chunked_output</span> <span class="pre">/></span></tt> causes the simulation to save the output data in chunks as the simulation progresses.  For some simulations this can significantly reduce the amount  [...]
 <p>Limitations (XMDS will give you an error if you violate any of these):</p>
 <ul class="simple">
@@ -197,11 +199,11 @@
 </div>
 </div>
 <div class="section" id="diagnostics">
-<span id="id3"></span><h3>Diagnostics<a class="headerlink" href="#diagnostics" title="Permalink to this headline">¶</a></h3>
+<span id="index-14"></span><span id="id3"></span><h3>Diagnostics<a class="headerlink" href="#diagnostics" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><diagnostics</span> <span class="pre">/></span></tt> feature causes a simulation to output more information as it executes.  This should be useful when a simulation is dying / giving bad results to help diagnose the cause.  Currently, it largely outputs step error information.</p>
 </div>
 <div class="section" id="error-check">
-<span id="errorcheck"></span><h3>Error Check<a class="headerlink" href="#error-check" title="Permalink to this headline">¶</a></h3>
+<span id="errorcheck"></span><span id="index-15"></span><h3>Error Check<a class="headerlink" href="#error-check" title="Permalink to this headline">¶</a></h3>
 <p>It’s often important to know whether you’ve got errors.  This feature runs each integration twice: once with the specified error tolerance or defined lattice spacing in the propagation dimension, and then again with half the lattice spacing, or an equivalently lower error tolerance.  Each component of the output then shows the difference between these two integrations as an estimate of the error.  This feature is particularly useful when integrating stochastic equations, a [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -213,19 +215,19 @@
 </div>
 </div>
 <div class="section" id="halt-non-finite">
-<span id="haltnonfinite"></span><h3>Halt_Non_Finite<a class="headerlink" href="#halt-non-finite" title="Permalink to this headline">¶</a></h3>
+<span id="haltnonfinite"></span><span id="index-16"></span><h3>Halt_Non_Finite<a class="headerlink" href="#halt-non-finite" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><halt_non_finite</span> <span class="pre">/></span></tt> feature is used to stop computations from continuing to run after the vectors stop having numerical values.  This can occur when a number is too large to represent numerically, or when an illegal operation occurs.  Processing variables with non-numerical values is usually much slower than normal processing, and the results are meaningless.  Of course, there is a small cost [...]
 </div>
 <div class="section" id="fftw-element">
-<span id="fftw"></span><h3>fftw element<a class="headerlink" href="#fftw-element" title="Permalink to this headline">¶</a></h3>
-<p>The <tt class="docutils literal"><span class="pre"><fftw</span> <span class="pre">\></span></tt> feature can be used to pass options to the <a class="reference external" href="http://fftw.org">Fast Fourier Transform library</a> used by XMDS.  This library tests algorithms on each architecture to determine the fastest method of solving each problem.  Typically this costs very little overhead, as the results of all previous tests are stored in the directory “~/.xmds/wisdom&# [...]
+<span id="fftw"></span><span id="index-17"></span><h3>fftw element<a class="headerlink" href="#fftw-element" title="Permalink to this headline">¶</a></h3>
+<p id="index-18">The <tt class="docutils literal"><span class="pre"><fftw</span> <span class="pre">\></span></tt> feature can be used to pass options to the <a class="reference external" href="http://fftw.org">Fast Fourier Transform library</a> used by XMDS.  This library tests algorithms on each architecture to determine the fastest method of solving each problem.  Typically this costs very little overhead, as the results of all previous tests are stored in the directory “~/ [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><fftw</span> <span class="na">plan=</span><span class="s">"patient"</span> <span class="na">threads=</span><span class="s">"3"</span> <span class="nt">/></span>
 </pre></div>
 </div>
 </div>
 <div class="section" id="globals">
-<span id="id4"></span><h3>Globals<a class="headerlink" href="#globals" title="Permalink to this headline">¶</a></h3>
+<span id="index-19"></span><span id="id4"></span><h3>Globals<a class="headerlink" href="#globals" title="Permalink to this headline">¶</a></h3>
 <p>The globals feature places the contents of a ‘CDATA’ block near the top of the generated program.  Amongst other things, this is useful for defining variables that are then accessible throughout the entire program.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><globals></span>
@@ -241,14 +243,14 @@
 </div>
 </div>
 <div class="section" id="openmp">
-<span id="id5"></span><h3>OpenMP<a class="headerlink" href="#openmp" title="Permalink to this headline">¶</a></h3>
+<span id="index-20"></span><span id="id5"></span><h3>OpenMP<a class="headerlink" href="#openmp" title="Permalink to this headline">¶</a></h3>
 <p>The <tt class="docutils literal"><span class="pre"><openmp</span> <span class="pre">/></span></tt> feature instructs compatible compilers to parallelise key loops using the <a class="reference external" href="http://www.openmp.org">OpenMP API</a> standard.  By default the simulation will use all available CPUs.  The number of threads used can be restricted by specifying the number of threads in the script with <tt class="docutils literal"><span class="pre"><openmp</span> <spa [...]
 <div class="highlight-xmds2"><div class="highlight"><pre>OMP_NUM_THREADS=2 ./simulation_name
 </pre></div>
 </div>
 </div>
 <div class="section" id="precision">
-<span id="id6"></span><h3>Precision<a class="headerlink" href="#precision" title="Permalink to this headline">¶</a></h3>
+<span id="index-21"></span><span id="id6"></span><h3>Precision<a class="headerlink" href="#precision" title="Permalink to this headline">¶</a></h3>
 <p>This specifies the precision of the XMDS2 <tt class="docutils literal"><span class="pre">real</span></tt> and <tt class="docutils literal"><span class="pre">complex</span></tt> datatypes, as well as the precision used when computing transforms. Currently two values are accepted: <tt class="docutils literal"><span class="pre">single</span></tt> and <tt class="docutils literal"><span class="pre">double</span></tt>. If this feature isn’t specified, XMDS2 defaults to using double pr [...]
 <p>Single precision has approximately 7.2 decimal digits of accuracy, with a minimum value of 1.4×10<sup>-45</sup> and a maximum of 3.8×10<sup>34</sup>. Double precision has approximately 16 decimal digits of accuracy, a minimum value of 4.9×10<sup>-324</sup> and a maximum value of 1.8×10<sup>308</sup>.</p>
 <p>Using single precision can be attractive, as it can be more than twice as fast, depending on whether a simulation is CPU bound, memory bandwidth bound, MPI bound or bottlenecked elsewhere, although in some situations you may see no speed-up at all. Caution should be exercised, however. Keep in mind how many timesteps your simulation requires, and take note of the tolerance you have set per step, to see if the result will lie within your acceptable total error - seven digit precision i [...]
@@ -265,7 +267,7 @@
 </div>
 </div>
 <div class="section" id="validation">
-<span id="id7"></span><h3>Validation<a class="headerlink" href="#validation" title="Permalink to this headline">¶</a></h3>
+<span id="index-22"></span><span id="id7"></span><h3>Validation<a class="headerlink" href="#validation" title="Permalink to this headline">¶</a></h3>
 <p>XMDS2 makes a large number of checks in the code generation process to verify that the values for all parameters are safe choices.  Sometimes we wish to allow these parameters to be specified by variables.  This opens up many possibilities, but requires that any safety checks for parameters be performed during the execution of the program itself.  The <tt class="docutils literal"><span class="pre"><validation></span></tt> feature activates that option, with allowable attributes  [...]
 <p>As an example, one may wish to define the number of grid points and the range of the grid at run-time rather than explicitly define them in the XMDS2 script. To accomplish this, one could do the following:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre> <span class="nt"><name></span> validation_test <span class="nt"></name></span>
@@ -291,15 +293,17 @@
 </pre></div>
 </div>
 <p>This approach means that when XMDS2 is parsing the script it is unable to tell, for example, if the number of sampling points requested is less than or equal to the lattice size. Consequently it will create an executable with “numGridPoints” as an internal variable, and make the check at run-time, when it knows the value of “numGridPoints” rather than at compile time, when it doesn’t.</p>
+<p id="index-23">..index:: MPI</p>
 </div>
 </div>
 <div class="section" id="driver-element">
 <span id="driverelement"></span><h2>Driver Element<a class="headerlink" href="#driver-element" title="Permalink to this headline">¶</a></h2>
 <p>The driver element controls the overall management of the simulation, including how many paths of a stochastic simulation are to be averaged, and whether or not it is to be run using distributed memory parallelisation.  If it is not included, then the simulation is performed once without using MPI parallelisation.  If it is included, it must have a <tt class="docutils literal"><span class="pre">name</span></tt> attribute.</p>
-<p>The <tt class="docutils literal"><span class="pre">name</span></tt> attribute can have values of “none” (which is equivalent to the default option of not specifying a driver), “distributed-mpi”, “multi-path” or “mpi-multi-path”.</p>
+<p>The <tt class="docutils literal"><span class="pre">name</span></tt> attribute can have values of “none” (which is equivalent to the default option of not specifying a driver), “distributed-mpi”, “multi-path”, “mpi-multi-path” or “adaptive-mpi-multi-path”.</p>
 <p>Choosing the <tt class="docutils literal"><span class="pre">name="distributed-mpi"</span></tt> option allows a single integration over multiple processors.  The resulting executable can then be run according to your particular implementation of MPI.  The FFTW library only allows MPI processing of multidimensional vectors, as otherwise shared memory parallel processing requires too much inter-process communication to be efficient.  Maximally efficient parallelisation occurs w [...]
 <p>The <tt class="docutils literal"><span class="pre">name="multi-path"</span></tt> option is used for stochastic simulations, which are typically run multiple times and averaged.  It requires a <tt class="docutils literal"><span class="pre">paths</span></tt> attribute with the number of iterations of the integration to be averaged.  The output will report the averages of the desired samples, and the standard error in those averages.
-The <tt class="docutils literal"><span class="pre">name="mpi-multi-path"</span></tt> option integrates separate paths on different processors, which is typically a highly efficient process.</p>
+The <tt class="docutils literal"><span class="pre">name="mpi-multi-path"</span></tt> option integrates separate paths on different processors, which is typically a highly efficient process.
+The <tt class="docutils literal"><span class="pre">name="adaptive-mpi-multi-path"</span></tt> option integrates separate paths on different processors with load balancing.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
     <span class="nt"><driver</span> <span class="na">name=</span><span class="s">"distributed-mpi"</span> <span class="nt">/></span>
@@ -307,20 +311,22 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
     <span class="nt"><driver</span> <span class="na">name=</span><span class="s">"multi-path"</span> <span class="na">paths=</span><span class="s">"10"</span> <span class="nt">/></span>
         <span class="c"><!-- or --></span>
     <span class="nt"><driver</span> <span class="na">name=</span><span class="s">"mpi-multi-path"</span> <span class="na">paths=</span><span class="s">"1000"</span> <span class="nt">/></span>
+                <span class="c"><!-- or --></span>
+    <span class="nt"><driver</span> <span class="na">name=</span><span class="s">"adaptive-mpi-multi-path"</span> <span class="na">paths=</span><span class="s">"1000"</span> <span class="nt">/></span>
 <span class="nt"></simulation></span>
 </pre></div>
 </div>
 </div>
 <div class="section" id="geometry-element">
-<span id="geometryelement"></span><h2>Geometry Element<a class="headerlink" href="#geometry-element" title="Permalink to this headline">¶</a></h2>
-<p id="propagationdimensionelement">The <tt class="docutils literal"><span class="pre"><geometry></span></tt> element describes the dimensions used in your simulation, and is required.  The only required element inside is the <tt class="docutils literal"><span class="pre"><propagation_dimension></span></tt> element, which defines the name of the dimension along which your simulation will integrate.  Nothing else about this dimension is specified, as requirements for the latti [...]
-<p id="dimensionelement"><span id="transversedimensionselement"></span>If there are other dimensions in your problem, they are called “transverse dimensions”, and are described in the <tt class="docutils literal"><span class="pre"><transverse_dimensions></span></tt> element.  Each dimension is then described in its own <tt class="docutils literal"><span class="pre"><dimension></span></tt> element.  A transverse dimension must have a unique name defined by a <tt cl [...]
-<p>Each transverse dimension must specify how many points or modes it requires, and the range over which it is defined.  This is done by the <tt class="docutils literal"><span class="pre">lattice</span></tt> and <tt class="docutils literal"><span class="pre">domain</span></tt> attributes respectively.  The <tt class="docutils literal"><span class="pre">lattice</span></tt> attribute is an integer, and is optional for integer dimensions, where it can be defined implicitly by the domain.  T [...]
-<p>Any dimension can have a number of aliases.  These act exactly like copies of that dimension, but must be included explicitly in the definition of subsequent vectors (i.e. they are not included in the default list of dimensions for a new vector).  The list of aliases for a dimension are included in an <tt class="docutils literal"><span class="pre">aliases</span></tt> attribute.  They are useful for non-local reference of variables.  See <tt class="docutils literal"><span class="pre">g [...]
-<p>Integrals over a dimension can be multiplied by a common prefactor, which is specified using the <tt class="docutils literal"><span class="pre">volume_prefactor</span></tt> attribute.  For example, this allows the automatic inclusion of a factor of two due to a reflection symmetry by adding the attribute <tt class="docutils literal"><span class="pre">volume_prefactor="2"</span></tt>.  In very specific cases, you may wish to refer to volume elements explicitly.  This will lea [...]
+<span id="geometryelement"></span><span id="index-24"></span><h2>Geometry Element<a class="headerlink" href="#geometry-element" title="Permalink to this headline">¶</a></h2>
+<p id="propagationdimensionelement"><span id="index-25"></span>The <tt class="docutils literal"><span class="pre"><geometry></span></tt> element describes the dimensions used in your simulation, and is required.  The only required element inside is the <tt class="docutils literal"><span class="pre"><propagation_dimension></span></tt> element, which defines the name of the dimension along which your simulation will integrate.  Nothing else about this dimension is specified, as [...]
+<span class="target" id="transversedimensionselement"><span id="index-26"></span></span><p id="dimensionelement"><span id="index-27"></span>If there are other dimensions in your problem, they are called “transverse dimensions”, and are described in the <tt class="docutils literal"><span class="pre"><transverse_dimensions></span></tt> element.  Each dimension is then described in its own <tt class="docutils literal"><span class="pre"><dimension></span></tt> element [...]
+<p id="index-28">Each transverse dimension must specify how many points or modes it requires, and the range over which it is defined.  This is done by the <tt class="docutils literal"><span class="pre">lattice</span></tt> and <tt class="docutils literal"><span class="pre">domain</span></tt> attributes respectively.  The <tt class="docutils literal"><span class="pre">lattice</span></tt> attribute is an integer, and is optional for integer dimensions, where it can be defined implicitly by  [...]
+<p id="index-29">Any dimension can have a number of aliases.  These act exactly like copies of that dimension, but must be included explicitly in the definition of subsequent vectors (i.e. they are not included in the default list of dimensions for a new vector).  The list of aliases for a dimension are included in an <tt class="docutils literal"><span class="pre">aliases</span></tt> attribute.  They are useful for non-local reference of variables.  See <tt class="docutils literal"><span [...]
+<p id="index-30">Integrals over a dimension can be multiplied by a common prefactor, which is specified using the <tt class="docutils literal"><span class="pre">volume_prefactor</span></tt> attribute.  For example, this allows the automatic inclusion of a factor of two due to a reflection symmetry by adding the attribute <tt class="docutils literal"><span class="pre">volume_prefactor="2"</span></tt>.  In very specific cases, you may wish to refer to volume elements explicitly.  [...]
 <p>If you are using the <tt class="docutils literal"><span class="pre">distributed-mpi</span></tt> driver to parallelise the simulation, place the dimension you wish to split over multiple processors first.  The most efficient parallelisation would involve distributing a dimension with only local evolution, as the different memory blocks would not need to communicate.  Nonlocal evolution that is local in Fourier space is the second preference, as the Fourier transform can also be success [...]
-<p id="transforms">Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or “dft”), but others can be specified with the <tt class="docutils literal"><span class="pre">transform</span></tt> attribute.  The other options are “none”, “dst”, “dct [...]
-<p>An advanced feature discussed further in <a class="reference internal" href="advanced_topics.html#dimensionaliases"><em>Dimension aliases</em></a> are dimension aliases, which are specified by the <tt class="docutils literal"><span class="pre">aliases</span></tt> attribute.  This feature is useful for example, when calculating correlation functions.</p>
+<p id="transforms"><span id="index-31"></span>Each transverse dimension can be associated with a transform.  This allows the simulation to manipulate vectors defined on that dimension in the transform space.  The default is Fourier space (with the associated transform being the discrete Fourier transform, or “dft”), but others can be specified with the <tt class="docutils literal"><span class="pre">transform</span></tt> attribute.  The other options are “none”, &# [...]
+<p id="index-32">An advanced feature discussed further in <a class="reference internal" href="advanced_topics.html#dimensionaliases"><em>Dimension aliases</em></a> are dimension aliases, which are specified by the <tt class="docutils literal"><span class="pre">aliases</span></tt> attribute.  This feature is useful for example, when calculating correlation functions.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
     <span class="nt"><geometry></span>
@@ -340,8 +346,8 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </pre></div>
 </div>
 <div class="section" id="the-dft-transform">
-<span id="dft-transform"></span><h3>The “dft” transform<a class="headerlink" href="#the-dft-transform" title="Permalink to this headline">¶</a></h3>
-<p>The “dft” transform is performed using the the normal discrete Fourier transform, which means that it enforces periodic boundary conditions on vectors defined on that dimension.  Another implication is that it can only be used with complex-valued vectors.  The discrete Fourier transform is almost exactly the same as a standard Fourier transform.  The standard Fourier transform is</p>
+<span id="dft-transform"></span><span id="index-33"></span><h3>The “dft” transform<a class="headerlink" href="#the-dft-transform" title="Permalink to this headline">¶</a></h3>
+<p id="index-34">The “dft” transform is performed using the the normal discrete Fourier transform, which means that it enforces periodic boundary conditions on vectors defined on that dimension.  Another implication is that it can only be used with complex-valued vectors.  The discrete Fourier transform is almost exactly the same as a standard Fourier transform.  The standard Fourier transform is</p>
 <div class="math">
 \[\mathcal{F}\left[f(x)\right](k) = \frac{1}{\sqrt{2\pi}}\int_{x_\text{min}}^{x_\text{max}} f(x) e^{-i k x} dx\]</div>
 <p>The discrete Fourier transform has no information about the domain of the lattice, so the XMDS2 transform is equivalent to</p>
@@ -368,8 +374,8 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="the-dct-transform">
-<h3>The “dct” transform<a class="headerlink" href="#the-dct-transform" title="Permalink to this headline">¶</a></h3>
-<p>The “dct” (discrete cosine transform) is a Fourier-based transform that implies different boundary conditions for associated vectors.  XMDS uses the type-II DCT, often called “the DCT”, and its inverse, which is also called the type-III DCT.  This transform assumes that any vector using this dimension is both periodic, and also even around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each uniqu [...]
+<span id="dct-transform"></span><span id="index-35"></span><h3>The “dct” transform<a class="headerlink" href="#the-dct-transform" title="Permalink to this headline">¶</a></h3>
+<p id="index-36">The “dct” (discrete cosine transform) is a Fourier-based transform that implies different boundary conditions for associated vectors.  XMDS uses the type-II DCT, often called “the DCT”, and its inverse, which is also called the type-III DCT.  This transform assumes that any vector using this dimension is both periodic, and also even around a specific point within each period.  The grid is therefore only defined across a half period in order to sam [...]
 <p>As the DCT transform can be defined on real data rather only complex data, it can also be superior to DFT-based spectral methods for simulations of real-valued fields where boundary conditions are artificial.</p>
 <p>XMDS labels the cosine transform space variables the same as for <a class="reference internal" href="#dft-transform"><em>Fourier transforms</em></a> and all the even derivatives can be calculated the same way.  Odd moments of the cosine-space variables are in fact <em>not</em> related to the corresponding odd derivatives by an inverse cosine transform.</p>
 <p>Discrete cosine transforms allow easy calculation of even-order derivatives, as the 2n<sup>th</sup> derivative of a field is proportional to the 2n<sup>th</sup> moment of the field in DCT-space:</p>
@@ -392,9 +398,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="the-dst-transform">
-<h3>The “dst” transform<a class="headerlink" href="#the-dst-transform" title="Permalink to this headline">¶</a></h3>
+<span id="dst-transform"></span><span id="index-37"></span><h3>The “dst” transform<a class="headerlink" href="#the-dst-transform" title="Permalink to this headline">¶</a></h3>
 <p>The “dst” (discrete sine transform) is a counterpart to the DCT transform.  XMDS uses the type-II DST and its inverse, which is also called the type-III DST.  This transform assumes that fields are periodic in this dimension, but also that they are also odd around a specific point within each period.  The grid is therefore only defined across a half period in order to sample each unique point once, and can therefore be of any shape where all the even derivatives are zero a [...]
-<p>The DST transform can be defined on real-valued vectors.  As odd-valued functions are zero at the boundaries, this is a natural transform to use when implementing zero Dirichlet boundary conditions.</p>
+<p id="index-38">The DST transform can be defined on real-valued vectors.  As odd-valued functions are zero at the boundaries, this is a natural transform to use when implementing zero Dirichlet boundary conditions.</p>
 <p>XMDS labels the sine transform space variables the same as for <a class="reference internal" href="#dft-transform"><em>Fourier transforms</em></a> and all the even derivatives can be calculated the same way.  Odd moments of the sine-space variables are in fact <em>not</em> related to the corresponding odd derivatives by an inverse sine transform.</p>
 <p>Discrete sine transforms allow easy calculation of even-order derivatives, as the 2n<sup>th</sup> derivative of a field is proportional to the 2n<sup>th</sup> moment of the field in DST-space:</p>
 <div class="math">
@@ -412,8 +418,8 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </pre></div>
 </div>
 </div>
-<div class="section" id="the-bessel-transform">
-<span id="besseltransform"></span><h3>The “bessel” transform<a class="headerlink" href="#the-bessel-transform" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="the-bessel-and-bessel-neumann-transforms">
+<span id="besseltransform"></span><span id="index-39"></span><h3>The “bessel” and “bessel-neumann” transforms<a class="headerlink" href="#the-bessel-and-bessel-neumann-transforms" title="Permalink to this headline">¶</a></h3>
 <p>Just as the Fourier basis is useful for finding derivatives in Euclidean geometry, the basis of Bessel functions is useful for finding certain common operators in cylindrical co-ordinates.  In particular, we use the Bessel functions of the first kind, <span class="math">\(J_m(u)\)</span>.  The relevant transform is the Hankel transform:</p>
 <div class="math">
 \[F_m(k) = \mathcal{H}_m \left[f\right](k) = \int_0^\infty r f(r) J_m(k r) dr\]</div>
@@ -424,6 +430,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <div class="math">
 \[\begin{split}\nabla^2 \left(f(r) e^{i m \theta}\right) &= \left(\frac{\partial^2 f}{\partial r^2} +\frac{1}{r}\frac{\partial f}{\partial r} -\frac{m^2}{r^2} f \right) e^{i m \theta} = \left\{\mathcal{H}^{-1}_m \left[(-k^2) F_m(k)\right](r) \right\} e^{i m \theta}\end{split}\]</div>
 <p>XMDS labels the variables in the transformed space with a prefix of ‘k’, just as for <a class="reference internal" href="#dft-transform"><em>Fourier transforms</em></a>.  The order <span class="math">\(m\)</span> of the transform is defined by the <tt class="docutils literal"><span class="pre">order</span></tt> attribute in the <tt class="docutils literal"><span class="pre"><dimension></span></tt> element, which must be assigned as a non-negative integer.  If the ord [...]
+<p id="index-40">The difference between the “bessel” and “bessel-neumann” transforms is that the “bessel” transform enforces Dirichlet boundary conditions at the edge of the computational domain (<span class="math">\(f(R) = 0\)</span>), while “bessel-neumann” enforces Neumann boundary conditions (<span class="math">\(\left.\frac{\partial}{\partial r}f(r) \right|_{r=R} = 0\)</span>).</p>
 <p>It can often be useful to have a different sampling in normal space and Hankel space.  Reducing the number of modes in either space dramatically speeds simulations.  To set the number of lattice points in Hankel space to be different to the number of lattice points for the field in its original space, use the attribute <tt class="docutils literal"><span class="pre">spectral_lattice</span></tt>.  The Bessel space lattice is chosen such that the boundary condition at the edge of the dom [...]
 <p>Hankel transforms allow easy calculation of the Laplacian of fields with cylindrical symmetry.  Applying the operator <tt class="docutils literal"><span class="pre">L</span> <span class="pre">=</span> <span class="pre">-kr*kr</span></tt> in Hankel space is therefore equivalent to applying the operator</p>
 <div class="math">
@@ -443,7 +450,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="the-spherical-bessel-transform">
-<h3>The “spherical-bessel” transform<a class="headerlink" href="#the-spherical-bessel-transform" title="Permalink to this headline">¶</a></h3>
+<span id="spherical-bessel-transform"></span><span id="index-41"></span><h3>The “spherical-bessel” transform<a class="headerlink" href="#the-spherical-bessel-transform" title="Permalink to this headline">¶</a></h3>
 <p>When working in spherical coordinates, it is often useful to use the spherical Bessel functions <span class="math">\(j_l(x)=\sqrt{\frac{\pi}{2x}}J_{l+\frac{1}{2}}(x)\)</span> as a basis.  These are eigenfunctions of the radial component of Laplace’s equation in spherical coordinates:</p>
 <div class="math">
 \[\begin{split}\nabla^2 \left[j_l(k r)\; Y^m_l(\theta, \phi)\right] &= \left[\frac{\partial^2 }{\partial r^2} +\frac{2}{r}\frac{\partial }{\partial r} -\frac{l(l+1)}{r^2}\right] j_l(k r) \; Y^m_l(\theta, \phi) = -k^2 j_l(k r)\; Y^m_l(\theta, \phi)\end{split}\]</div>
@@ -469,7 +476,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="the-hermite-gauss-transform">
-<h3>The “hermite-gauss” transform<a class="headerlink" href="#the-hermite-gauss-transform" title="Permalink to this headline">¶</a></h3>
+<span id="hermite-gauss-transform"></span><span id="index-42"></span><h3>The “hermite-gauss” transform<a class="headerlink" href="#the-hermite-gauss-transform" title="Permalink to this headline">¶</a></h3>
 <p>The “hermite-gauss” transform allows transformations to and from the basis of Hermite functions <span class="math">\(\psi_n(x)\)</span>:</p>
 <div class="math">
 \[\psi_n(x) = \left(2^n n! \sigma \sqrt{\pi}\right)^{-1/2} e^{-x^2/2\sigma^2} H_n(\sigma x)\]</div>
@@ -480,7 +487,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <div class="math">
 \[- \frac{\hbar^2}{2 m} \frac{\partial^2 \psi_n}{\partial x^2} + \frac{1}{2} m \omega^2 x^2 \psi_n(x) = \hbar \omega\left(n+\frac{1}{2}\right) \psi_n(x),\]</div>
 <p>with <span class="math">\(\sigma = \sqrt{\frac{\hbar}{m \omega}}\)</span>.</p>
-<p>This transform is different to the others in that it requires a <tt class="docutils literal"><span class="pre">length_scale</span></tt> attribute rather than a <tt class="docutils literal"><span class="pre">domain</span></tt> attribute, as the range of the lattice will depend on the number of basis functions used. The <tt class="docutils literal"><span class="pre">length_scale</span></tt> attribute defines the scale of the domain as the standard deviation <span class="math">\(\sigma\) [...]
+<p id="index-43">This transform is different to the others in that it requires a <tt class="docutils literal"><span class="pre">length_scale</span></tt> attribute rather than a <tt class="docutils literal"><span class="pre">domain</span></tt> attribute, as the range of the lattice will depend on the number of basis functions used. The <tt class="docutils literal"><span class="pre">length_scale</span></tt> attribute defines the scale of the domain as the standard deviation <span class="ma [...]
 <div class="math">
 \[\psi_0(x) = (\sigma^2 \pi)^{-1/4} e^{-x^2/2 \sigma^2}\]</div>
 <p>When a dimension uses the “hermite-gauss” transform, then the variable indexing the basis functions is defined as the name of the dimension prefixed with an “n”.  For example, when referencing the basis function indices for the dimensions “x”, “y”, “z” and “tau”, use the variable “nx”, “ny”, “nz” and “ntau”.</p>
@@ -503,13 +510,13 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="vector-element">
-<span id="vectorelement"></span><h2>Vector Element<a class="headerlink" href="#vector-element" title="Permalink to this headline">¶</a></h2>
+<span id="vectorelement"></span><span id="index-44"></span><h2>Vector Element<a class="headerlink" href="#vector-element" title="Permalink to this headline">¶</a></h2>
 <p>Vectors are arrays of data, defined over any subset of the transverse dimensions defined in your <a class="reference internal" href="#geometryelement"><em>Geometry Element</em></a>.  These dimensions are listed in the attribute <tt class="docutils literal"><span class="pre">dimensions</span></tt>, which can be an empty string if you wish the vector to not be defined on any dimensions.  If you do not include a <tt class="docutils literal"><span class="pre">dimensions</span></tt> attrib [...]
-<p>Each <tt class="docutils literal"><span class="pre"><vector></span></tt> element has a unique name, defined by a <tt class="docutils literal"><span class="pre">name</span></tt> attribute.  It is either complex-valued (the default) or real-valued, which can be specified using the <tt class="docutils literal"><span class="pre">type="real"</span></tt> attribute.</p>
-<p id="componentselement">A vector contains a list of variables, each defined by name in the <tt class="docutils literal"><span class="pre"><components></span></tt> element.  The name of each component is the name used to reference it later in the simulation.</p>
-<p>Vectors are initialised at the beginning of a simulation, either from code or from an input file.  The basis choice for this initialisation defaults to the normal space as defined in the <tt class="docutils literal"><span class="pre"><geometry></span></tt> element, but any transverse dimension can be initialised in their transform basis by specifying them in an <tt class="docutils literal"><span class="pre">initial_basis</span></tt> attribute.  The <tt class="docutils literal">< [...]
-<p id="initialisationelement">When initialising the vector within the XMDS script, the appropriate code is placed in a ‘CDATA’ block inside an <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element.  This code is in standard C-syntax, and should reference the components of the vector by name.  XMDS defines a few useful <a class="reference internal" href="#xmdscsyntax"><em>shorthand macros</em></a> for this C-code.  If you wish to initialise  [...]
-<p id="referencingnonlocal">While the default XMDS behaviour is to reference all variables locally, any vector can be referenced non-locally.  The notation for referencing the value of a vector ‘phi’ with a dimension ‘j’ at a value of ‘j=jk’ is <tt class="docutils literal"><span class="pre">phi(j</span> <span class="pre">=></span> <span class="pre">jk)</span></tt>.  Multiple non-local dimensions are addressed by adding the references in a list, e.g. [...]
+<p id="index-45">Each <tt class="docutils literal"><span class="pre"><vector></span></tt> element has a unique name, defined by a <tt class="docutils literal"><span class="pre">name</span></tt> attribute.  It is either complex-valued (the default) or real-valued, which can be specified using the <tt class="docutils literal"><span class="pre">type="real"</span></tt> attribute.</p>
+<p id="componentselement"><span id="index-46"></span>A vector contains a list of variables, each defined by name in the <tt class="docutils literal"><span class="pre"><components></span></tt> element.  The name of each component is the name used to reference it later in the simulation.</p>
+<p id="index-47">Vectors are initialised at the beginning of a simulation, either from code or from an input file.  The basis choice for this initialisation defaults to the normal space as defined in the <tt class="docutils literal"><span class="pre"><geometry></span></tt> element, but any transverse dimension can be initialised in their transform basis by specifying them in an <tt class="docutils literal"><span class="pre">initial_basis</span></tt> attribute.  The <tt class="docut [...]
+<p id="initialisationelement"><span id="index-48"></span>When initialising the vector within the XMDS script, the appropriate code is placed in a ‘CDATA’ block inside an <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element.  This code is in standard C-syntax, and should reference the components of the vector by name.  XMDS defines a few useful <a class="reference internal" href="#xmdscsyntax"><em>shorthand macros</em></a> for this C-code.  [...]
+<p id="referencingnonlocal"><span id="index-49"></span>While the default XMDS behaviour is to reference all variables locally, any vector can be referenced non-locally.  The notation for referencing the value of a vector ‘phi’ with a dimension ‘j’ at a value of ‘j=jk’ is <tt class="docutils literal"><span class="pre">phi(j</span> <span class="pre">=></span> <span class="pre">jk)</span></tt>.  Multiple non-local dimensions are addressed by adding the [...]
 <p>Dimensions can only be accessed non-locally if one of the following conditions is true:</p>
 <ul class="simple">
 <li>The dimension is an <tt class="docutils literal"><span class="pre">integer</span></tt> dimension,</li>
@@ -519,9 +526,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <li>The dimension is uniformly spaced (i.e. corresponds to the spatial basis of a dimension with a transform of <tt class="docutils literal"><span class="pre">dft</span></tt>, <tt class="docutils literal"><span class="pre">dct</span></tt>, <tt class="docutils literal"><span class="pre">dst</span></tt> or <tt class="docutils literal"><span class="pre">none</span></tt>), and it is accessed with the lower limit of that dimension.  For example, <tt class="docutils literal"><span class="pre"> [...]
 <li><strong>Advanced behaviour</strong>: The value of a variable at an arbitrary point can be accessed via the integer index for that dimension. For example <tt class="docutils literal"><span class="pre">phi(x_index</span> <span class="pre">=></span> <span class="pre">3)</span></tt> accesses the value of <tt class="docutils literal"><span class="pre">phi</span></tt> at the grid point with index 3.  As <tt class="docutils literal"><span class="pre">x_index</span></tt> is zero-based, th [...]
 </ul>
-<p>Note that a dimension cannot be accessed non-locally in <tt class="docutils literal"><span class="pre">distributed-mpi</span></tt> simulations if the simulation is distributed across that dimension.</p>
-<p id="filenameelement">If you wish to initialise from a file, then you can choose to initialise from an hdf5 file using <tt class="docutils literal"><span class="pre">kind="hdf5"</span></tt> in the <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element, and then supply the name of the input file with the <tt class="docutils literal"><span class="pre">filename</span></tt> element.  This is a standard data format which can be generated from XMD [...]
-<p>When initialising from a file, the default is to require the lattice of the transverse dimensions to exactly match the lattice defined by XMDS.  There is an option to import data defined on a subset or superset of the lattice points.  Obviously, the dimensionality of the imported field still has to be correct.  This option is activated by defining the attribute <tt class="docutils literal"><span class="pre">geometry_matching_mode="loose"</span></tt>.  The default option is d [...]
+<p id="index-50">Note that a dimension cannot be accessed non-locally in <tt class="docutils literal"><span class="pre">distributed-mpi</span></tt> simulations if the simulation is distributed across that dimension.</p>
+<span class="target" id="filenameelement"><span id="index-51"></span></span><p id="index-52">If you wish to initialise from a file, then you can choose to initialise from an hdf5 file using <tt class="docutils literal"><span class="pre">kind="hdf5"</span></tt> in the <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element, and then supply the name of the input file with the <tt class="docutils literal"><span class="pre">filename</span></tt> ele [...]
+<p id="index-53">When initialising from a file, the default is to require the lattice of the transverse dimensions to exactly match the lattice defined by XMDS.  There is an option to import data defined on a subset or superset of the lattice points.  Obviously, the dimensionality of the imported field still has to be correct.  This option is activated by defining the attribute <tt class="docutils literal"><span class="pre">geometry_matching_mode="loose"</span></tt>.  The defau [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
     <span class="nt"><geometry></span>
@@ -555,9 +562,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </pre></div>
 </div>
 <div class="section" id="the-dependencies-element">
-<span id="dependencies"></span><h3>The dependencies element<a class="headerlink" href="#the-dependencies-element" title="Permalink to this headline">¶</a></h3>
+<span id="dependencies"></span><span id="index-54"></span><h3>The dependencies element<a class="headerlink" href="#the-dependencies-element" title="Permalink to this headline">¶</a></h3>
 <p>Often a vector, computed vector, filter, integration operator or output group will reference the values in one or more other vectors, computed vectors or noise vectors.  These dependencies are defined via a <tt class="docutils literal"><span class="pre"><dependencies></span></tt> element, which lists the names of the vectors.  The components of those vectors will then be available for use in the ‘CDATA’ block, and can be referenced by their name.</p>
-<p>For a vector, the basis of the dependent vectors, and therefore the basis of the dimensions available in the ‘CDATA’ block, are defined by the <tt class="docutils literal"><span class="pre">initial_basis</span></tt> of the vector.  For a <tt class="docutils literal"><span class="pre"><computed_vector></span></tt>, <tt class="docutils literal"><span class="pre"><filter></span></tt> <tt class="docutils literal"><span class="pre"><integration_vector></span>< [...]
+<p id="index-55">For a vector, the basis of the dependent vectors, and therefore the basis of the dimensions available in the ‘CDATA’ block, are defined by the <tt class="docutils literal"><span class="pre">initial_basis</span></tt> of the vector.  For a <tt class="docutils literal"><span class="pre"><computed_vector></span></tt>, <tt class="docutils literal"><span class="pre"><filter></span></tt> <tt class="docutils literal"><span class="pre"><integration_vect [...]
 <p>Any transverse dimensions that appear in the <tt class="docutils literal"><span class="pre"><dependencies></span></tt> element that do not appear in the <tt class="docutils literal"><span class="pre">dimensions</span></tt> attribute of the vector are integrated out.  For integer dimensions, this is simply an implicit sum over the dimension.  For real-valued dimensions, this is an implicit integral over the range of that dimension.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -602,8 +609,8 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="computed-vector-element">
-<span id="computedvectorelement"></span><h2>Computed Vector Element<a class="headerlink" href="#computed-vector-element" title="Permalink to this headline">¶</a></h2>
-<p id="evaluationelement">Computed vectors are arrays of data much like normal <tt class="docutils literal"><span class="pre"><vector></span></tt> elements, but they are always calculated as they are referenced, so they cannot be initialised from file.  It is defined with a <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element, which has a <tt class="docutils literal"><span class="pre">name</span></tt> attribute, optional <tt class="docutils lit [...]
+<span id="computedvectorelement"></span><span id="index-56"></span><h2>Computed Vector Element<a class="headerlink" href="#computed-vector-element" title="Permalink to this headline">¶</a></h2>
+<p id="evaluationelement"><span id="index-57"></span>Computed vectors are arrays of data much like normal <tt class="docutils literal"><span class="pre"><vector></span></tt> elements, but they are always calculated as they are referenced, so they cannot be initialised from file.  It is defined with a <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element, which has a <tt class="docutils literal"><span class="pre">name</span></tt> attribute, optio [...]
 <p>As it is not being stored, a <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> does not have or require an <tt class="docutils literal"><span class="pre">initial_basis</span></tt> attribute, as it will be transformed into an appropriate basis for the element that references it.  The basis for its evaluation will be determined entirely by the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute of the <tt class="docutils literal">< [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -643,7 +650,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="noise-vector-element">
-<span id="noisevectorelement"></span><h2>Noise Vector Element<a class="headerlink" href="#noise-vector-element" title="Permalink to this headline">¶</a></h2>
+<span id="noisevectorelement"></span><span id="index-58"></span><h2>Noise Vector Element<a class="headerlink" href="#noise-vector-element" title="Permalink to this headline">¶</a></h2>
 <p>Noise vectors are used like computed vectors, but when they are evaluated they generate arrays of random numbers of various kinds.  They do not depend on other vectors, and are not initialised by code.  They are defined by a <tt class="docutils literal"><span class="pre"><noise_vector></span></tt> element, which has a <tt class="docutils literal"><span class="pre">name</span></tt> attribute, and optional <tt class="docutils literal"><span class="pre">dimensions</span></tt>, <tt  [...]
 <p>The choice of pseudo-random number generator (RNG) can be specified with the <tt class="docutils literal"><span class="pre">method</span></tt> attribute, which has options “posix” (the default), “mkl”, “solirte” and “dsfmt”.  It is only possible to use any particular method if that library is available.  Although “posix” is the default, it is also the slowest, and produces the lowest quality random numbers (although this is t [...]
 <p>The random number generators can be provided with a seed using the <tt class="docutils literal"><span class="pre">seed</span></tt> attribute, which should typically consist of a list of three integers.  All RNGs require positive integers as seeds.  It is possible to use the <a class="reference internal" href="#validation"><em><validation kind=”run-time”/></em></a> feature to use passed variables as seeds.  It is advantageous to use fixed seeds rather than timer-based [...]
@@ -672,7 +679,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </pre></div>
 </div>
 <div class="section" id="uniform-noise">
-<span id="uniformnoise"></span><h3>Uniform noise<a class="headerlink" href="#uniform-noise" title="Permalink to this headline">¶</a></h3>
+<span id="uniformnoise"></span><span id="index-59"></span><h3>Uniform noise<a class="headerlink" href="#uniform-noise" title="Permalink to this headline">¶</a></h3>
 <p>Uniform noises defined over any transverse dimensions are simply uniformly distributed random numbers between zero and one.  This noise is an example of a “static” noise, i.e. one suitable for initial conditions of a field.  If it were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -684,7 +691,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="gaussian-noise">
-<span id="gaussiannoise"></span><h3>Gaussian noise<a class="headerlink" href="#gaussian-noise" title="Permalink to this headline">¶</a></h3>
+<span id="gaussiannoise"></span><span id="index-60"></span><h3>Gaussian noise<a class="headerlink" href="#gaussian-noise" title="Permalink to this headline">¶</a></h3>
 <p>Noise generated with the “gaussian” method is gaussian distributed with zero mean.  For a real-valued noise vector, the variance at each point is the inverse of the volume element of the transverse dimensions in the vector.  This volume element for a single transverse dimension is that used to perform integrals over that dimension.  For example, it would include a factor of <span class="math">\(r^2\)</span> for a dimension “r” defined with a <tt class="docutils [...]
 <p>This lattice-dependent variance is typical in most applications of partial differential equations with stochastic initial conditions, as the physical quantity is the variance of the field over some finite volume, which does not change if the variance at each lattice site varies as described above.</p>
 <p>For complex-valued noise vector, the real and imaginary parts of the noise are independent, and each have half the variance of a real-valued noise.  This means that the modulus squared of a complex-valued noise vector has the same variance as a real-valued noise vector at each point.</p>
@@ -699,7 +706,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="wiener-noise">
-<span id="wienernoise"></span><h3>Wiener noise<a class="headerlink" href="#wiener-noise" title="Permalink to this headline">¶</a></h3>
+<span id="wienernoise"></span><span id="index-61"></span><h3>Wiener noise<a class="headerlink" href="#wiener-noise" title="Permalink to this headline">¶</a></h3>
 <p>Noise generated with the “wiener” method is gaussian distributed with zero mean and the same variance as the static “gaussian” noise defined above, multiplied by a factor of the lattice step in the propagation dimension.  This means that these noise vectors can be used to define Wiener noises for standard stochastic ordinary or partial differential equations.  Most integrators in XMDS effectively interpret these noises as Stratonovich increments.</p>
 <p>As a dynamic noise, a Wiener process is not well-defined except in an <tt class="docutils literal"><span class="pre">integrate</span></tt> element.</p>
 <p>Example syntax:</p>
@@ -712,7 +719,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="poissonian-noise">
-<span id="poissioniannoise"></span><h3>Poissonian noise<a class="headerlink" href="#poissonian-noise" title="Permalink to this headline">¶</a></h3>
+<span id="poissioniannoise"></span><span id="index-62"></span><h3>Poissonian noise<a class="headerlink" href="#poissonian-noise" title="Permalink to this headline">¶</a></h3>
 <p>A noise vector using the “poissonian” method generates a random variable from a Poissonian distribution.  While the the Poisson distribution is integer-valued, the variable will be cast as a real number.  The rate of the Poissonian distribution is defined by the <tt class="docutils literal"><span class="pre">mean</span></tt> or <tt class="docutils literal"><span class="pre">mean-density</span></tt> attributes.  These are are synonyms, and must be defined as positive real n [...]
 <p>Poissonian noise vectors are an example of a “static” noise, i.e. one suitable for initial conditions of a field.  If they were included in the equations of motion for a field, then the effect of the noise would depend on the lattice spacing of the propagation dimension.  XMDS therefore does not allow this noise type to be used in integration elements.</p>
 <p>Example syntax:</p>
@@ -725,7 +732,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="jump-noise">
-<span id="jumpnoise"></span><h3>Jump noise<a class="headerlink" href="#jump-noise" title="Permalink to this headline">¶</a></h3>
+<span id="jumpnoise"></span><span id="index-63"></span><h3>Jump noise<a class="headerlink" href="#jump-noise" title="Permalink to this headline">¶</a></h3>
 <p>A noise vector using the “jump” method is the dynamic version of the poissonian noise method, and must have the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute specified as a positive real number.  The variable at each point is chosen from a Poissonian distribution with a mean equal to the product of three variables: the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute; the volume of the element as defined by its [...]
 <p>It is common to wish to vary the mean rate of a jump process, which means that the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the <a class="reference internal" href="#validation"><em><validation></em></a> feature with either the <tt class="docutils literal"><span class="pre">kind="none"</span></tt>  [...]
 <p>As a dynamic noise, a jump process is not well-defined except in an <tt class="docutils literal"><span class="pre">integrate</span></tt> element.</p>
@@ -740,7 +747,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="sequence-element">
-<span id="sequenceelement"></span><h2>Sequence Element<a class="headerlink" href="#sequence-element" title="Permalink to this headline">¶</a></h2>
+<span id="sequenceelement"></span><span id="index-64"></span><h2>Sequence Element<a class="headerlink" href="#sequence-element" title="Permalink to this headline">¶</a></h2>
 <p>All processing of vectors happens in sequence elements.  Each simulation must have exactly one main sequence element, but it can then contain any number of nested sequence elements.  A sequence element can contain any number of <tt class="docutils literal"><span class="pre"><sequence></span></tt>, <a class="reference internal" href="#filterelement"><em><filter></em></a>, <a class="reference internal" href="#integrateelement"><em><integrate></em></a> and/or <a class=" [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
@@ -754,9 +761,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="filter-element">
-<span id="filterelement"></span><h2>Filter element<a class="headerlink" href="#filter-element" title="Permalink to this headline">¶</a></h2>
+<span id="filterelement"></span><span id="index-65"></span><h2>Filter element<a class="headerlink" href="#filter-element" title="Permalink to this headline">¶</a></h2>
 <p>A <tt class="docutils literal"><span class="pre"><filter></span></tt> element can be placed inside a <tt class="docutils literal"><span class="pre"><sequence></span></tt> element or an <a class="reference internal" href="#integrateelement"><em><integrate></em></a> element.  It contains a ‘CDATA’ block and an optional <a class="reference internal" href="#dependencies"><em><dependencies></em></a> element, which may give access to variables in other <t [...]
-<p>Sometimes it is desirable to apply a filter conditionally.  The most efficient way of doing this is to call the function from the piece of code that contains the conditional statement (likely another <tt class="docutils literal"><span class="pre"><filter></span></tt> element) rather than embed the conditional function in the filter itself, as the latter method can involve the conditional statement being evaluated multiple times over the transverse dimensions.  For this reason, i [...]
+<p id="index-66">Sometimes it is desirable to apply a filter conditionally.  The most efficient way of doing this is to call the function from the piece of code that contains the conditional statement (likely another <tt class="docutils literal"><span class="pre"><filter></span></tt> element) rather than embed the conditional function in the filter itself, as the latter method can involve the conditional statement being evaluated multiple times over the transverse dimensions.  For  [...]
 <p>One of the common uses of a filter element is to apply discontinuous changes to the vectors and variables of the simulation.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><sequence></span>
@@ -778,10 +785,10 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </div>
 </div>
 <div class="section" id="integrate-element">
-<span id="integrateelement"></span><h2>Integrate element<a class="headerlink" href="#integrate-element" title="Permalink to this headline">¶</a></h2>
+<span id="integrateelement"></span><span id="index-67"></span><h2>Integrate element<a class="headerlink" href="#integrate-element" title="Permalink to this headline">¶</a></h2>
 <p>The <tt class="docutils literal"><span class="pre"><integrate></span></tt> element is at the heart of most XMDS simulations.  It is used to integrate a set of (potentially stochastic) first-order differential equations for one or more of the vectors defined using the <tt class="docutils literal"><span class="pre"><vector></span></tt> element along the propagation dimension.  At the beginning of the simulation, the value of the propagation dimension is set to zero, and the  [...]
-<p>The length of the integration is defined by the <tt class="docutils literal"><span class="pre">interval</span></tt> attribute, which must be a positive real number.  An <tt class="docutils literal"><span class="pre"><integrate></span></tt> element must have an <tt class="docutils literal"><span class="pre">algorithm</span></tt> attribute defined, which defines the integration method.  Current methods include <a class="reference internal" href="#si"><em>SI</em></a>, <a class="ref [...]
-<p id="sampleselement">The optional <tt class="docutils literal"><span class="pre"><samples></span></tt> element is used to track the evolution of one or more vectors or variables during an integration.  This element must contain a non-negative integer for each <a class="reference internal" href="#samplinggroupelement"><em><sampling_group></em></a> element defined in the simulation’s <a class="reference internal" href="#outputelement"><em><output></em></a> element [...]
+<p id="index-68">The length of the integration is defined by the <tt class="docutils literal"><span class="pre">interval</span></tt> attribute, which must be a positive real number.  An <tt class="docutils literal"><span class="pre"><integrate></span></tt> element must have an <tt class="docutils literal"><span class="pre">algorithm</span></tt> attribute defined, which defines the integration method.  Current methods include <a class="reference internal" href="#si"><em>SI</em></a>, [...]
+<p id="sampleselement"><span id="index-69"></span>The optional <tt class="docutils literal"><span class="pre"><samples></span></tt> element is used to track the evolution of one or more vectors or variables during an integration.  This element must contain a non-negative integer for each <a class="reference internal" href="#samplinggroupelement"><em><sampling_group></em></a> element defined in the simulation’s <a class="reference internal" href="#outputelement"><em>< [...]
 <p>The vectors to be integrated and the form of the differential equations are defined in the <a class="reference internal" href="#operatorselement"><em><operators></em></a> element (or elements).  Filters to be applied each step can be defined with optional <a class="reference internal" href="#filterselement"><em><filters></em></a> elements.</p>
 <p>Computed vectors can be defined with the <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element.  These act exactly like a globally defined <a class="reference internal" href="#computedvectorelement"><em>Computed Vector Element</em></a>, but are only available within the single <tt class="docutils literal"><span class="pre"><integrate></span></tt> element.</p>
 <p>Example syntax:</p>
@@ -796,7 +803,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
     <span class="nt"></filter></span>
   <span class="nt"></filters></span>
   <span class="nt"><operators></span>
-    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span><span class="nt">></span>
       <span class="nt"><operator_names></span>T<span class="nt"></operator_names></span>
       <span class="cp"><![CDATA[</span>
         <span class="n">T</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.5</span><span class="o">*</span><span class="n">hbar</span><span class="o">/</span><span class="n">M</span><span class="o">*</span><span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">;</span>
@@ -812,12 +819,12 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 </pre></div>
 </div>
 <div class="section" id="operators-and-operator-elements">
-<span id="operatorselement"></span><h3>Operators and operator elements<a class="headerlink" href="#operators-and-operator-elements" title="Permalink to this headline">¶</a></h3>
+<span id="operatorselement"></span><span id="index-70"></span><h3>Operators and operator elements<a class="headerlink" href="#operators-and-operator-elements" title="Permalink to this headline">¶</a></h3>
 <p>An <a class="reference internal" href="#integrateelement"><em><integrate></em></a> element must contain one or more <tt class="docutils literal"><span class="pre"><operators></span></tt> elements, which define both which vectors are to be integrated, and their derivative in the propagation dimension.  When all vectors to be integrated have the same dimensionality, they can all be defined within a single <tt class="docutils literal"><span class="pre"><operators></span [...]
-<p id="integrationvectorselement">Within each <tt class="docutils literal"><span class="pre"><operators></span></tt> element, the vectors that are to be integrated are listed by name in the <tt class="docutils literal"><span class="pre"><integration_vectors></span></tt> element, and the differential equations are written in a ‘CDATA’ block.   The derivative of each component of the integration vectors must be defined along the propagation dimension.  For example,  [...]
+<p id="integrationvectorselement"><span id="index-71"></span>Within each <tt class="docutils literal"><span class="pre"><operators></span></tt> element, the vectors that are to be integrated are listed by name in the <tt class="docutils literal"><span class="pre"><integration_vectors></span></tt> element, and the differential equations are written in a ‘CDATA’ block.   The derivative of each component of the integration vectors must be defined along the propagatio [...]
 <p>When noise vectors are referenced, equations with Wiener noises should be written as though the equations are in differential form, as described in the worked examples <a class="reference internal" href="worked_examples.html#kubo"><em>Kubo Oscillator</em></a> and <a class="reference internal" href="worked_examples.html#fibre"><em>Fibre Noise</em></a>.  Jump-based Poisson noises will also be written in an equivalent form, as modelled by the example <tt class="docutils literal"><span cl [...]
-<p>By default, the name of each component references the local value of the vector, but <a class="reference internal" href="#referencingnonlocal"><em>nonlocal variables</em></a> can be accessed using the standard syntax.  However, typically the most common (and most efficient) method of referencing nonlocal variables is to reference variables that are local in the <a class="reference internal" href="#transforms"><em>transformed space</em></a> for a given transverse dimension.  This is do [...]
-<p id="operatorelement">There are three kinds of <tt class="docutils literal"><span class="pre"><operator></span></tt> elements.  The first is denoted with a <tt class="docutils literal"><span class="pre">kind="functions"</span></tt> attribute, and contains a ‘CDATA’ block that will be executed in the order that it is defined.  This is useful when you wish to calculate functions that do not depend on the transverse dimensions.  Defining these along with the ma [...]
+<p id="index-72">By default, the name of each component references the local value of the vector, but <a class="reference internal" href="#referencingnonlocal"><em>nonlocal variables</em></a> can be accessed using the standard syntax.  However, typically the most common (and most efficient) method of referencing nonlocal variables is to reference variables that are local in the <a class="reference internal" href="#transforms"><em>transformed space</em></a> for a given transverse dimensio [...]
+<span class="target" id="operatorelement"><span id="index-73"></span></span><p id="index-74">There are three kinds of <tt class="docutils literal"><span class="pre"><operator></span></tt> elements.  The first is denoted with a <tt class="docutils literal"><span class="pre">kind="functions"</span></tt> attribute, and contains a ‘CDATA’ block that will be executed in the order that it is defined.  This is useful when you wish to calculate functions that do not d [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"functions"</span><span class="nt">></span>
   <span class="cp"><![CDATA[</span>
@@ -826,8 +833,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <span class="nt"></operator></span>
 </pre></div>
 </div>
-<p id="operatornameselement">The second kind of operator element defines a list of operators in an <tt class="docutils literal"><span class="pre"><operator_names></span></tt> element.  The basis of these operators defaults to the transform space unless a different basis is specified using the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute.  These operators must then be defined in a ‘CDATA’ block, using any <a class="reference internal" href=" [...]
-<p>Operators of this second kind have the <tt class="docutils literal"><span class="pre">kind="IP"</span></tt> or <tt class="docutils literal"><span class="pre">kind="EX"</span></tt> attribute, standing for ‘interaction picture’ and ‘explicit’ operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square brackets.  IP operators use less memory and can improve [...]
+<p id="operatornameselement">The second kind of operator element defines a list of operators in an <tt class="docutils literal"><span class="pre"><operator_names></span></tt> element.  The basis of these operators defaults to the transform space unless a different basis is specified using the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute.  These operators must then be defined in a ‘CDATA’ block, using any <a class="reference internal" href=" [...]
+<span class="target" id="index-75"></span><p id="index-76">Operators of this second kind have the <tt class="docutils literal"><span class="pre">kind="IP"</span></tt> or <tt class="docutils literal"><span class="pre">kind="EX"</span></tt> attribute, standing for ‘interaction picture’ and ‘explicit’ operators respectively.  Explicit operators can be used in all situations, and simply construct and calculate a new vector of the form in the square [...]
+<p id="index-77">If the IP or EX operator is constant across the integration, then the attribute <tt class="docutils literal"><span class="pre">constant="yes"</span></tt> may be set to ensure that it is precalculated at the start of integration, otherwise the <tt class="docutils literal"><span class="pre">constant="no"</span></tt> attribute ensures that the operator is recalculated at each step.  The <tt class="docutils literal"><span class="pre">constant</span></tt>  [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
   <span class="nt"><operator_names></span>T<span class="nt"></operator_names></span>
@@ -837,9 +845,9 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <span class="nt"></operator></span>
 </pre></div>
 </div>
-<p>The third kind of operator element is used to define an integration along a transverse dimension.  This kind of evolution is called “cross-propagation”, and is described briefly in the examples ‘tla.xmds’, ‘tla_sic.xmds’ and ‘sine_cross.xmds’.  This class of equations have a subset of vectors that have an initial condition on one side of a transverse dimension, and a differential equation defined in that dimension, and as such, this kind [...]
-<p>An operator element with the <tt class="docutils literal"><span class="pre">kind="cross_propagation"</span></tt> attribute must specify the transverse dimension along which the integration would proceed with the <tt class="docutils literal"><span class="pre">propagation_dimension</span></tt> attribute.  It must also specify its own <a class="reference internal" href="#integrationvectorselement"><em><integration_vectors></em></a> element, its own <tt class="docutils lit [...]
-<p id="boundaryconditionelement">The boundary conditions are specified by a <tt class="docutils literal"><span class="pre"><boundary_conditions></span></tt> element, which requires the <tt class="docutils literal"><span class="pre">kind="left"</span></tt> or <tt class="docutils literal"><span class="pre">kind="right"</span></tt> attribute to specify on which side of the grid that the boundary conditions are specified.  The boundary conditions for the <tt class=" [...]
+<p id="index-78">The third kind of operator element is used to define an integration along a transverse dimension.  This kind of evolution is called “cross-propagation”, and is described briefly in the examples ‘tla.xmds’, ‘tla_sic.xmds’ and ‘sine_cross.xmds’.  This class of equations have a subset of vectors that have an initial condition on one side of a transverse dimension, and a differential equation defined in that dimension, and as s [...]
+<p id="index-79">An operator element with the <tt class="docutils literal"><span class="pre">kind="cross_propagation"</span></tt> attribute must specify the transverse dimension along which the integration would proceed with the <tt class="docutils literal"><span class="pre">propagation_dimension</span></tt> attribute.  It must also specify its own <a class="reference internal" href="#integrationvectorselement"><em><integration_vectors></em></a> element, its own <tt class [...]
+<span class="target" id="index-80"></span><p id="boundaryconditionelement"><span id="index-81"></span>The boundary conditions are specified by a <tt class="docutils literal"><span class="pre"><boundary_conditions></span></tt> element, which requires the <tt class="docutils literal"><span class="pre">kind="left"</span></tt> or <tt class="docutils literal"><span class="pre">kind="right"</span></tt> attribute to specify on which side of the grid that the boundary c [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"cross_propagation"</span> <span class="na">algorithm=</span><span class="s">"RK4"</span> <span class="na">propagation_dimension=</span><span class="s">"t"</span><span class="nt">></span>
   <span class="nt"><integration_vectors></span>cross<span class="nt"></integration_vectors></span>
@@ -873,7 +881,7 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <div class="math">
 \[\frac{d x_j}{dt} = f_j(\mathbf{x}(t),t)\]</div>
 <div class="section" id="si-and-sic-algorithms">
-<span id="si"></span><h4>SI and SIC algorithms<a class="headerlink" href="#si-and-sic-algorithms" title="Permalink to this headline">¶</a></h4>
+<span id="si"></span><span id="index-82"></span><h4>SI and SIC algorithms<a class="headerlink" href="#si-and-sic-algorithms" title="Permalink to this headline">¶</a></h4>
 <p>The SI algorithm is a semi-implicit fixed-step algorithm that finds the increment of the vector by solving</p>
 <div class="math">
 \[x_j(t+\Delta t) = x_j(t) + f_j\left(\mathbf{x}(t+\frac{\Delta t}{2}),t+\frac{\Delta t}{2}\right) \;\Delta t\]</div>
@@ -885,21 +893,29 @@ The <tt class="docutils literal"><span class="pre">name="mpi-multi-path&quo
 <p>The SI algorithm is correct to second order in the step-size for deterministic equations, and first order in the step-size for Stratonovich stochastic equations with Wiener noises.  This makes it the highest order stochastic algorithm in XMDS, although there are many sets of equations that integrate more efficiently with lower order algorithms.  When called with the <tt class="docutils literal"><span class="pre">iterations="1"</span></tt> option (the Euler algorithm), it is  [...]
 </div>
 <div class="section" id="runge-kutta-algorithms">
-<span id="rk4"></span><h4>Runge-Kutta algorithms<a class="headerlink" href="#runge-kutta-algorithms" title="Permalink to this headline">¶</a></h4>
+<span id="rk4"></span><span id="index-83"></span><h4>Runge-Kutta algorithms<a class="headerlink" href="#runge-kutta-algorithms" title="Permalink to this headline">¶</a></h4>
 <p>Runge-Kutta algorithms are the workhorse of numerical integration, and XMDS employs two fixed step versions: <tt class="docutils literal"><span class="pre">algorithm="RK4"</span></tt>, which is correct to fourth-order in the step size, and <tt class="docutils literal"><span class="pre">algorithm="RK9"</span></tt>, which is correct to ninth order in the step size.  It must be strongly noted that a higher order of convergence does not automatically mean a superior al [...]
 <p>All Runge-Kutta algorithms are convergent for Stratonovich stochastic equations at the order of the square root of the step-size.  This ‘half-order’ convergence may seem very weak, but for some classes of stochastic equation this improves up to one half of the deterministic order of convergence.  Also, the convergence of some stochastic equations is limited by the ‘deterministic part’, which can be improved dramatically by using a higher order Runge-Kutta method.</p>
 </div>
 <div class="section" id="adaptive-runge-kutta-algorithms">
-<span id="ark45"></span><h4>Adaptive Runge-Kutta algorithms<a class="headerlink" href="#adaptive-runge-kutta-algorithms" title="Permalink to this headline">¶</a></h4>
+<span id="ark45"></span><span id="index-84"></span><h4>Adaptive Runge-Kutta algorithms<a class="headerlink" href="#adaptive-runge-kutta-algorithms" title="Permalink to this headline">¶</a></h4>
 <p>Fixed step integrators can encounter two issues.  First, as the equations or parameters of a simulation are changed, the minimum number of steps required to integrate it may change.  This means that the convergence must be re-tested multiple times for each set of parameters, as overestimating the number of steps required to perform an integration to a specified error tolerance can be very inefficient. Second, even if the minimum acceptable number of steps required is known for a given [...]
 algorithms get around this problem by testing the convergence during the integration, and adjusting the step-size until it reaches some target tolerance.</p>
 <p>XMDS employs two adaptive step-size algorithms based on ‘embedded Runge-Kutta’ methods.  These are Runge-Kutta methods that can output multiple variables that have different convergence.  The difference between the higher-order and the lower-order solutions gives an estimate of the error in each step, which can then be used to estimate an appropriate size for the next step.  We use <tt class="docutils literal"><span class="pre">algorthim="ARK45"</span></tt>, whic [...]
 <p>All adaptive stepsize algorithms require a <tt class="docutils literal"><span class="pre">tolerance</span></tt> attribute, which must be a positive real number that defines the allowable error per step.  It is also possible to specify a <tt class="docutils literal"><span class="pre">max_iterations</span></tt> attribute, which is a positive integer that stops the integrator from trying too many times to find an acceptable stepsize.  The integrator will abort with an error if the number [...]
 <p>As all Runge-Kutta solutions have equal order of convergence for stochastic equations, <em>if the step-size is limited by the stochastic term then the step-size estimation is entirely unreliable</em>.  Adaptive Runge-Kutta algorithms are therefore not appropriate for stochastic equations.</p>
 </div>
+<div class="section" id="richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method">
+<span id="realgorithm"></span><span id="index-85"></span><h4>Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method<a class="headerlink" href="#richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method" title="Permalink to this headline">¶</a></h4>
+<p>The Richardson Extrapolation technique begins with a large initial interval and uses another stepper algorithm to compute the solution for this interval. It does this by subdividing the interval into increasing subintervals (i.e. with smaller and smaller stepsizes) and uses rational extrapolation to produce a higher order result than would be obtained using the other stepper on its own. The number of extrapolations performed is controllable via the <tt class="docutils literal"><span c [...]
+<p>Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as it’s error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool [...]
+<p>A number of combinations of fixed-step, fixed-order Richardson Extrapolation are available in XMDS2. The most notable is the Bulirsch-Stoer method which can be selected using <tt class="docutils literal"><span class="pre">algorithm="BS"</span></tt> or alternatively <tt class="docutils literal"><span class="pre">algorithm="REMM"</span></tt>. Other combinations include ‘RERK4’, ‘RERK9’ and ‘RESI’ (for stochastic equations). Please  [...]
+<p>Richardson Extrapolation in general uses more memory than other integrators as multiple result vectors must be stored at the same time, which is something users should be aware of if the <tt class="docutils literal"><span class="pre">extrapolations</span></tt> attribute is set too high (generally < 10 should be sufficient).</p>
+<p>See the section on the <a class="reference internal" href="bulirschStoer.html#mmdetail"><em>Bulirsch-Stoer Algorithm</em></a> for more details.</p>
+</div>
 </div>
 <div class="section" id="filters-element">
-<span id="filterselement"></span><h3>Filters element<a class="headerlink" href="#filters-element" title="Permalink to this headline">¶</a></h3>
+<span id="filterselement"></span><span id="index-86"></span><h3>Filters element<a class="headerlink" href="#filters-element" title="Permalink to this headline">¶</a></h3>
 <p><a class="reference internal" href="#filterelement"><em>Filter elements</em></a> are used inside <a class="reference internal" href="#sequenceelement"><em>sequence elements</em></a> to execute arbitrary code, or make discontinuous changes in the vectors.  Sometimes it is desirable to perform a filter element at the beginning or end of each step in an integration.  This can be done by placing <tt class="docutils literal"><span class="pre"><filter></span></tt> elements in a <tt cl [...]
 is then executed in the order found in the <tt class="docutils literal"><span class="pre"><filters></span></tt> element.</p>
 <p>Example syntax:</p>
@@ -928,7 +944,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 </div>
 </div>
 <div class="section" id="breakpoint-element">
-<span id="breakpointelement"></span><h2>Breakpoint element<a class="headerlink" href="#breakpoint-element" title="Permalink to this headline">¶</a></h2>
+<span id="breakpointelement"></span><span id="index-87"></span><h2>Breakpoint element<a class="headerlink" href="#breakpoint-element" title="Permalink to this headline">¶</a></h2>
 <p>The <tt class="docutils literal"><span class="pre"><breakpoint></span></tt> element is used to output the full state of one or more vectors.  Unlike sampled output, it executes immediately rather than at the end of a program, and can therefore be used to examine the current state of an ongoing simulation.  The vectors to be output are defined via a <a class="reference internal" href="#dependencies"><em><dependencies></em></a> element, and the basis is chosen by the <tt cla [...]
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><breakpoint</span> <span class="na">filename=</span><span class="s">"groundstate_break.xsil"</span> <span class="na">format=</span><span class="s">"hdf5"</span><span class="nt">></span>
@@ -938,13 +954,13 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 </div>
 </div>
 <div class="section" id="output-element">
-<span id="outputelement"></span><h2>Output element<a class="headerlink" href="#output-element" title="Permalink to this headline">¶</a></h2>
-<p>The <tt class="docutils literal"><span class="pre"><output></span></tt> element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element inside t [...]
+<span id="outputelement"></span><span id="index-88"></span><h2>Output element<a class="headerlink" href="#output-element" title="Permalink to this headline">¶</a></h2>
+<p id="index-89">The <tt class="docutils literal"><span class="pre"><output></span></tt> element describes the output of the program.  It is often inefficient to output the complete state of all vectors at all times during a large simulation, so the purpose of this function is to define subsets of the information required for output.  Each different format of information is described in a different <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> el [...]
 <p>The <tt class="docutils literal"><span class="pre"><samples></span></tt> inside <tt class="docutils literal"><span class="pre"><integrate></span></tt> elements defines a string of integers, with exactly one for each <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element.  During that integration, the variables described in each <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element will be sampled and st [...]
-<div class="section" id="sampling-group-element">
-<span id="samplinggroupelement"></span><h3>Sampling Group Element<a class="headerlink" href="#sampling-group-element" title="Permalink to this headline">¶</a></h3>
+<span class="target" id="index-90"></span><div class="section" id="sampling-group-element">
+<span id="samplinggroupelement"></span><span id="index-91"></span><h3>Sampling Group Element<a class="headerlink" href="#sampling-group-element" title="Permalink to this headline">¶</a></h3>
 <p>A <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a <tt class="docutils literal"><span class="pre"><moments></span></tt> element, just like the <tt class="docutils literal"><span class="pre"><components></span></tt> element of a vector.  They are defined with a ‘<a class= [...]
-<p>The basis of the output is specified by the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute.  This overrides any basis specification in the <tt class="docutils literal"><span class="pre"><dependencies></span></tt> element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding a number in p [...]
+<p id="index-92">The basis of the output is specified by the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute.  This overrides any basis specification in the <tt class="docutils literal"><span class="pre"><dependencies></span></tt> element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding [...]
 <p>The <tt class="docutils literal"><span class="pre">initial_sample</span></tt> attribute, which must be “yes” or “no”, determines whether the moment group will be sampled before any integration occurs.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><output</span> <span class="na">format=</span><span class="s">"hdf5"</span> <span class="na">filename=</span><span class="s">"SimOutput.xsil"</span><span class="nt">></span>
@@ -958,7 +974,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
         <span class="cp">]]></span>
       <span class="nt"></evaluation></span>
     <span class="nt"></computed_vector></span>
-    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"no"</span><span class="nt">></span>
+    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span><span class="nt">></span>
       <span class="nt"><operator_names></span>L<span class="nt"></operator_names></span>
       <span class="cp"><![CDATA[</span>
         <span class="n">L</span> <span class="o">=</span> <span class="o">-</span><span class="n">T</span><span class="o">*</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span><span class="o">/</span><span class="n">mu</span><span class="p">;</span>
@@ -1000,7 +1016,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 </pre></div>
 </div>
 <p>Various properties of dimensions are available.  For example, for a dimension called <tt class="docutils literal"><span class="pre">x</span></tt>:</p>
-<ul class="simple">
+<ul class="simple" id="index-93">
 <li>The number of points is accessible with the variable <tt class="docutils literal"><span class="pre">_lattice_x</span></tt>,</li>
 <li>The minimum range of that dimension is <tt class="docutils literal"><span class="pre">_min_x</span></tt>,</li>
 <li>The maximum range of that dimension is <tt class="docutils literal"><span class="pre">_max_x</span></tt>,</li>
@@ -1050,7 +1066,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 <li><a class="reference internal" href="#the-dft-transform">The “dft” transform</a></li>
 <li><a class="reference internal" href="#the-dct-transform">The “dct” transform</a></li>
 <li><a class="reference internal" href="#the-dst-transform">The “dst” transform</a></li>
-<li><a class="reference internal" href="#the-bessel-transform">The “bessel” transform</a></li>
+<li><a class="reference internal" href="#the-bessel-and-bessel-neumann-transforms">The “bessel” and “bessel-neumann” transforms</a></li>
 <li><a class="reference internal" href="#the-spherical-bessel-transform">The “spherical-bessel” transform</a></li>
 <li><a class="reference internal" href="#the-hermite-gauss-transform">The “hermite-gauss” transform</a></li>
 </ul>
@@ -1076,6 +1092,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 <li><a class="reference internal" href="#si-and-sic-algorithms">SI and SIC algorithms</a></li>
 <li><a class="reference internal" href="#runge-kutta-algorithms">Runge-Kutta algorithms</a></li>
 <li><a class="reference internal" href="#adaptive-runge-kutta-algorithms">Adaptive Runge-Kutta algorithms</a></li>
+<li><a class="reference internal" href="#richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method">Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method</a></li>
 </ul>
 </li>
 <li><a class="reference internal" href="#filters-element">Filters element</a></li>
@@ -1114,13 +1131,13 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/reference_index.html b/documentation/reference_index.html
index 6debac2..8a3b08c 100644
--- a/documentation/reference_index.html
+++ b/documentation/reference_index.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Reference section — XMDS2 2.1.4 documentation</title>
+    <title>Reference section — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -70,6 +72,9 @@
 <li class="toctree-l2"><a class="reference internal" href="reference_elements.html#xmds-specific-c-syntax">XMDS-specific C syntax</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="bulirschStoer.html">Modified Midpoint Method</a></li>
+<li class="toctree-l1"><a class="reference internal" href="bulirschStoer.html#bulirsch-stoer-algorithm">Bulirsch-Stoer Algorithm</a></li>
+<li class="toctree-l1"><a class="reference internal" href="bulirschStoer.html#error-scaling-behaviour">Error Scaling Behaviour</a></li>
 </ul>
 </div>
 </div>
@@ -106,13 +111,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/reference_installation_and_configuration.html b/documentation/reference_installation_and_configuration.html
index f8881ea..2c3430b 100644
--- a/documentation/reference_installation_and_configuration.html
+++ b/documentation/reference_installation_and_configuration.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Configuration, installation and runtime options — XMDS2 2.1.4 documentation</title>
+    <title>Configuration, installation and runtime options — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -43,7 +45,8 @@
         <div class="bodywrapper">
           <div class="body">
             
-  <div class="section" id="configuration-installation-and-runtime-options">
+  <p>:: index:: Configure, Reconfigure, XMDS2 runtime options</p>
+<div class="section" id="configuration-installation-and-runtime-options">
 <span id="referenceconfigurationinstallationruntime"></span><h1>Configuration, installation and runtime options<a class="headerlink" href="#configuration-installation-and-runtime-options" title="Permalink to this headline">¶</a></h1>
 <dl class="docutils">
 <dt>Running the ‘xmds2’ program with the option ‘–help’, gives several options that can change its behaviour at runtime.  These include:</dt>
@@ -106,13 +109,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/reference_schema.html b/documentation/reference_schema.html
index 4d9020f..2686f9d 100644
--- a/documentation/reference_schema.html
+++ b/documentation/reference_schema.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>XMDS2 XML Schema — XMDS2 2.1.4 documentation</title>
+    <title>XMDS2 XML Schema — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,7 @@
           <div class="body">
             
   <div class="section" id="xmds2-xml-schema">
-<span id="referenceschema"></span><h1>XMDS2 XML Schema<a class="headerlink" href="#xmds2-xml-schema" title="Permalink to this headline">¶</a></h1>
+<span id="referenceschema"></span><span id="index-0"></span><h1>XMDS2 XML Schema<a class="headerlink" href="#xmds2-xml-schema" title="Permalink to this headline">¶</a></h1>
 <p>There are many, many XML tags that can make up an XMDS2 script. Most of them are optional, or have default values if not specified. It is, however, useful to know which elements are possible, and their position and relationship to other elements in the script. Shown below is the full XML tree for XMDS2, which shows all possible elements and their position in the tree. An ellipsis (...) outside an element indicates the element above can be repeated indefinitely, and an ellipsis inside  [...]
 <p>The syntax <element /> can be used for lowest-level elements that have attributes but no content, and are shorthand for <element> </element>. This shorthand notation can also be used for elements which can only contain the content “yes” or “no”; in this case the presence of <element /> is equivalent to <element> yes </element>, and the absence of such an element is equivalent to <element> no </element></p>
 <p>The possible attributes and attribute values for each element are not shown; see the individual entries in the Reference section for details.</p>
@@ -225,13 +227,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/reference_usefulXMLSyntax.html b/documentation/reference_usefulXMLSyntax.html
index 0bfffd8..3873ed5 100644
--- a/documentation/reference_usefulXMLSyntax.html
+++ b/documentation/reference_usefulXMLSyntax.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Useful XML Syntax — XMDS2 2.1.4 documentation</title>
+    <title>Useful XML Syntax — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -97,13 +99,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/search.html b/documentation/search.html
index 641c9fe..983b7df 100644
--- a/documentation/search.html
+++ b/documentation/search.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Search — XMDS2 2.1.4 documentation</title>
+    <title>Search — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -26,12 +28,10 @@
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" />
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" />
   <script type="text/javascript">
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
-  
-  <script type="text/javascript" id="searchindexloader"></script>
    
 
   </head>
@@ -42,7 +42,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -93,13 +93,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/searchindex.js b/documentation/searchindex.js
index 23672fc..2f5d80a 100644
--- a/documentation/searchindex.js
+++ b/documentation/searchindex.js
@@ -1 +1 @@
-Search.setIndex({envversion:42,terms:{orthogon:4,four:7,secondli:8,prefix:[3,4],forget:5,xmds2:13,xmds1:[1,15],accur:[8,17,4],"const":[7,4],wigner_arguments_mpi:7,deviat:4,matlab:[1,3,15],under:[6,7,12],slowest:4,worth:8,two_dim:4,everi:[5,14],vastli:17,hermitegauss_transform:4,vector:[9,13,14],terabyt:4,matric:13,readthedoc:14,initialis:[1,5,7,13,14,15,16,17,4],direct:[1,15,4,5],consequ:4,second:[6,5,4,17,7],grid_specifi:13,libxslt:3,even:[5,4,13,7],neg:[13,4],asid:[7,4],"new":[9,8,13,1 [...]
\ No newline at end of file
+Search.setIndex({objects:{},terms:{orthogon:3,ridden:19,interchang:13,four:[15,13],secondli:[8,9],prefix:[2,3],forget:4,xmds2:[0,1,2,3,6,5,15,9,8,10,7,13,14,16,17,18,19,11],xmds1:[6,7,17],accur:[8,19,3],"const":[15,3],wigner_arguments_mpi:15,openmpi:[4,2],matlab:[6,7,12,2,17],under:[5,15,13,3],slowest:3,worth:8,merchant:13,digit:3,everi:[4,13,16],risk:13,vastli:19,"void":13,vector:[0,4,15,8,10,7,6,9,14,16,17,18,19,3],terabyt:3,matric:14,readthedoc:16,initialis:[6,4,15,7,14,16,17,18,19,3] [...]
\ No newline at end of file
diff --git a/documentation/tutorial.html b/documentation/tutorial.html
index 0039408..9292a0e 100644
--- a/documentation/tutorial.html
+++ b/documentation/tutorial.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Quickstart Tutorial — XMDS2 2.1.4 documentation</title>
+    <title>Quickstart Tutorial — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,7 @@
           <div class="body">
             
   <div class="section" id="quickstart-tutorial">
-<span id="quickstarttutorial"></span><h1>Quickstart Tutorial<a class="headerlink" href="#quickstart-tutorial" title="Permalink to this headline">¶</a></h1>
+<span id="quickstarttutorial"></span><span id="index-0"></span><h1>Quickstart Tutorial<a class="headerlink" href="#quickstart-tutorial" title="Permalink to this headline">¶</a></h1>
 <p>In this tutorial, we will create an XMDS2 script to solve the Lorenz Attractor, an example of a dynamical system that exhibits chaos. The equations describing this problem are</p>
 <div class="math">
 \[\begin{split}\frac{dx}{dt} &= \sigma (y - x)\\
@@ -164,7 +166,7 @@ Generating output for lorenz
 </pre></div>
 </div>
 </div></blockquote>
-<p>The program generated by <strong>XMDS2</strong> has now integrated your equations and produced two files.  The first is the XML file “lorenz.xsil”, which contains the all the information used to generate the simulation (including the XMDS2 code) and the metadata description of the output.  The second file is named “lorenz.h5”, which is a <a class="reference external" href="http://www.hdfgroup.org/HDF5">HDF5</a> file containing all of the output data.   You can  [...]
+<p id="index-1">The program generated by <strong>XMDS2</strong> has now integrated your equations and produced two files.  The first is the XML file “lorenz.xsil”, which contains the all the information used to generate the simulation (including the XMDS2 code) and the metadata description of the output.  The second file is named “lorenz.h5”, which is a <a class="reference external" href="http://www.hdfgroup.org/HDF5">HDF5</a> file containing all of the output dat [...]
 <blockquote>
 <div><div class="highlight-none"><div class="highlight"><pre>$ xsil2graphics2 -e lorenz.xsil
 xsil2graphics2 from xmds2 version 2.1 "Happy Mollusc" (r2680)
@@ -301,13 +303,13 @@ ListPointPlot3D[ll]
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/upgrade.html b/documentation/upgrade.html
index 405a7b3..1786fca 100644
--- a/documentation/upgrade.html
+++ b/documentation/upgrade.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Upgrading From XMDS 1.X — XMDS2 2.1.4 documentation</title>
+    <title>Upgrading From XMDS 1.X — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -82,13 +84,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/worked_examples.html b/documentation/worked_examples.html
index 2cca1ac..1626293 100644
--- a/documentation/worked_examples.html
+++ b/documentation/worked_examples.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Worked Examples — XMDS2 2.1.4 documentation</title>
+    <title>Worked Examples — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,7 +46,7 @@
           <div class="body">
             
   <div class="section" id="worked-examples">
-<span id="workedexamples"></span><h1>Worked Examples<a class="headerlink" href="#worked-examples" title="Permalink to this headline">¶</a></h1>
+<span id="workedexamples"></span><span id="index-0"></span><h1>Worked Examples<a class="headerlink" href="#worked-examples" title="Permalink to this headline">¶</a></h1>
 <p>One of the best ways to learn XMDS2 is to see several illustrative examples.  Here are a set of example scripts and explanations of the code, which will be a good way to get started.  As an instructional aid, they are meant to be read sequentially, but the adventurous could try starting with one that looked like a simulation they wanted to run, and adapt for their own purposes.</p>
 <blockquote>
 <div><p><a class="reference internal" href="#nonlinearschrodingerequation"><em>The nonlinear Schrödinger equation</em></a> (partial differential equation)</p>
@@ -58,7 +60,7 @@
 </div></blockquote>
 <p>All of these scripts are available in the included “examples” folder, along with more examples that demonstrate other tricks.  Together, they provide starting points for a huge range of different simulations.</p>
 <div class="section" id="the-nonlinear-schrodinger-equation">
-<span id="nonlinearschrodingerequation"></span><h2>The nonlinear Schrödinger equation<a class="headerlink" href="#the-nonlinear-schrodinger-equation" title="Permalink to this headline">¶</a></h2>
+<span id="nonlinearschrodingerequation"></span><span id="index-1"></span><h2>The nonlinear Schrödinger equation<a class="headerlink" href="#the-nonlinear-schrodinger-equation" title="Permalink to this headline">¶</a></h2>
 <p>This worked example will show a range of new features that can be used in an <strong>XMDS2</strong> script, and we will also examine our first partial differential equation.  We will take the one dimensional nonlinear Schrödinger equation, which is a common nonlinear wave equation.  The equation describing this problem is:</p>
 <div class="math">
 \[\frac{\partial \phi}{\partial \xi} = \frac{i}{2}\frac{\partial^2 \phi}{\partial \tau^2} - \Gamma(\tau)\phi+i|\phi|^2 \phi\]</div>
@@ -120,7 +122,7 @@
       <span class="nt"><samples></span>10 100 10<span class="nt"></samples></span>
       <span class="nt"><operators></span>
         <span class="nt"><integration_vectors></span>wavefunction<span class="nt"></integration_vectors></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span><span class="nt">></span>
           <span class="nt"><operator_names></span>Ltt<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
             <span class="n">Ltt</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">ktau</span><span class="o">*</span><span class="n">ktau</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
@@ -182,7 +184,7 @@
   <span class="nt"><samples></span>10 100 10<span class="nt"></samples></span>
   <span class="nt"><operators></span>
     <span class="nt"><integration_vectors></span>wavefunction<span class="nt"></integration_vectors></span>
-    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+    <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span><span class="nt">></span>
       <span class="nt"><operator_names></span>Ltt<span class="nt"></operator_names></span>
       <span class="cp"><![CDATA[</span>
         <span class="n">Ltt</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">ktau</span><span class="o">*</span><span class="n">ktau</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
@@ -235,7 +237,7 @@
 <p>The final output group above samples the mod square of the Fourier-space wavefunction phi on a sample of 32 points.</p>
 </div>
 <div class="section" id="kubo-oscillator">
-<span id="kubo"></span><h2>Kubo Oscillator<a class="headerlink" href="#kubo-oscillator" title="Permalink to this headline">¶</a></h2>
+<span id="kubo"></span><span id="index-2"></span><h2>Kubo Oscillator<a class="headerlink" href="#kubo-oscillator" title="Permalink to this headline">¶</a></h2>
 <p>This example demonstrates the integration of a stochastic differential equation.  We examine the Kubo oscillator, which is a complex variable whose phase is evolving according to a Wiener noise.  In a suitable rotating frame, the equation of motion for the variable is</p>
 <div class="math">
 \[\frac{dz}{dt} = i z \;\eta\]</div>
@@ -300,9 +302,9 @@
 <span class="nt"></simulation></span>
 </pre></div>
 </div>
-<p>The first new item in this script is the <tt class="docutils literal"><span class="pre"><driver></span></tt> element.  This element enables us to change top level management of the simulation.  Without this element, XMDS2 will integrate the stochastic equation as described.  With this element and the option <tt class="docutils literal"><span class="pre">name="multi-path"</span></tt>, it will integrate it multiple times, using different random numbers each time.  The ou [...]
+<p id="index-3">The first new item in this script is the <tt class="docutils literal"><span class="pre"><driver></span></tt> element.  This element enables us to change top level management of the simulation.  Without this element, XMDS2 will integrate the stochastic equation as described.  With this element and the option <tt class="docutils literal"><span class="pre">name="multi-path"</span></tt>, it will integrate it multiple times, using different random numbers each  [...]
 <p>In the <tt class="docutils literal"><span class="pre"><features></span></tt> element we have included the <tt class="docutils literal"><span class="pre"><error_check></span></tt> element.  This performs the integration first with the specified number of steps (or with the specified tolerance), and then with twice the number of steps (or equivalently reduced tolerance).  The output then includes the difference between the output variables on the coarse and the fine grids as [...]
-<p>We define the stochastic elements in a simulation with the <tt class="docutils literal"><span class="pre"><noise_vector></span></tt> element.</p>
+<p id="index-4">We define the stochastic elements in a simulation with the <tt class="docutils literal"><span class="pre"><noise_vector></span></tt> element.</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><noise_vector</span> <span class="na">name=</span><span class="s">"drivingNoise"</span> <span class="na">dimensions=</span><span class="s">""</span> <span class="na">kind=</span><span class="s">"wiener"</span> <span class="na">type=</span><span class="s">"real"</span> <span class="na">method=</span><span class="s">"dsfmt"</span> <span class="na">seed=</span><sp [...]
  <span class="nt"><components></span>eta<span class="nt"></components></span>
 <span class="nt"></noise_vector></span>
@@ -347,7 +349,7 @@ Time elapsed for simulation is: 2.71 seconds
 </div>
 </div>
 <div class="section" id="fibre-noise">
-<span id="fibre"></span><h2>Fibre Noise<a class="headerlink" href="#fibre-noise" title="Permalink to this headline">¶</a></h2>
+<span id="fibre"></span><span id="index-5"></span><h2>Fibre Noise<a class="headerlink" href="#fibre-noise" title="Permalink to this headline">¶</a></h2>
 <p>This simulation is a stochastic partial differential equation, in which a one-dimensional damped field is subject to a complex noise. This script can be found in <tt class="docutils literal"><span class="pre">examples/fibre.xmds</span></tt>.</p>
 <div class="math">
 \[\frac{\partial \psi}{\partial t} = -i \frac{\partial^2 \psi}{\partial x^2} -\gamma \psi+\beta \frac{1}{\sqrt{2}}\left(\eta_1(x)+i\eta_2(x)\right)\]</div>
@@ -397,7 +399,7 @@ Time elapsed for simulation is: 2.71 seconds
     <span class="nt"><integrate</span> <span class="na">algorithm=</span><span class="s">"SI"</span> <span class="na">iterations=</span><span class="s">"3"</span> <span class="na">interval=</span><span class="s">"2.5"</span> <span class="na">steps=</span><span class="s">"200000"</span><span class="nt">></span>
       <span class="nt"><samples></span>50<span class="nt"></samples></span>
       <span class="nt"><operators></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span><span class="nt">></span>
           <span class="nt"><operator_names></span>L<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
             <span class="n">L</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span><span class="p">;</span>
@@ -425,7 +427,7 @@ Time elapsed for simulation is: 2.71 seconds
 </pre></div>
 </div>
 <p>Note that the noise vector used in this example is complex-valued, and has the argument <tt class="docutils literal"><span class="pre">dimensions="x"</span></tt> to define it as a field of delta-correlated noises along the x-dimension.</p>
-<p>This simulation demonstrates the ease with which XMDS2 can be used in a parallel processing environment.  Instead of using the stochastic driver “multi-path”, we simply replace it with “mpi-multi-path”.  This instructs XMDS2 to write a parallel version of the program based on the widespread <a class="reference external" href="http://www.open-mpi.org/">MPI standard</a>.  This protocol allows multiple processors or clusters of computers to work simultaneously on  [...]
+<span class="target" id="index-6"></span><p id="index-7">This simulation demonstrates the ease with which XMDS2 can be used in a parallel processing environment.  Instead of using the stochastic driver “multi-path”, we simply replace it with “mpi-multi-path”.  This instructs XMDS2 to write a parallel version of the program based on the widespread <a class="reference external" href="http://www.open-mpi.org/">MPI standard</a>.  This protocol allows multiple processo [...]
 <p>Executing this program is slightly different with the MPI option.  The details can change between MPI implementations, but as an example:</p>
 <div class="highlight-none"><div class="highlight"><pre>$xmds2 fibre.xmds
 xmds2 version 2.1 "Happy Mollusc" (r2543)
@@ -480,7 +482,7 @@ Time elapsed for simulation is: 20.99 seconds
 </div>
 </div>
 <div class="section" id="integer-dimensions">
-<span id="integerdimensionexample"></span><h2>Integer Dimensions<a class="headerlink" href="#integer-dimensions" title="Permalink to this headline">¶</a></h2>
+<span id="integerdimensionexample"></span><span id="index-8"></span><h2>Integer Dimensions<a class="headerlink" href="#integer-dimensions" title="Permalink to this headline">¶</a></h2>
 <p>This example shows how to handle systems with integer-valued transverse dimensions.  We will integrate the following set of equations</p>
 <div class="math">
 \[\frac{dx_j}{dt} = x_j \left(x_{j-1}-x_{j+1}\right)\]</div>
@@ -633,7 +635,7 @@ x(j => 0) = 1.0;
     <span class="nt"><integrate</span> <span class="na">algorithm=</span><span class="s">"ARK89"</span> <span class="na">tolerance=</span><span class="s">"1e-7"</span> <span class="na">interval=</span><span class="s">"7.0e-4"</span> <span class="na">steps=</span><span class="s">"100000"</span><span class="nt">></span>
       <span class="nt"><samples></span>50<span class="nt"></samples></span>
       <span class="nt"><operators></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span><span class="nt">></span>
           <span class="nt"><operator_names></span>Lx Ly Lxxx Lxxy Lxyy Lyyy<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
             <span class="n">Lx</span> <span class="o">=</span> <span class="kc">i</span><span class="o">*</span><span class="n">kx</span><span class="p">;</span>
@@ -669,7 +671,7 @@ x(j => 0) = 1.0;
 <span class="nt"></simulation></span>
 </pre></div>
 </div>
-<p>This example demonstrates two new features of XMDS2.  The first is the use of parallel processing for a deterministic problem.  The FFTW library only allows MPI processing of multidimensional vectors.  For multidimensional simulations, the generated program can be parallelised simply by adding the <tt class="docutils literal"><span class="pre">name="distributed-mpi"</span></tt> argument to the <tt class="docutils literal"><span class="pre"><driver></span></tt> element.</p>
+<span class="target" id="index-9"></span><p id="index-10">This example demonstrates two new features of XMDS2.  The first is the use of parallel processing for a deterministic problem.  The FFTW library only allows MPI processing of multidimensional vectors.  For multidimensional simulations, the generated program can be parallelised simply by adding the <tt class="docutils literal"><span class="pre">name="distributed-mpi"</span></tt> argument to the <tt class="docutils literal [...]
 <div class="highlight-xpdeint"><div class="highlight"><pre>$ xmds2 wigner_argument_mpi.xmds
 xmds2 version 2.1 "Happy Mollusc" (r2680)
 Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
@@ -693,7 +695,7 @@ Current timestep: 4.543131e-06
 </pre></div>
 </div>
 <p>The possible acceleration achievable when parallelising a given simulation depends on a great many things including available memory and cache.  As a general rule, it will improve as the simulation size gets larger, but the easiest way to find out is to test.  The optimum speed up is obviously proportional to the number of available processing cores.</p>
-<p>The second new feature in this simulation is the <tt class="docutils literal"><span class="pre"><arguments></span></tt> element in the <tt class="docutils literal"><span class="pre"><features></span></tt> block.  This is a way of specifying global variables with a given type that can then be input at run time.  The variables are specified in a self explanatory way</p>
+<p id="index-11">The second new feature in this simulation is the <tt class="docutils literal"><span class="pre"><arguments></span></tt> element in the <tt class="docutils literal"><span class="pre"><features></span></tt> block.  This is a way of specifying global variables with a given type that can then be input at run time.  The variables are specified in a self explanatory way</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><arguments></span>
   <span class="nt"><argument</span> <span class="na">name=</span><span class="s">"omega"</span> <span class="na">type=</span><span class="s">"real"</span> <span class="na">default_value=</span><span class="s">"0.0"</span> <span class="nt">/></span>
     ...
@@ -739,7 +741,7 @@ Variables that can be specified on the command line:
 <span class="nt"></info></span>
 </pre></div>
 </div>
-<p>Finally, note the shorthand used in the output group</p>
+<p id="index-12">Finally, note the shorthand used in the output group</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="cp"><![CDATA[</span>
   <span class="n">_SAMPLE_COMPLEX</span><span class="p">(</span><span class="n">W</span><span class="p">);</span>
 <span class="cp">]]></span>
@@ -851,7 +853,7 @@ Variables that can be specified on the command line:
         <span class="nt"></filter></span>
       <span class="nt"></filters></span>
       <span class="nt"><operators></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span><span class="nt">></span>
           <span class="nt"><operator_names></span>T<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
             <span class="n">T</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.5</span><span class="o">*</span><span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">;</span>
@@ -892,7 +894,7 @@ Variables that can be specified on the command line:
 </pre></div>
 </div>
 <p>We have used the <tt class="docutils literal"><span class="pre">plan="exhasutive"</span></tt> option in the <tt class="docutils literal"><span class="pre"><fftw></span></tt> element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the ~/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.</p>
-<p>This simulation introduces the first example of a very powerful feature in XMDS2: the <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vector can never  [...]
+<p id="index-13">This simulation introduces the first example of a very powerful feature in XMDS2: the <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vec [...]
 <p>The difference between a computed vector and a stored vector is emphasised by the replacement of the <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element with an <tt class="docutils literal"><span class="pre"><evaluation></span></tt> element.  Apart from the name, they have virtually identical purpose and syntax.</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><computed_vector</span> <span class="na">name=</span><span class="s">"normalisation"</span> <span class="na">dimensions=</span><span class="s">""</span> <span class="na">type=</span><span class="s">"real"</span><span class="nt">></span>
   <span class="nt"><components></span> Ncalc <span class="nt"></components></span>
@@ -1033,7 +1035,7 @@ Variables that can be specified on the command line:
         <span class="nt"></filter></span>
       <span class="nt"></filters></span>
       <span class="nt"><operators></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">constant=</span><span class="s">"yes"</span> <span class="na">type=</span><span class="s">"real"</span><span class="nt">></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">type=</span><span class="s">"real"</span><span class="nt">></span>
           <span class="nt"><operator_names></span>L<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
             <span class="n">L</span> <span class="o">=</span> <span class="n">EnergyOffset</span><span class="o">/</span><span class="n">hbar</span> <span class="o">-</span> <span class="p">(</span><span class="n">nx</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span><span class="o">*</span><span class="n">omegarho</span><span class="p">;</span>
@@ -1164,14 +1166,20 @@ Variables that can be specified on the command line:
       <span class="nt"><samples></span>20 100<span class="nt"></samples></span>
       <span class="nt"><operators></span>
         <span class="nt"><integration_vectors></span>wavefunction<span class="nt"></integration_vectors></span>
-        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ex"</span> <span class="na">constant=</span><span class="s">"yes"</span><span class="nt">></span>
-          <span class="nt"><operator_names></span>Ltt<span class="nt"></operator_names></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">dimensions=</span><span class="s">"x"</span><span class="nt">></span>
+          <span class="nt"><operator_names></span>Lx<span class="nt"></operator_names></span>
+          <span class="cp"><![CDATA[</span>
+            <span class="n">Lx</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
+          <span class="cp">]]></span>
+        <span class="nt"></operator></span>
+        <span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span> <span class="na">dimensions=</span><span class="s">"y"</span><span class="nt">></span>
+          <span class="nt"><operator_names></span>Ly<span class="nt"></operator_names></span>
           <span class="cp"><![CDATA[</span>
-            <span class="n">Ltt</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="p">(</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span><span class="o">+</span><span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">)</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
+            <span class="n">Ly</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
           <span class="cp">]]></span>
         <span class="nt"></operator></span>
         <span class="cp"><![CDATA[</span>
-        <span class="n">dphi_dt</span> <span class="o">=</span> <span class="n">Ltt</span><span class="p">[</span><span class="n">phi</span><span class="p">]</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">U</span><span class="o">*</span><span class="n">VPhi</span><span class="p">;</span>
+        <span class="n">dphi_dt</span> <span class="o">=</span> <span class="n">Lx</span><span class="p">[</span><span class="n">phi</span><span class="p">]</span> <span class="o">+</span> <span class="n">Ly</span><span class="p">[</span><span class="n">phi</span><span class="p">]</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="n">U</span><span class="o">*</span><span class="n">VPhi</span><span class="p">;</span>
         <span class="cp">]]></span>
         <span class="nt"><dependencies></span>spatialInteraction coupling<span class="nt"></dependencies></span>
       <span class="nt"></operators></span>
@@ -1197,7 +1205,7 @@ Variables that can be specified on the command line:
 <span class="nt"></simulation></span>
 </pre></div>
 </div>
-<p>The only truly new feature in this script is the “aliases” option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  <span class="math">\(V_{j k}\)</span> term is required to be a square array of dimension of this number of components.  If we wrote the k-index of <span class="math">\(V_{j k}\)</span> using a separate <tt class="docutils literal"><span class="pre"><dimension></span></tt> elemen [...]
+<p id="index-14">The only truly new feature in this script is the “aliases” option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  <span class="math">\(V_{j k}\)</span> term is required to be a square array of dimension of this number of components.  If we wrote the k-index of <span class="math">\(V_{j k}\)</span> using a separate <tt class="docutils literal"><span class="pre"><dimension></spa [...]
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><dimension</span> <span class="na">name=</span><span class="s">"j"</span> <span class="na">type=</span><span class="s">"integer"</span> <span class="na">lattice=</span><span class="s">"2"</span> <span class="na">domain=</span><span class="s">"(0,1)"</span> <span class="na">aliases=</span><span class="s">"k"</span><span class="nt">/></span>
 </pre></div>
 </div>
@@ -1217,6 +1225,18 @@ Variables that can be specified on the command line:
 </pre></div>
 </div>
 <p>Since the output dimensions of the computed vector do not include a “k” index, this index is integrated.  The volume element for this summation is the spacing between neighbouring values of “j”, and since this spacing is one, this integration is just a sum over k, as required.</p>
+<p>This example also demonstrates an optimisation for the IP operators by separating the <span class="math">\(x\)</span> and <span class="math">\(y\)</span> parts of the operator (see <a class="reference internal" href="optimisation_hints.html#optimisingipoperators"><em>Optimising with the Interaction Picture (IP) operator</em></a>).  This gives an approximately 30% speed improvement over the more straightforward implementation:</p>
+<div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><operator</span> <span class="na">kind=</span><span class="s">"ip"</span><span class="nt">></span>
+  <span class="nt"><operator_names></span>L<span class="nt"></operator_names></span>
+  <span class="cp"><![CDATA[</span>
+    <span class="n">L</span> <span class="o">=</span> <span class="o">-</span><span class="kc">i</span><span class="o">*</span><span class="p">(</span><span class="n">kx</span><span class="o">*</span><span class="n">kx</span> <span class="o">+</span> <span class="n">ky</span><span class="o">*</span><span class="n">ky</span><span class="p">)</span><span class="o">*</span><span class="mf">0.5</span><span class="p">;</span>
+  <span class="cp">]]></span>
+<span class="nt"></operator></span>
+<span class="cp"><![CDATA[</span>
+  <span class="n">dphi_dt</span> <span class="o">=</span> <span class="n">L</span><span class="p">[</span><span class="n">phi</span><span class="p">]</span> <span class="o">-</span> <span class="kc">i</span><span class="o">*</span><span class="n">U</span><span class="o">*</span><span class="n">VPhi</span><span class="p">;</span>
+<span class="cp">]]></span>
+</pre></div>
+</div>
 <p>By this point, we have introduced most of the important features in XMDS2.  More details on other transform options and rarely used features can be found in the <a class="reference internal" href="advanced_topics.html#advancedtopics"><em>Advanced Topics</em></a> section.</p>
 </div>
 </div>
@@ -1268,13 +1288,13 @@ Variables that can be specified on the command line:
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/documentation/xsil2graphics2.html b/documentation/xsil2graphics2.html
index 30ba19d..a7728d8 100644
--- a/documentation/xsil2graphics2.html
+++ b/documentation/xsil2graphics2.html
@@ -1,3 +1,5 @@
+
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
@@ -6,15 +8,15 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>xsil2graphics2 — XMDS2 2.1.4 documentation</title>
+    <title>xsil2graphics2 — XMDS2 2.2.0 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
     
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '2.1.4',
+        URL_ROOT:    '',
+        VERSION:     '2.2.0',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.1.4 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -34,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -44,8 +46,8 @@
           <div class="body">
             
   <div class="section" id="xsil2graphics2">
-<span id="id1"></span><h1>xsil2graphics2<a class="headerlink" href="#xsil2graphics2" title="Permalink to this headline">¶</a></h1>
-<p><strong>xsil2graphics2</strong> is a way of converting ”.xsil” files to formats that other programs can read.  The syntax is described in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a>, and by using the <tt class="docutils literal"><span class="pre">xsil2graphics2</span> <span class="pre">--help</span></tt> option.  It currently can covert any output format for use by Mathematica.</p>
+<span id="index-0"></span><span id="id1"></span><h1>xsil2graphics2<a class="headerlink" href="#xsil2graphics2" title="Permalink to this headline">¶</a></h1>
+<p><strong>xsil2graphics2</strong> is a way of converting ”.xsil” files to formats that other programs can read.  The syntax is described in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a>, and by using the <tt class="docutils literal"><span class="pre">xsil2graphics2</span> <span class="pre">--help</span></tt> option.  It currently can covert any output format for use by Mathematica, MATLAB and Octave.</p>
 <p>We recommend HDF5 format instead of the binary format for output and input, as many visualisation tools can already read/write to this format directly.</p>
 </div>
 
@@ -81,13 +83,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.1.4 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
-        © Copyright 2008-2013, Graham Dennis, Joe Hope and Mattias Johnsson.
-      Last updated on Sep 28, 2013.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b2.
+        © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
+      Last updated on Jan 14, 2014.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/examples/2DMultistateSE.xmds b/examples/2DMultistateSE.xmds
index 627a6d6..b693392 100644
--- a/examples/2DMultistateSE.xmds
+++ b/examples/2DMultistateSE.xmds
@@ -68,14 +68,20 @@
       <samples>20 100</samples>
       <operators>
         <integration_vectors>wavefunction</integration_vectors>
-        <operator kind="ex" constant="yes">
-          <operator_names>Ltt</operator_names>
+        <operator kind="ip" dimensions="x">
+          <operator_names>Lx</operator_names>
           <![CDATA[
-            Ltt = -i*(kx*kx+ky*ky)*0.5;
+            Lx = -i*kx*kx*0.5;
+          ]]>
+        </operator>
+        <operator kind="ip" dimensions="y">
+          <operator_names>Ly</operator_names>
+          <![CDATA[
+            Ly = -i*ky*ky*0.5;
           ]]>
         </operator>
         <![CDATA[
-        dphi_dt = Ltt[phi] -i*U*VPhi;
+        dphi_dt = Lx[phi] + Ly[phi] -i*U*VPhi;
         ]]>
         <dependencies>spatialInteraction coupling</dependencies>
       </operators>
diff --git a/examples/bessel_cosine_groundstate.xmds b/examples/bessel_cosine_groundstate.xmds
index e9ba6de..55ca539 100644
--- a/examples/bessel_cosine_groundstate.xmds
+++ b/examples/bessel_cosine_groundstate.xmds
@@ -102,7 +102,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*hbar/M*(kr*kr + kz*kz);
diff --git a/examples/bessel_cosine_stochastic_groundstate.xmds b/examples/bessel_cosine_stochastic_groundstate.xmds
index 06f75ff..f45c53f 100644
--- a/examples/bessel_cosine_stochastic_groundstate.xmds
+++ b/examples/bessel_cosine_stochastic_groundstate.xmds
@@ -106,7 +106,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*hbar/M*(kr*kr + kz*kz);
diff --git a/examples/bessel_transform2.xmds b/examples/bessel_neumann_wave_equation.xmds
similarity index 82%
copy from examples/bessel_transform2.xmds
copy to examples/bessel_neumann_wave_equation.xmds
index c0ba5b6..3d3c52f 100644
--- a/examples/bessel_transform2.xmds
+++ b/examples/bessel_neumann_wave_equation.xmds
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>bessel_transform2</name>
+  <name>bessel_neumann_wave_equation</name>
   <author>Graham Dennis</author>
   <description>
     Solve the wave equation on a disk of radius 1 utilising cylindrical symmetry
-    by using the Bessel function transform.
+    by using the Bessel function transform.  The boundary condition at r=1 is d/dr u = 0
   </description>
   
   <features>
     <benchmark />
-    <!-- <error_check /> -->
     <bing />
     <validation kind="run-time" />
     <globals>
@@ -26,7 +25,8 @@
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
       <!-- Volume prefactor = 2 \pi is to cover the suppressed integration over \theta -->
-      <dimension name="x" lattice="100"  domain="(0, 1)" transform="bessel" order="3" volume_prefactor="2.0*M_PI"/>
+      <!-- transform="bessel-neumann" means cylindrical symmetry with zero derivative boundary conditions at the outer boundary -->
+      <dimension name="x" lattice="100"  domain="(0, 1)" transform="bessel-neumann" order="0" volume_prefactor="2.0*M_PI"/>
     </transverse_dimensions>
   </geometry>
   
@@ -43,10 +43,11 @@
   </vector>
   
   <sequence>
+    
     <integrate algorithm="ARK45" tolerance="1e-6" interval="40e-3" steps="400">
       <samples>100 100</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="kx" type="real">
+        <operator kind="ex" basis="kx" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
@@ -60,7 +61,8 @@
       </operators>
     </integrate>
   </sequence>
-  <output>
+  
+  <output format="hdf5">
       <sampling_group basis="x" initial_sample="yes">
         <moments>amp</moments>
         <dependencies>main</dependencies>
diff --git a/examples/bessel_transform.xmds b/examples/bessel_transform.xmds
index a63d4a5..ec21ec6 100644
--- a/examples/bessel_transform.xmds
+++ b/examples/bessel_transform.xmds
@@ -45,7 +45,7 @@
     <integrate algorithm="ARK45" tolerance="1e-6" interval="4e-3" steps="400">
       <samples>100 100</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="kx" type="real">
+        <operator kind="ex" basis="kx" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/bessel_transform2.xmds b/examples/bessel_transform2.xmds
index c0ba5b6..79fa8a4 100644
--- a/examples/bessel_transform2.xmds
+++ b/examples/bessel_transform2.xmds
@@ -46,7 +46,7 @@
     <integrate algorithm="ARK45" tolerance="1e-6" interval="40e-3" steps="400">
       <samples>100 100</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="kx" type="real">
+        <operator kind="ex" basis="kx" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/cpc_ex_scaling.xmds b/examples/cpc_ex_scaling.xmds
index 1a99d4b..6959892 100644
--- a/examples/cpc_ex_scaling.xmds
+++ b/examples/cpc_ex_scaling.xmds
@@ -44,7 +44,7 @@
       <samples> 0 </samples>
       <operators>
 
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/cpc_example1.xmds b/examples/cpc_example1.xmds
index 153e697..107b992 100644
--- a/examples/cpc_example1.xmds
+++ b/examples/cpc_example1.xmds
@@ -44,7 +44,7 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/cpc_example2.xmds b/examples/cpc_example2.xmds
index 72c69ec..76d8c95 100644
--- a/examples/cpc_example2.xmds
+++ b/examples/cpc_example2.xmds
@@ -46,7 +46,7 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * (kx * kx + ky * ky);
diff --git a/examples/cpc_example3.xmds b/examples/cpc_example3.xmds
index 0337827..c74bb45 100644
--- a/examples/cpc_example3.xmds
+++ b/examples/cpc_example3.xmds
@@ -44,7 +44,7 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/cpc_example4.xmds b/examples/cpc_example4.xmds
index 9e5df14..7515ba3 100644
--- a/examples/cpc_example4.xmds
+++ b/examples/cpc_example4.xmds
@@ -48,10 +48,17 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
-          <operator_names> T </operator_names>
+        <operator kind="ip" dimensions="x">
+          <operator_names> Tx </operator_names>
           <![CDATA[
-            T = -i * 0.5 * (kx * kx + ky * ky);
+            Tx = -i * 0.5 * (kx * kx);
+          ]]>
+        </operator>
+
+        <operator kind="ip" dimensions="y">
+          <operator_names> Ty </operator_names>
+          <![CDATA[
+            Ty = -i * 0.5 * (ky * ky);
           ]]>
         </operator>
 
@@ -60,14 +67,14 @@
         </integration_vectors> 
         <dependencies> potential </dependencies>
         <![CDATA[
-          dpsi_dt = T[psi] - i * (V + g * mod2(psi)) * psi;
+          dpsi_dt = Tx[psi] + Ty[psi] - i * (V + g * mod2(psi)) * psi;
         ]]>
       </operators>
     </integrate>
   </sequence>
 
   <output format="hdf5">
-    <sampling_group initial_sample="yes" basis="x y">
+    <sampling_group initial_sample="yes" basis="kx ky">
       <dependencies> wavefunction </dependencies>
       <moments> psireal psiimag </moments>
       <![CDATA[
diff --git a/examples/cpc_example4_3d.xmds b/examples/cpc_example4_3d.xmds
index d4abde4..94eb1b6 100644
--- a/examples/cpc_example4_3d.xmds
+++ b/examples/cpc_example4_3d.xmds
@@ -50,10 +50,24 @@
       <samples> 0 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
-          <operator_names> T </operator_names>
+        <operator kind="ip" dimensions="x">
+          <operator_names> Tx </operator_names>
           <![CDATA[
-            T = -i * 0.5 * (kx * kx + ky * ky + kz*kz);
+            Tx = -i * 0.5 * (kx * kx);
+          ]]>
+        </operator>
+
+        <operator kind="ip" dimensions="y">
+          <operator_names> Ty </operator_names>
+          <![CDATA[
+            Ty = -i * 0.5 * (ky * ky);
+          ]]>
+        </operator>
+
+        <operator kind="ip" dimensions="z">
+          <operator_names> Tz </operator_names>
+          <![CDATA[
+            Tz = -i * 0.5 * (kz*kz);
           ]]>
         </operator>
 
@@ -62,7 +76,7 @@
         </integration_vectors> 
         <dependencies> potential </dependencies>
         <![CDATA[
-          dpsi_dt = T[psi] - i * (V + g * mod2(psi)) * psi;
+          dpsi_dt = Tx[psi] + Ty[psi] + Tz[psi] - i * (V + g * mod2(psi)) * psi;
         ]]>
       </operators>
     </integrate>
diff --git a/examples/cpc_example5.xmds b/examples/cpc_example5.xmds
index 568b6ae..d98bee4 100644
--- a/examples/cpc_example5.xmds
+++ b/examples/cpc_example5.xmds
@@ -81,7 +81,7 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/cpc_example6.xmds b/examples/cpc_example6.xmds
index 4c7fb97..485ab43 100644
--- a/examples/cpc_example6.xmds
+++ b/examples/cpc_example6.xmds
@@ -52,7 +52,7 @@
       <samples> 50 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/cpc_ip_scaling.xmds b/examples/cpc_ip_scaling.xmds
index ecfc667..256d73e 100644
--- a/examples/cpc_ip_scaling.xmds
+++ b/examples/cpc_ip_scaling.xmds
@@ -44,7 +44,7 @@
       <samples> 0 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names> T </operator_names>
           <![CDATA[
             T = -i * 0.5 * kx * kx;
diff --git a/examples/diffusion.xmds b/examples/diffusion.xmds
index 749e3e3..0f831fb 100644
--- a/examples/diffusion.xmds
+++ b/examples/diffusion.xmds
@@ -36,7 +36,7 @@
     <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" basis="x ky" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/diffusion_arguments.xmds b/examples/diffusion_arguments.xmds
index 90b266f..f5e69f4 100644
--- a/examples/diffusion_arguments.xmds
+++ b/examples/diffusion_arguments.xmds
@@ -65,7 +65,7 @@
     <integrate algorithm="RK4" interval="time_interval" steps="24">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky">
+        <operator kind="ip" basis="x ky">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/diffusion_dst.xmds b/examples/diffusion_dst.xmds
index 17163e9..7df8d69 100644
--- a/examples/diffusion_dst.xmds
+++ b/examples/diffusion_dst.xmds
@@ -37,7 +37,7 @@
     <integrate algorithm="ARK45" interval="20.0" steps="2400" tolerance="1e-5">
       <samples>48</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="ky">
+        <operator kind="ip" basis="ky">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/diffusion_mpi.xmds b/examples/diffusion_mpi.xmds
index 593c8a6..37cb39b 100644
--- a/examples/diffusion_mpi.xmds
+++ b/examples/diffusion_mpi.xmds
@@ -38,7 +38,7 @@
     <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24 4</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky">
+        <operator kind="ip" basis="x ky">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/diffusion_openmp.xmds b/examples/diffusion_openmp.xmds
index 710153b..79c6b62 100644
--- a/examples/diffusion_openmp.xmds
+++ b/examples/diffusion_openmp.xmds
@@ -37,7 +37,7 @@
     <integrate algorithm="RK9" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24 4</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" basis="x ky" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/diffusion_win.xmds b/examples/diffusion_win.xmds
index 6a012b9..523772c 100644
--- a/examples/diffusion_win.xmds
+++ b/examples/diffusion_win.xmds
@@ -36,7 +36,7 @@
     <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky">
+        <operator kind="ip" basis="x ky">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -0.02*ky*ky;
diff --git a/examples/excitedstate_gaussian.xmds b/examples/excitedstate_gaussian.xmds
index da89d7f..2170bfe 100644
--- a/examples/excitedstate_gaussian.xmds
+++ b/examples/excitedstate_gaussian.xmds
@@ -98,7 +98,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="no">
+        <operator kind="ip">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*ky*ky;
diff --git a/examples/fibre.xmds b/examples/fibre.xmds
index a39aa35..7af958c 100644
--- a/examples/fibre.xmds
+++ b/examples/fibre.xmds
@@ -45,7 +45,7 @@
     <integrate algorithm="SI" iterations="3" interval="2.5" steps="200000">
       <samples>50</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -i*kx*kx;
diff --git a/examples/fibre_noisevectors.xmds b/examples/fibre_noisevectors.xmds
index 2cca223..3a7dd1a 100644
--- a/examples/fibre_noisevectors.xmds
+++ b/examples/fibre_noisevectors.xmds
@@ -53,7 +53,7 @@
     <integrate algorithm="SI" iterations="3" interval="0.25" steps="200000">
       <samples>50</samples>
       <operators>
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -i*kx*kx;
diff --git a/examples/groundstate_demo2.xmds b/examples/groundstate_demo2.xmds
index 02136e0..20a03c1 100644
--- a/examples/groundstate_demo2.xmds
+++ b/examples/groundstate_demo2.xmds
@@ -127,7 +127,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*ky*ky;
diff --git a/examples/groundstate_gaussian.xmds b/examples/groundstate_gaussian.xmds
index 9d3064e..82d7603 100644
--- a/examples/groundstate_gaussian.xmds
+++ b/examples/groundstate_gaussian.xmds
@@ -69,7 +69,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes" type="real">
+        <operator kind="ip" type="real">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*ky*ky;
diff --git a/examples/groundstate_workedexamples.xmds b/examples/groundstate_workedexamples.xmds
index a2fca2d..125df9c 100644
--- a/examples/groundstate_workedexamples.xmds
+++ b/examples/groundstate_workedexamples.xmds
@@ -87,7 +87,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes">
+        <operator kind="ip">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*ky*ky;
diff --git a/examples/hermitegauss_groundstate.xmds b/examples/hermitegauss_groundstate.xmds
index 92be60e..8603a7d 100644
--- a/examples/hermitegauss_groundstate.xmds
+++ b/examples/hermitegauss_groundstate.xmds
@@ -66,7 +66,7 @@
         </filter>
       </filters>
       <operators>
-        <operator kind="ip" constant="yes" type="real">
+        <operator kind="ip" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = - (nx + 0.5)*omegarho;
diff --git a/examples/hermitegauss_transform.xmds b/examples/hermitegauss_transform.xmds
index ee6dd39..484ef3e 100644
--- a/examples/hermitegauss_transform.xmds
+++ b/examples/hermitegauss_transform.xmds
@@ -39,7 +39,7 @@
     <integrate algorithm="RK4" tolerance="1e-6" interval="10." steps="100">
       <samples>100 100 100</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="nx">
+        <operator kind="ip" basis="nx">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -i*(nx + 0.5);
diff --git a/examples/hermitegauss_transform_2d.xmds b/examples/hermitegauss_transform_2d.xmds
index e870570..33aca48 100644
--- a/examples/hermitegauss_transform_2d.xmds
+++ b/examples/hermitegauss_transform_2d.xmds
@@ -57,7 +57,7 @@
     <integrate algorithm="ARK45" tolerance="1e-6" interval="1e-3" steps="400">
       <samples>10 1 100</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="nx ny">
+        <operator kind="ip" basis="nx ny">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -i*(nx + ny + 1.0)*omega;
diff --git a/examples/hermitegauss_transform_2d_mpi.xmds b/examples/hermitegauss_transform_2d_mpi.xmds
index 69334d5..8aec6f0 100644
--- a/examples/hermitegauss_transform_2d_mpi.xmds
+++ b/examples/hermitegauss_transform_2d_mpi.xmds
@@ -59,7 +59,7 @@
     <integrate algorithm="RK4" tolerance="1e-6" interval="1e-3" steps="400">
       <samples>10 1 10</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="nx ny">
+        <operator kind="ip" basis="nx ny">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -i*(nx + ny + 1.0)*omega;
diff --git a/examples/nlse.xmds b/examples/nlse.xmds
index 4f37011..afb05f6 100644
--- a/examples/nlse.xmds
+++ b/examples/nlse.xmds
@@ -56,7 +56,7 @@
       <samples>10 100 10</samples>
       <operators>
         <integration_vectors>wavefunction</integration_vectors>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>Ltt</operator_names>
           <![CDATA[
             Ltt = -i*ktau*ktau*0.5;
diff --git a/examples/schroedinger_gaussian.xmds b/examples/schroedinger_gaussian.xmds
index a4dbd23..71c631b 100644
--- a/examples/schroedinger_gaussian.xmds
+++ b/examples/schroedinger_gaussian.xmds
@@ -61,7 +61,7 @@
     <integrate algorithm="RK9" interval="10.0" steps="10000" tolerance="1e-8">
       <samples>500 500</samples>
       <operators>
-        <operator kind="ip" constant="no" type="imaginary">
+        <operator kind="ip" type="imaginary">
           <operator_names>T</operator_names>
           <![CDATA[
             T = -0.5*i*ky*ky;
diff --git a/examples/sine_cross.xmds b/examples/sine_cross.xmds
index b0a4525..31ccc9d 100644
--- a/examples/sine_cross.xmds
+++ b/examples/sine_cross.xmds
@@ -74,14 +74,14 @@
             ]]>
           </boundary_condition>
           
-          <operator kind="ip" constant="yes">
+          <operator kind="ip">
             <operator_names>L</operator_names>
             <![CDATA[
               L = i;
             ]]>
           </operator>
           
-          <operator kind="ex" constant="yes">
+          <operator kind="ex">
             <operator_names>M</operator_names>
             <![CDATA[
               M = i;
diff --git a/examples/vibstring.xmds b/examples/vibstring.xmds
index fd6fc4a..fb564c1 100644
--- a/examples/vibstring.xmds
+++ b/examples/vibstring.xmds
@@ -54,7 +54,7 @@
         </evaluation>
       </computed_vector>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring2.xmds b/examples/vibstring2.xmds
index 6aa3033..66c37c8 100644
--- a/examples/vibstring2.xmds
+++ b/examples/vibstring2.xmds
@@ -71,7 +71,7 @@
             printf(".");
           ]]>
         </operator>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring3.xmds b/examples/vibstring3.xmds
index 11ba687..75ab8a4 100644
--- a/examples/vibstring3.xmds
+++ b/examples/vibstring3.xmds
@@ -79,7 +79,7 @@
       </computed_vector>
       
       <operators>  <!-- For the x y dimensions -->
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
@@ -124,7 +124,7 @@
             ]]>
           </evaluation>
         </computed_vector>
-        <operator kind="ex" constant="no">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring_circle.xmds b/examples/vibstring_circle.xmds
index 010cfa8..bc0084d 100644
--- a/examples/vibstring_circle.xmds
+++ b/examples/vibstring_circle.xmds
@@ -74,7 +74,7 @@
     <integrate algorithm="ARK89" tolerance="1e-7" interval="2e-2" steps="1000">
       <samples>50</samples>
       <operators>
-        <operator kind="ex" constant="no">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T_mu*(kx*kx + ky*ky);
diff --git a/examples/vibstring_circle_mpi.xmds b/examples/vibstring_circle_mpi.xmds
index e8edb75..09e8fd8 100644
--- a/examples/vibstring_circle_mpi.xmds
+++ b/examples/vibstring_circle_mpi.xmds
@@ -74,7 +74,7 @@
     <integrate algorithm="ARK45" tolerance="1e-5" interval="2e-2" steps="1000">
       <samples>50 50</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*(kx*kx + ky*ky)/mu;
diff --git a/examples/vibstring_circle_spectral.xmds b/examples/vibstring_circle_spectral.xmds
index 48a9e85..2c42b99 100644
--- a/examples/vibstring_circle_spectral.xmds
+++ b/examples/vibstring_circle_spectral.xmds
@@ -77,7 +77,7 @@
     <integrate algorithm="ARK89" tolerance="1e-7" interval="4e-2" steps="1000" home_space="k">
       <samples>100 100 100</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="x y">
+        <operator kind="ex" basis="x y">
           <operator_names>L</operator_names>
           <![CDATA[
           real r2 = x*x + y*y;
@@ -113,7 +113,7 @@
       <sampling_group basis="x(0) y(0)" initial_sample="yes">
         <moments>energy</moments>
         <dependencies>main</dependencies>
-        <operator kind="ex" constant="no">
+        <operator kind="ex">
           <operator_names>Lx Ly</operator_names>
           <![CDATA[
             Lx = i*kx;
diff --git a/examples/vibstring_dct.xmds b/examples/vibstring_dct.xmds
index 1bb89bb..eb6dbe7 100644
--- a/examples/vibstring_dct.xmds
+++ b/examples/vibstring_dct.xmds
@@ -54,7 +54,7 @@
         </evaluation>
       </computed_vector>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring_dirichlet_boundary.xmds b/examples/vibstring_dirichlet_boundary.xmds
index dc930b5..18b47e0 100644
--- a/examples/vibstring_dirichlet_boundary.xmds
+++ b/examples/vibstring_dirichlet_boundary.xmds
@@ -77,7 +77,7 @@
     <integrate algorithm="ARK89" tolerance="1e-8" interval="2e-2" steps="1000">
       <samples>500 1</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring_dirichlet_boundary2.xmds b/examples/vibstring_dirichlet_boundary2.xmds
index ae5055c..be3cb9f 100644
--- a/examples/vibstring_dirichlet_boundary2.xmds
+++ b/examples/vibstring_dirichlet_boundary2.xmds
@@ -69,7 +69,7 @@
     <integrate algorithm="ARK89" tolerance="1e-8" interval="2e-2" steps="1000">
       <samples>500</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
diff --git a/examples/vibstring_ellipse.xmds b/examples/vibstring_ellipse.xmds
index 30650ba..b481c18 100644
--- a/examples/vibstring_ellipse.xmds
+++ b/examples/vibstring_ellipse.xmds
@@ -67,7 +67,7 @@
     <integrate algorithm="ARK89" tolerance="1e-8" interval="2e-2" steps="1000">
       <samples>50</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="x y">
+        <operator kind="ex" basis="x y">
           <operator_names>L</operator_names>
           <![CDATA[
           real r_norm = sqrt(x*x/ellipse_a/ellipse_a + y*y/ellipse_b/ellipse_b);
diff --git a/examples/wigner.xmds b/examples/wigner.xmds
index c10dd2c..4020415 100644
--- a/examples/wigner.xmds
+++ b/examples/wigner.xmds
@@ -77,7 +77,7 @@
     <integrate algorithm="ARK89" tolerance="1e-7" interval="7.0" steps="100000">
       <samples>200</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>Lx Ly Lxxx Lxxy Lxyy Lyyy</operator_names>
           <![CDATA[
             Lx = i*kx;
diff --git a/examples/wigner_argument_mpi.xmds b/examples/wigner_argument_mpi.xmds
index ff2232f..6c056a2 100644
--- a/examples/wigner_argument_mpi.xmds
+++ b/examples/wigner_argument_mpi.xmds
@@ -67,7 +67,7 @@
     <integrate algorithm="ARK89" tolerance="1e-7" interval="7.0e-2" steps="100000">
       <samples>50</samples>
       <operators>
-        <operator kind="ex" constant="yes">
+        <operator kind="ex">
           <operator_names>Lx Ly Lxxx Lxxy Lxyy Lyyy</operator_names>
           <![CDATA[
             Lx = i*kx;
diff --git a/examples/wigner_spectral.xmds b/examples/wigner_spectral.xmds
index 699cb23..58d2903 100644
--- a/examples/wigner_spectral.xmds
+++ b/examples/wigner_spectral.xmds
@@ -84,7 +84,7 @@
     <integrate algorithm="ARK89" tolerance="1e-7" interval="2.0*M_PI" steps="100000" home_space="k">
       <samples>200</samples>
       <operators>
-        <operator kind="ex" constant="no" basis="x y">
+        <operator kind="ex" basis="x y">
           <operator_names>Lx Ly LxR LyR</operator_names>
           <![CDATA[
             real r2 = x*x + y*y;
diff --git a/man/xsil2graphics2.1 b/man/xsil2graphics2.1
index c1af709..c8092af 100644
--- a/man/xsil2graphics2.1
+++ b/man/xsil2graphics2.1
@@ -16,15 +16,24 @@ required, the input xsil file or files
 optional, display this information
 .TP
 .BR \-m ", " \-\-matlab
-optional, produce matlab output (default) (only supports HDF5 output files)
+optional, produce matlab output (default, also supports Octave)
 .TP
-.BR \-e ", " \-\-mathmatica
+.BR \-e ", " \-\-mathematica
 optional, produce mathematica output
 .TP
+.BR \-8 ", " \-\-octave
+optional, produce octave output (identical to MATLAB output)
+.TP
+.BR \-p ", " \-\-python
+optional, produce Python/pylab/matplotlib script (HDF5 requires h5py)
+.TP
+.BR \-r ", " \-\-R
+optional, produce R output
+.TP
 .BR \-o ", " \-\-outfile
 optional, alternate output file name (one input file only)
 .TP
-.BR \-g ", " \-\-debug
+.BR \-\-debug
 Debug mode
 .\" ********************************************************************
 .SH "SEE ALSO"
diff --git a/run_tests.py b/run_tests.py
index 30d6828..a65dc8e 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -77,21 +77,19 @@ def scriptTestingFunction(root, scriptName, testDir, absPath, self):
   
   message = ''.join(["\n%(handleName)s:\n%(content)s" % locals() for handleName, content in [('stdout', stdout), ('stderr', stderr)] if content])
   
-  # A few tests require XMDS1. If XMDS1 isn't present we should just
-  # skip that test rather than failing.
-  # The skip functionality for the unittest class is only available
-  # in python 2.7 and later, so check for that too.
-  if returnCode != 0 and sys.version_info[:2] >= (2, 7):
-    if re.search(r'^The missing \w+ feature\(s\) were: .*xmds.*', message, re.MULTILINE):
-      self.skipTest("Skipping test as XMDS1 is required and not installed")
-
   # A few tests require specific features.  If it isn't available, skip the test
   # rather than failing.
   # The skip functionality for the unittest class is only available
   # in python 2.7 and later, so check for that too.
   if returnCode != 0 and sys.version_info[:2] >= (2, 7):
+    # A few tests require XMDS1. If XMDS1 isn't present we should just
+    # skip that test rather than failing.
+    if re.search(r'^The missing \w+ feature\(s\) were: .*xmds.*', message, re.MULTILINE):
+      self.skipTest("Skipping test as XMDS1 is required and not installed")
     if re.search(r'^The missing \w+ feature\(s\) were:', message, re.MULTILINE):
       self.skipTest("Skipping test as feature required is not installed")
+    if re.search(r'This script requires the python package', message, re.MULTILINE):
+      self.skipTest("Skipping test as python package required is not installed")
 
   self.assert_(returnCode == 0, ("Failed to compile." % locals()) + message)
   
@@ -138,7 +136,7 @@ def scriptTestingFunction(root, scriptName, testDir, absPath, self):
   commandLineString = '"./' + simulationName + '"'
   if commandLineElement:
     # The command line element overrides the prefix
-    commandLineString = '"' + commandLineElement.innerText().strip() + '"'
+    commandLineString = commandLineElement.innerText().strip()
   if argumentsElement:
     commandLineString += ' ' + argumentsElement.innerText().strip()
   
@@ -150,7 +148,7 @@ def scriptTestingFunction(root, scriptName, testDir, absPath, self):
   (stdout, stderr) = simulationProc.communicate()
   returnCode = simulationProc.wait()
   
-  self.assert_(returnCode == 0, "Failed to execute compiled simulation correctly." % locals())
+  self.assert_(returnCode == 0, "Failed to execute compiled simulation correctly. Got returnCode %(returnCode)i;\nstdout = %(stdout)s;\nstderr = %(stderr)s\n" % locals())
   
   # The next thing to check is that the generated data agrees with the expected data to within the set error margins.
   xsilFileElements = testingElement.getChildElementsByTagName('xsil_file', optional=True)
@@ -251,6 +249,8 @@ def partial(func, *args, **keywords):
 
 
 def main(argv=None):
+  verbose = False
+  
   if argv is None:
     argv = sys.argv
   try:
@@ -319,14 +319,15 @@ def main(argv=None):
     if not testSuiteName in testsuites:
       testsuites[testSuiteName] = unittest.TestSuite()
     
-    suite = testsuites[testSuiteName]
-    # Add our TestSuite as a sub-suite of all parent suites
-    head = testSuiteName
-    while True:
-      head, tail = os.path.split(head)
-      if not head or not tail:
-        break
-      testsuites[head].addTest(suite)
+    if not any(filename == 'do_not_run_tests_by_default' for filename in files):
+      # Add our TestSuite as a sub-suite of all parent suites
+      suite = testsuites[testSuiteName]
+      head = testSuiteName
+      while True:
+        head, tail = os.path.split(head)
+        if not head or not tail:
+          break
+        testsuites[head].addTest(suite)
   
   
   suitesToRun = list()
@@ -343,7 +344,7 @@ def main(argv=None):
   
   fullSuite = unittest.TestSuite(tests=suitesToRun)
   
-  return not unittest.TextTestRunner().run(fullSuite).wasSuccessful()
+  return not unittest.TextTestRunner(verbosity = 2 if verbose else 1).run(fullSuite).wasSuccessful()
 
 
 if __name__ == "__main__":
diff --git a/setup.py b/setup.py
index 87ee48a..0267c8f 100755
--- a/setup.py
+++ b/setup.py
@@ -17,7 +17,7 @@ for root, dirs, files in os.walk('xpdeint'):
         packages.append(root.replace(os.sep, '.'))
 
 setup(name="xmds2",
-      version="2.1.4",
+      version="2.2.0",
       description="Stochastic ODE/PDE integrator",
       url="http://xmds.sourceforge.net",
       license="GPLv2",
@@ -30,7 +30,7 @@ setup(name="xmds2",
       exclude_package_data = {'': ['README', 'TODO']},
       
       # Project requires Cheetah for all of the templates
-      install_requires = ['Cheetah>=2.0.1', 'pyparsing<2.0.0', 'mpmath', 'Sphinx>=1.1'],
+      install_requires = ['Cheetah>=2.0.1', 'pyparsing!=2.0.0', 'mpmath'],
       
       package_data = {
         'xpdeint': ['includes/*.c',
diff --git a/testsuite/fast/RbGSdipoles.xmds b/testsuite/fast/RbGSdipoles.xmds
index ce17c92..9e1f1eb 100644
--- a/testsuite/fast/RbGSdipoles.xmds
+++ b/testsuite/fast/RbGSdipoles.xmds
@@ -38,7 +38,7 @@
 			const real Pi = 3.141592654;   
 
       /*experimental variables*/
-			const real ratio = 1.0/40.0;
+			const real fraction = 1.0/40.0;
 			const real omegap = 2*3.141592654*3000;
 			const real N0 = 1.0e5;                  //Note this change
 			const real B = 73.0e-7;        
@@ -82,8 +82,8 @@
     </components>
     <initialisation>
       <![CDATA[
-   			//VtrapOnHbar = 0.5* massRb * omegap*omegap*(x*x + y*y + z*z*ratio*ratio);
-   			VtrapOnHbar = x*x+y*y+z*z*ratio*ratio < 2.0*2.0e-12 ? 0.5 * massRb * omegap * omegap *  (x*x+y*y+z*z*ratio*ratio)/hbar-muOnHbar : 0.5 * massRb * omegap * omegap *  2.0*2.0e-12/hbar-muOnHbar;
+   			//VtrapOnHbar = 0.5* massRb * omegap*omegap*(x*x + y*y + z*z*fraction*fraction);
+   			VtrapOnHbar = x*x+y*y+z*z*fraction*fraction < 2.0*2.0e-12 ? 0.5 * massRb * omegap * omegap *  (x*x+y*y+z*z*fraction*fraction)/hbar-muOnHbar : 0.5 * massRb * omegap * omegap *  2.0*2.0e-12/hbar-muOnHbar;
       ]]>
     </initialisation>
   </vector>
diff --git a/examples/cpc_example4.xmds b/testsuite/fast/cpc_example4.xmds
similarity index 56%
copy from examples/cpc_example4.xmds
copy to testsuite/fast/cpc_example4.xmds
index 9e5df14..4a868fa 100644
--- a/examples/cpc_example4.xmds
+++ b/testsuite/fast/cpc_example4.xmds
@@ -1,5 +1,10 @@
 <simulation xmds-version="2">
-  <name> nonlinear_SE </name>
+  <testing>
+    <command_line>mpirun -n 4 ./cpc_example4</command_line>
+    <xsil_file name="cpc_example4.xsil" expected="cpc_example4_expected.xsil" absolute_tolerance="1e-5" relative_tolerance="1e-5" />
+  </testing>
+
+  <name> cpc_example4 </name>
   
   <features>
     <benchmark />
@@ -19,6 +24,8 @@
                  domain="(-7, 7)" />
 	  <dimension name="y" lattice="256"
 		  	 	 domain="(-7, 7)" />	
+       	  <dimension name="j" lattice="3" type="integer"
+       		  	 	 domain="(-1, 1)" />	
     </transverse_dimensions>
   </geometry>
 
@@ -43,15 +50,35 @@
   </vector>
 
   <sequence>
-    <integrate algorithm="ARK45" interval="6.28" 
+    <integrate algorithm="ARK45" interval="0.628" 
                                  tolerance="1e-5">
-      <samples> 50 </samples>
+      <samples> 5 </samples>
       <operators>
 
-        <operator kind="ip" constant="yes">
+        <operator kind="ip" constant="yes" dimensions="x">
+          <operator_names> Tx </operator_names>
+          <![CDATA[
+            Tx = -i * 0.5 * (kx * kx);
+          ]]>
+        </operator>
+
+        <operator kind="ip" constant="yes" dimensions="y">
+          <operator_names> Ty </operator_names>
+          <![CDATA[
+            Ty = -i * 0.5 * (ky * ky);
+          ]]>
+        </operator>
+        <operator kind="ip" constant="yes" dimensions="">
           <operator_names> T </operator_names>
           <![CDATA[
-            T = -i * 0.5 * (kx * kx + ky * ky);
+            T = -0.2;
+          ]]>
+        </operator>
+
+        <operator kind="ip" constant="yes" dimensions="j">
+          <operator_names> Tj </operator_names>
+          <![CDATA[
+            Tj = -0.2*j;
           ]]>
         </operator>
 
@@ -60,14 +87,14 @@
         </integration_vectors> 
         <dependencies> potential </dependencies>
         <![CDATA[
-          dpsi_dt = T[psi] - i * (V + g * mod2(psi)) * psi;
+          dpsi_dt = Tx[psi] + Ty[psi] + T[psi] + Tj[psi] - i * (V + g * mod2(psi)) * psi;
         ]]>
       </operators>
     </integrate>
   </sequence>
 
   <output format="hdf5">
-    <sampling_group initial_sample="yes" basis="x y">
+    <sampling_group initial_sample="yes" basis="x(16) y(16) j">
       <dependencies> wavefunction </dependencies>
       <moments> psireal psiimag </moments>
       <![CDATA[
diff --git a/testsuite/fast/cpc_example4_expected.h5 b/testsuite/fast/cpc_example4_expected.h5
new file mode 100644
index 0000000..7d3ea4b
Binary files /dev/null and b/testsuite/fast/cpc_example4_expected.h5 differ
diff --git a/testsuite/fast/cpc_example4_expected.xsil b/testsuite/fast/cpc_example4_expected.xsil
new file mode 100644
index 0000000..4fb6793
--- /dev/null
+++ b/testsuite/fast/cpc_example4_expected.xsil
@@ -0,0 +1,127 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <testing>
+    <command_line>mpirun -n 4 ./cpc_example4</command_line>
+    <xsil_file absolute_tolerance="1e-5" expected="cpc_example4_expected.xsil" name="cpc_example4.xsil" relative_tolerance="1e-5"/>
+  </testing>
+
+  <name> cpc_example4 </name>
+  
+  <features>
+    <benchmark/>
+    <auto_vectorise/>
+    <globals>
+      <![CDATA[
+        real N = 10.0; // number of atoms
+        real g = 1.0;  // nonlinear coupling
+      ]]>
+    </globals>
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension domain="(-7, 7)" lattice="256" name="x"/>
+          <dimension domain="(-7, 7)" lattice="256" name="y"/>    
+          <dimension domain="(-1, 1)" lattice="3" name="j" type="integer"/>    
+    </transverse_dimensions>
+  </geometry>
+
+  <driver name="distributed-mpi"/>
+
+  <vector name="potential" type="real">
+    <components> V </components>
+    <initialisation>
+      <![CDATA[
+        V = 0.5*(x*x + y*y);
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="wavefunction" type="complex">
+    <components> psi </components>
+    <initialisation>
+      <![CDATA[
+        psi = sqrt(N) * pow(M_PI, -0.25) * exp(-(x*x + y*y)/2);
+      ]]>
+    </initialisation>
+  </vector>
+
+  <sequence>
+    <integrate algorithm="ARK45" interval="0.628" tolerance="1e-5">
+      <samples> 5 </samples>
+      <operators>
+
+        <operator constant="yes" dimensions="x" kind="ip">
+          <operator_names> Tx </operator_names>
+          <![CDATA[
+            Tx = -i * 0.5 * (kx * kx);
+          ]]>
+        </operator>
+
+        <operator constant="yes" dimensions="y" kind="ip">
+          <operator_names> Ty </operator_names>
+          <![CDATA[
+            Ty = -i * 0.5 * (ky * ky);
+          ]]>
+        </operator>
+        <operator constant="yes" dimensions="" kind="ip">
+          <operator_names> T </operator_names>
+          <![CDATA[
+            T = -0.2;
+          ]]>
+        </operator>
+
+        <operator constant="yes" dimensions="j" kind="ip">
+          <operator_names> Tj </operator_names>
+          <![CDATA[
+            Tj = -0.2*j;
+          ]]>
+        </operator>
+
+        <integration_vectors>
+          wavefunction
+        </integration_vectors> 
+        <dependencies> potential </dependencies>
+        <![CDATA[
+          dpsi_dt = Tx[psi] + Ty[psi] + T[psi] + Tj[psi] - i * (V + g * mod2(psi)) * psi;
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+
+  <output format="hdf5">
+    <sampling_group basis="x(16) y(16) j" initial_sample="yes">
+      <dependencies> wavefunction </dependencies>
+      <moments> psireal psiimag </moments>
+      <![CDATA[
+        psireal = Re(psi);
+        psiimag = Im(psi);
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">4</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>6</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t x y j psireal psiimag 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>6</Dim>
+    <Dim>16</Dim>
+    <Dim>16</Dim>
+    <Dim>3</Dim>
+    <Dim>6</Dim>
+    <Stream><Metalink Format="HDF5" Type="Remote" Group="/1"/>
+cpc_example4_expected.h5
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/features/arguments.xmds b/testsuite/features/arguments.xmds
index 9e6191b..6785c08 100644
--- a/testsuite/features/arguments.xmds
+++ b/testsuite/features/arguments.xmds
@@ -30,15 +30,15 @@
     </globals>
     <arguments>
       <argument name="size" type="real" default_value="20.0"/>
-      <argument name="ratio" type="real" default_value="0.1"/>
+      <argument name="fraction" type="real" default_value="0.1"/>
       <argument name="width_factor" type="real" default_value="1.0"/>
       <argument name="time_factor" type="real" default_value="1.0"/>
       <![CDATA[
       minx = -0.5*size;
       maxx = 0.5*size;
-      miny = -0.5*size*ratio;
-      maxy = 0.5*size*ratio;
-      width = 0.5*sqrt(0.5)*size*ratio*width_factor; // half the simulation size
+      miny = -0.5*size*fraction;
+      maxy = 0.5*size*fraction;
+      width = 0.5*sqrt(0.5)*size*fraction*width_factor; // half the simulation size
       // The time intersting stuff happens scales as width^2
       time_interval = 20.0 * width*width * time_factor;
       ]]>
diff --git a/testsuite/features/space in filename.xmds b/testsuite/features/space in filename.xmds
index fab8a66..32f696a 100644
--- a/testsuite/features/space in filename.xmds	
+++ b/testsuite/features/space in filename.xmds	
@@ -32,15 +32,15 @@
     </globals>
     <arguments>
       <argument name="size" type="real" default_value="20.0"/>
-      <argument name="ratio" type="real" default_value="0.1"/>
+      <argument name="fraction" type="real" default_value="0.1"/>
       <argument name="width_factor" type="real" default_value="1.0"/>
       <argument name="time_factor" type="real" default_value="1.0"/>
       <![CDATA[
       minx = -0.5*size;
       maxx = 0.5*size;
-      miny = -0.5*size*ratio;
-      maxy = 0.5*size*ratio;
-      width = 0.5*sqrt(0.5)*size*ratio*width_factor; // half the simulation size
+      miny = -0.5*size*fraction;
+      maxy = 0.5*size*fraction;
+      width = 0.5*sqrt(0.5)*size*fraction*width_factor; // half the simulation size
       // The time intersting stuff happens scales as width^2
       time_interval = 20.0 * width*width * time_factor;
       ]]>
diff --git a/documentation/latex/xmds2.idx b/testsuite/integrators/richardson_extrapolation/error_scaling/do_not_run_tests_by_default
similarity index 100%
copy from documentation/latex/xmds2.idx
copy to testsuite/integrators/richardson_extrapolation/error_scaling/do_not_run_tests_by_default
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder.xmds b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder.xmds
new file mode 100644
index 0000000..3ce9a24
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder.xmds
@@ -0,0 +1,8064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <name>exponential_scaling_10thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 10th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file name="exponential_scaling_10thOrder.xsil" expected="exponential_scaling_10thOrder_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" interval="5.0" steps="1" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="2" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="3" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="4" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="5" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="6" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="7" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="8" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="9" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="10" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="11" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="12" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="13" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="14" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="15" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="16" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="17" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="18" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="19" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="20" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="21" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="22" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="23" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="24" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="25" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="26" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="27" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="28" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="29" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="30" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="31" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="32" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="33" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="34" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="35" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="36" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="37" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="38" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="39" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="40" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="41" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="42" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="43" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="44" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="45" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="46" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="47" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="48" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="49" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="50" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="51" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="52" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="53" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="54" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="55" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="56" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="57" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="58" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="59" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="60" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="61" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="62" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="63" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="64" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="65" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="66" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="67" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="68" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="69" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="70" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="71" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="72" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="73" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="74" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="75" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="76" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="77" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="78" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="79" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="80" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="81" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="82" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="83" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="84" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="85" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="86" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="87" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="88" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="89" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="90" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="91" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="92" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="93" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="94" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="95" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="96" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="97" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="98" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="99" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="100" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="101" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="102" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="103" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="104" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="105" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="106" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="107" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="108" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="109" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="110" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="111" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="112" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="113" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="114" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="115" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="116" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="117" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="118" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="119" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="120" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="121" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="122" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="123" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="124" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="125" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="126" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="127" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="128" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="129" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="130" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="131" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="132" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="133" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="134" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="135" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="136" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="137" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="138" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="139" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="140" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="141" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="142" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="143" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="144" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="145" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="146" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="147" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="148" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="149" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="150" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="151" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="152" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="153" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="154" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="155" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="156" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="157" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="158" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="159" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="160" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="161" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="162" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="163" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="164" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="165" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="166" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="167" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="168" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="169" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="170" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="171" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="172" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="173" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="174" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="175" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="176" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="177" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="178" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="179" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="180" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="181" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="182" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="183" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="184" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="185" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="186" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="187" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="188" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="189" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="190" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="191" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="192" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="193" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="194" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="195" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="196" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="197" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="198" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="199" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="200" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="201" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="202" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="203" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="204" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="205" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="206" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="207" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="208" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="209" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="210" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="211" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="212" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="213" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="214" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="215" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="216" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="217" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="218" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="219" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="220" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="221" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="222" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="223" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="224" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="225" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="226" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="227" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="228" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="229" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="230" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="231" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="232" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="233" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="234" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="235" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="236" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="237" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="238" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="239" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="240" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="241" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="242" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="243" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="244" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="245" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="246" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="247" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="248" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="249" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="250" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="251" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="252" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="253" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="254" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="255" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="256" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="257" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="258" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="259" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="260" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="261" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="262" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="263" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="264" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="265" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="266" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="267" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="268" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="269" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="270" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="271" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="272" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="273" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="274" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="275" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="276" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="277" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="278" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="279" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="280" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="281" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="282" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="283" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="284" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="285" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="286" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="287" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="288" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="289" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="290" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="291" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="292" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="293" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="294" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="295" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="296" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="297" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="298" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="299" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="300" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="301" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="302" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="303" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="304" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="305" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="306" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="307" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="308" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="309" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="310" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="311" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="312" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="313" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="314" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="315" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="316" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="317" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="318" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="319" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="320" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="321" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="322" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="323" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="324" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="325" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="326" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="327" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="328" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="329" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="330" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="331" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="332" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="333" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="334" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="335" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="336" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="337" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="338" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="339" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="340" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="341" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="342" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="343" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="344" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="345" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="346" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="347" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="348" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="349" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="350" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="351" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="352" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="353" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="354" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="355" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="356" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="357" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="358" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="359" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="360" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="361" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="362" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="363" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="364" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="365" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="366" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="367" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="368" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="369" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="370" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="371" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="372" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="373" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="374" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="375" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="376" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="377" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="378" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="379" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="380" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="381" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="382" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="383" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="384" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="385" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="386" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="387" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="388" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="389" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="390" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="391" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="392" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="393" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="394" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="395" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="396" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="397" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="398" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="399" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="400" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="401" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="402" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="403" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="404" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="405" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="406" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="407" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="408" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="409" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="410" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="411" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="412" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="413" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="414" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="415" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="416" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="417" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="418" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="419" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="420" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="421" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="422" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="423" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="424" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="425" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="426" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="427" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="428" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="429" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="430" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="431" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="432" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="433" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="434" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="435" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="436" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="437" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="438" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="439" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="440" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="441" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="442" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="443" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="444" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="445" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="446" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="447" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="448" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="449" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="450" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="451" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="452" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="453" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="454" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="455" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="456" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="457" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="458" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="459" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="460" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="461" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="462" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="463" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="464" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="465" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="466" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="467" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="468" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="469" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="470" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="471" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="472" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="473" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="474" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="475" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="476" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="477" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="478" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="479" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="480" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="481" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="482" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="483" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="484" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="485" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="486" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="487" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="488" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="489" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="490" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="491" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="492" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="493" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="494" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="495" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="496" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="497" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="498" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="499" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="500" extrapolations="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder_expected.xsil b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder_expected.xsil
new file mode 100644
index 0000000..458bc8c
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_10thOrder_expected.xsil
@@ -0,0 +1,8584 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <name>exponential_scaling_10thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 10th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="exponential_scaling_10thOrder_expected.xsil" name="exponential_scaling_10thOrder.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="6">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="7">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="8">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="9">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="10">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="11">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="12">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="13">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="14">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="15">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="16">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="17">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="18">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="19">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="20">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="21">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="22">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="23">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="24">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="25">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="26">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="27">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="28">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="29">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="30">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="31">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="32">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="33">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="34">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="35">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="36">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="37">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="38">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="39">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="40">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="41">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="42">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="43">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="44">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="45">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="46">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="47">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="48">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="49">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="50">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="51">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="52">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="53">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="54">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="55">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="56">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="57">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="58">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="59">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="60">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="61">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="62">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="63">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="64">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="65">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="66">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="67">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="68">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="69">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="70">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="71">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="72">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="73">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="74">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="75">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="76">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="77">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="78">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="79">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="80">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="81">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="82">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="83">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="84">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="85">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="86">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="87">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="88">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="89">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="90">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="91">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="92">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="93">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="94">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="95">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="96">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="97">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="98">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="99">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="100">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="101">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="102">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="103">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="104">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="105">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="106">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="107">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="108">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="109">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="110">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="111">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="112">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="113">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="114">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="115">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="116">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="117">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="118">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="119">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="120">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="121">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="122">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="123">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="124">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="125">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="126">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="127">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="128">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="129">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="130">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="131">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="132">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="133">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="134">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="135">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="136">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="137">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="138">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="139">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="140">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="141">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="142">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="143">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="144">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="145">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="146">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="147">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="148">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="149">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="150">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="151">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="152">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="153">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="154">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="155">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="156">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="157">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="158">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="159">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="160">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="161">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="162">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="163">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="164">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="165">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="166">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="167">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="168">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="169">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="170">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="171">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="172">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="173">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="174">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="175">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="176">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="177">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="178">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="179">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="180">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="181">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="182">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="183">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="184">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="185">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="186">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="187">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="188">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="189">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="190">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="191">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="192">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="193">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="194">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="195">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="196">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="197">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="198">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="199">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="200">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="201">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="202">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="203">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="204">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="205">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="206">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="207">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="208">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="209">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="210">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="211">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="212">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="213">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="214">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="215">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="216">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="217">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="218">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="219">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="220">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="221">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="222">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="223">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="224">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="225">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="226">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="227">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="228">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="229">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="230">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="231">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="232">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="233">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="234">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="235">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="236">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="237">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="238">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="239">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="240">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="241">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="242">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="243">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="244">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="245">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="246">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="247">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="248">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="249">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="250">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="251">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="252">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="253">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="254">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="255">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="256">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="257">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="258">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="259">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="260">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="261">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="262">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="263">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="264">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="265">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="266">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="267">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="268">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="269">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="270">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="271">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="272">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="273">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="274">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="275">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="276">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="277">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="278">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="279">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="280">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="281">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="282">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="283">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="284">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="285">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="286">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="287">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="288">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="289">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="290">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="291">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="292">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="293">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="294">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="295">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="296">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="297">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="298">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="299">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="300">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="301">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="302">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="303">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="304">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="305">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="306">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="307">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="308">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="309">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="310">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="311">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="312">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="313">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="314">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="315">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="316">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="317">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="318">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="319">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="320">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="321">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="322">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="323">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="324">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="325">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="326">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="327">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="328">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="329">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="330">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="331">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="332">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="333">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="334">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="335">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="336">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="337">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="338">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="339">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="340">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="341">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="342">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="343">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="344">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="345">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="346">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="347">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="348">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="349">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="350">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="351">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="352">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="353">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="354">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="355">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="356">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="357">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="358">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="359">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="360">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="361">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="362">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="363">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="364">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="365">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="366">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="367">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="368">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="369">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="370">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="371">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="372">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="373">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="374">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="375">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="376">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="377">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="378">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="379">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="380">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="381">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="382">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="383">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="384">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="385">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="386">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="387">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="388">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="389">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="390">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="391">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="392">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="393">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="394">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="395">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="396">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="397">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="398">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="399">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="400">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="401">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="402">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="403">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="404">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="405">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="406">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="407">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="408">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="409">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="410">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="411">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="412">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="413">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="414">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="415">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="416">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="417">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="418">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="419">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="420">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="421">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="422">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="423">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="424">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="425">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="426">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="427">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="428">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="429">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="430">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="431">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="432">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="433">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="434">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="435">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="436">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="437">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="438">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="439">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="440">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="441">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="442">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="443">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="444">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="445">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="446">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="447">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="448">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="449">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="450">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="451">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="452">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="453">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="454">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="455">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="456">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="457">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="458">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="459">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="460">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="461">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="462">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="463">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="464">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="465">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="466">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="467">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="468">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="469">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="470">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="471">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="472">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="473">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="474">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="475">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="476">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="477">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="478">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="479">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="480">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="481">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="482">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="483">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="484">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="485">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="486">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="487">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="488">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="489">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="490">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="491">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="492">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="493">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="494">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="495">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="496">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="497">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="498">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="499">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="5" interval="5.0" steps="500">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">1</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+x stepsR err_yR 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>500</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+5.000000000000e+00 1.000000000000e+00 1.359771963577e+00
+1.000000000000e+01 2.000000000000e+00 1.028819649855e-02
+1.500000000000e+01 3.000000000000e+00 3.536896782919e-04
+2.000000000000e+01 4.000000000000e+00 2.803421557473e-05
+2.500000000000e+01 5.000000000000e+00 3.694657294773e-06
+3.000000000000e+01 6.000000000000e+00 6.839741502063e-07
+3.500000000000e+01 7.000000000000e+00 1.613944675682e-07
+4.000000000000e+01 8.000000000000e+00 4.567610289996e-08
+4.500000000000e+01 9.000000000000e+00 1.488788825554e-08
+5.000000000000e+01 1.000000000000e+01 5.431672889245e-09
+5.500000000000e+01 1.100000000000e+01 2.173408120143e-09
+6.000000000000e+01 1.200000000000e+01 9.394227618031e-10
+6.500000000000e+01 1.300000000000e+01 4.326636826590e-10
+7.000000000000e+01 1.400000000000e+01 2.112585661962e-10
+7.500000000000e+01 1.500000000000e+01 1.084288214770e-10
+8.000000000000e+01 1.600000000000e+01 5.763922672486e-11
+8.500000000000e+01 1.700000000000e+01 3.254285729781e-11
+9.000000000000e+01 1.800000000000e+01 1.796252036002e-11
+9.500000000000e+01 1.900000000000e+01 1.125499693444e-11
+1.000000000000e+02 2.000000000000e+01 7.275957614183e-12
+1.050000000000e+02 2.100000000000e+01 3.780087354244e-12
+1.100000000000e+02 2.200000000000e+01 2.614797267597e-12
+1.150000000000e+02 2.300000000000e+01 1.506350599811e-12
+1.200000000000e+02 2.400000000000e+01 1.705302565824e-12
+1.250000000000e+02 2.500000000000e+01 -2.842170943040e-14
+1.300000000000e+02 2.600000000000e+01 -4.831690603169e-13
+1.350000000000e+02 2.700000000000e+01 -4.831690603169e-13
+1.400000000000e+02 2.800000000000e+01 1.165290086647e-12
+1.450000000000e+02 2.900000000000e+01 2.842170943040e-14
+1.500000000000e+02 3.000000000000e+01 -3.979039320257e-13
+1.550000000000e+02 3.100000000000e+01 4.263256414561e-13
+1.600000000000e+02 3.200000000000e+01 -4.547473508865e-13
+1.650000000000e+02 3.300000000000e+01 -3.979039320257e-13
+1.700000000000e+02 3.400000000000e+01 1.136868377216e-13
+1.750000000000e+02 3.500000000000e+01 1.222133505507e-12
+1.800000000000e+02 3.600000000000e+01 3.979039320257e-13
+1.850000000000e+02 3.700000000000e+01 -3.410605131648e-13
+1.900000000000e+02 3.800000000000e+01 9.379164112033e-13
+1.950000000000e+02 3.900000000000e+01 -1.250555214938e-12
+2.000000000000e+02 4.000000000000e+01 2.842170943040e-14
+2.050000000000e+02 4.100000000000e+01 5.400124791777e-13
+2.100000000000e+02 4.200000000000e+01 -2.842170943040e-13
+2.150000000000e+02 4.300000000000e+01 1.989519660128e-13
+2.200000000000e+02 4.400000000000e+01 -1.961097950698e-12
+2.250000000000e+02 4.500000000000e+01 1.023181539495e-12
+2.300000000000e+02 4.600000000000e+01 8.526512829121e-13
+2.350000000000e+02 4.700000000000e+01 1.449507180951e-12
+2.400000000000e+02 4.800000000000e+01 -6.536993168993e-13
+2.450000000000e+02 4.900000000000e+01 -3.694822225953e-13
+2.500000000000e+02 5.000000000000e+01 -3.410605131648e-13
+2.550000000000e+02 5.100000000000e+01 8.242295734817e-13
+2.600000000000e+02 5.200000000000e+01 -7.673861546209e-13
+2.650000000000e+02 5.300000000000e+01 -3.979039320257e-13
+2.700000000000e+02 5.400000000000e+01 8.526512829121e-14
+2.750000000000e+02 5.500000000000e+01 -1.421085471520e-13
+2.800000000000e+02 5.600000000000e+01 5.684341886081e-14
+2.850000000000e+02 5.700000000000e+01 5.684341886081e-14
+2.900000000000e+02 5.800000000000e+01 1.222133505507e-12
+2.950000000000e+02 5.900000000000e+01 -1.136868377216e-12
+3.000000000000e+02 6.000000000000e+01 2.273736754432e-13
+3.050000000000e+02 6.100000000000e+01 -2.557953848736e-13
+3.100000000000e+02 6.200000000000e+01 -6.252776074689e-13
+3.150000000000e+02 6.300000000000e+01 1.080024958355e-12
+3.200000000000e+02 6.400000000000e+01 1.080024958355e-12
+3.250000000000e+02 6.500000000000e+01 -7.389644451905e-13
+3.300000000000e+02 6.600000000000e+01 -5.968558980385e-13
+3.350000000000e+02 6.700000000000e+01 3.410605131648e-13
+3.400000000000e+02 6.800000000000e+01 1.392663762090e-12
+3.450000000000e+02 6.900000000000e+01 -5.400124791777e-13
+3.500000000000e+02 7.000000000000e+01 7.958078640513e-13
+3.550000000000e+02 7.100000000000e+01 -1.250555214938e-12
+3.600000000000e+02 7.200000000000e+01 -3.694822225953e-13
+3.650000000000e+02 7.300000000000e+01 -1.136868377216e-13
+3.700000000000e+02 7.400000000000e+01 2.842170943040e-13
+3.750000000000e+02 7.500000000000e+01 -1.222133505507e-12
+3.800000000000e+02 7.600000000000e+01 -5.684341886081e-14
+3.850000000000e+02 7.700000000000e+01 -1.080024958355e-12
+3.900000000000e+02 7.800000000000e+01 1.904254531837e-12
+3.950000000000e+02 7.900000000000e+01 -3.979039320257e-13
+4.000000000000e+02 8.000000000000e+01 -2.273736754432e-12
+4.050000000000e+02 8.100000000000e+01 0.000000000000e+00
+4.100000000000e+02 8.200000000000e+01 1.534772309242e-12
+4.150000000000e+02 8.300000000000e+01 -1.477928890381e-12
+4.200000000000e+02 8.400000000000e+01 4.831690603169e-13
+4.250000000000e+02 8.500000000000e+01 -8.810729923425e-13
+4.300000000000e+02 8.600000000000e+01 -7.958078640513e-13
+4.350000000000e+02 8.700000000000e+01 0.000000000000e+00
+4.400000000000e+02 8.800000000000e+01 -1.904254531837e-12
+4.450000000000e+02 8.900000000000e+01 -3.126388037344e-13
+4.500000000000e+02 9.000000000000e+01 -3.126388037344e-13
+4.550000000000e+02 9.100000000000e+01 9.094947017729e-13
+4.600000000000e+02 9.200000000000e+01 -2.387423592154e-12
+4.650000000000e+02 9.300000000000e+01 -7.958078640513e-13
+4.700000000000e+02 9.400000000000e+01 -5.115907697473e-13
+4.750000000000e+02 9.500000000000e+01 2.557953848736e-13
+4.800000000000e+02 9.600000000000e+01 -1.421085471520e-13
+4.850000000000e+02 9.700000000000e+01 -2.557953848736e-13
+4.900000000000e+02 9.800000000000e+01 -1.335820343229e-12
+4.950000000000e+02 9.900000000000e+01 -1.307398633799e-12
+5.000000000000e+02 1.000000000000e+02 3.410605131648e-13
+5.050000000000e+02 1.010000000000e+02 -1.989519660128e-13
+5.100000000000e+02 1.020000000000e+02 -1.477928890381e-12
+5.150000000000e+02 1.030000000000e+02 2.359001882724e-12
+5.200000000000e+02 1.040000000000e+02 -2.728484105319e-12
+5.250000000000e+02 1.050000000000e+02 -3.126388037344e-13
+5.300000000000e+02 1.060000000000e+02 -1.023181539495e-12
+5.350000000000e+02 1.070000000000e+02 -1.051603248925e-12
+5.400000000000e+02 1.080000000000e+02 1.790567694115e-12
+5.450000000000e+02 1.090000000000e+02 -1.222133505507e-12
+5.500000000000e+02 1.100000000000e+02 -1.733724275255e-12
+5.550000000000e+02 1.110000000000e+02 -4.263256414561e-13
+5.600000000000e+02 1.120000000000e+02 2.842170943040e-13
+5.650000000000e+02 1.130000000000e+02 2.103206497850e-12
+5.700000000000e+02 1.140000000000e+02 -1.051603248925e-12
+5.750000000000e+02 1.150000000000e+02 -1.620037437533e-12
+5.800000000000e+02 1.160000000000e+02 1.278976924368e-12
+5.850000000000e+02 1.170000000000e+02 9.947598300641e-13
+5.900000000000e+02 1.180000000000e+02 -1.534772309242e-12
+5.950000000000e+02 1.190000000000e+02 -2.046363078989e-12
+6.000000000000e+02 1.200000000000e+02 -1.278976924368e-12
+6.050000000000e+02 1.210000000000e+02 1.534772309242e-12
+6.100000000000e+02 1.220000000000e+02 2.188471626141e-12
+6.150000000000e+02 1.230000000000e+02 2.472688720445e-12
+6.200000000000e+02 1.240000000000e+02 -1.421085471520e-12
+6.250000000000e+02 1.250000000000e+02 -8.242295734817e-13
+6.300000000000e+02 1.260000000000e+02 7.105427357601e-13
+6.350000000000e+02 1.270000000000e+02 -1.080024958355e-12
+6.400000000000e+02 1.280000000000e+02 -1.421085471520e-12
+6.450000000000e+02 1.290000000000e+02 2.842170943040e-14
+6.500000000000e+02 1.300000000000e+02 -1.989519660128e-13
+6.550000000000e+02 1.310000000000e+02 1.676880856394e-12
+6.600000000000e+02 1.320000000000e+02 -8.242295734817e-13
+6.650000000000e+02 1.330000000000e+02 5.400124791777e-13
+6.700000000000e+02 1.340000000000e+02 3.694822225953e-13
+6.750000000000e+02 1.350000000000e+02 3.126388037344e-13
+6.800000000000e+02 1.360000000000e+02 5.115907697473e-13
+6.850000000000e+02 1.370000000000e+02 1.136868377216e-13
+6.900000000000e+02 1.380000000000e+02 5.115907697473e-13
+6.950000000000e+02 1.390000000000e+02 1.307398633799e-12
+7.000000000000e+02 1.400000000000e+02 2.188471626141e-12
+7.050000000000e+02 1.410000000000e+02 -1.762145984685e-12
+7.100000000000e+02 1.420000000000e+02 -1.705302565824e-12
+7.150000000000e+02 1.430000000000e+02 -8.810729923425e-13
+7.200000000000e+02 1.440000000000e+02 -5.684341886081e-14
+7.250000000000e+02 1.450000000000e+02 -7.958078640513e-13
+7.300000000000e+02 1.460000000000e+02 -1.136868377216e-12
+7.350000000000e+02 1.470000000000e+02 -3.126388037344e-13
+7.399999999999e+02 1.480000000000e+02 -8.526512829121e-14
+7.450000000000e+02 1.490000000000e+02 4.263256414561e-13
+7.499999999999e+02 1.500000000000e+02 6.536993168993e-13
+7.549999999999e+02 1.510000000000e+02 5.002220859751e-12
+7.599999999999e+02 1.520000000000e+02 1.108446667786e-12
+7.649999999999e+02 1.530000000000e+02 2.074784788419e-12
+7.699999999999e+02 1.540000000000e+02 2.529532139306e-12
+7.749999999999e+02 1.550000000000e+02 -3.410605131648e-13
+7.799999999999e+02 1.560000000000e+02 3.694822225953e-13
+7.849999999999e+02 1.570000000000e+02 -2.643218977028e-12
+7.900000000000e+02 1.580000000000e+02 1.307398633799e-12
+7.950000000000e+02 1.590000000000e+02 -1.108446667786e-12
+8.000000000000e+02 1.600000000000e+02 -1.648459146963e-12
+8.050000000000e+02 1.610000000000e+02 1.392663762090e-12
+8.100000000000e+02 1.620000000000e+02 -9.094947017729e-13
+8.150000000000e+02 1.630000000000e+02 -6.536993168993e-13
+8.200000000000e+02 1.640000000000e+02 2.643218977028e-12
+8.249999999999e+02 1.650000000000e+02 -1.733724275255e-12
+8.300000000000e+02 1.660000000000e+02 -3.012701199623e-12
+8.349999999999e+02 1.670000000000e+02 -3.183231456205e-12
+8.400000000000e+02 1.680000000000e+02 8.526512829121e-14
+8.450000000000e+02 1.690000000000e+02 -1.051603248925e-12
+8.499999999999e+02 1.700000000000e+02 -2.842170943040e-14
+8.550000000000e+02 1.710000000000e+02 -1.904254531837e-12
+8.600000000000e+02 1.720000000000e+02 4.831690603169e-13
+8.650000000000e+02 1.730000000000e+02 6.536993168993e-13
+8.700000000000e+02 1.740000000000e+02 -1.193711796077e-12
+8.750000000000e+02 1.750000000000e+02 3.637978807092e-12
+8.800000000000e+02 1.760000000000e+02 -1.961097950698e-12
+8.850000000000e+02 1.770000000000e+02 -2.557953848736e-13
+8.900000000000e+02 1.780000000000e+02 3.154809746775e-12
+8.950000000000e+02 1.790000000000e+02 7.389644451905e-13
+9.000000000000e+02 1.800000000000e+02 9.379164112033e-13
+9.050000000000e+02 1.810000000000e+02 8.526512829121e-13
+9.100000000000e+02 1.820000000000e+02 -2.074784788419e-12
+9.150000000000e+02 1.830000000000e+02 -2.529532139306e-12
+9.200000000000e+02 1.840000000000e+02 2.501110429876e-12
+9.250000000000e+02 1.850000000000e+02 1.250555214938e-12
+9.300000000000e+02 1.860000000000e+02 1.136868377216e-12
+9.350000000000e+02 1.870000000000e+02 1.278976924368e-12
+9.400000000000e+02 1.880000000000e+02 -4.263256414561e-13
+9.450000000000e+02 1.890000000000e+02 2.273736754432e-12
+9.500000000000e+02 1.900000000000e+02 1.989519660128e-12
+9.550000000000e+02 1.910000000000e+02 -3.325340003357e-12
+9.600000000000e+02 1.920000000000e+02 -4.263256414561e-13
+9.650000000000e+02 1.930000000000e+02 0.000000000000e+00
+9.700000000000e+02 1.940000000000e+02 -1.818989403546e-12
+9.750000000000e+02 1.950000000000e+02 -1.506350599811e-12
+9.800000000000e+02 1.960000000000e+02 -1.847411112976e-12
+9.850000000000e+02 1.970000000000e+02 -8.526512829121e-14
+9.900000000000e+02 1.980000000000e+02 -1.790567694115e-12
+9.950000000000e+02 1.990000000000e+02 -3.979039320257e-13
+1.000000000000e+03 2.000000000000e+02 0.000000000000e+00
+1.005000000000e+03 2.010000000000e+02 1.307398633799e-12
+1.010000000000e+03 2.020000000000e+02 3.097966327914e-12
+1.015000000000e+03 2.030000000000e+02 3.126388037344e-13
+1.020000000000e+03 2.040000000000e+02 -4.604316927725e-12
+1.025000000000e+03 2.050000000000e+02 7.673861546209e-13
+1.030000000000e+03 2.060000000000e+02 5.968558980385e-13
+1.035000000000e+03 2.070000000000e+02 3.069544618484e-12
+1.040000000000e+03 2.080000000000e+02 2.614797267597e-12
+1.045000000000e+03 2.090000000000e+02 -2.472688720445e-12
+1.050000000000e+03 2.100000000000e+02 -5.684341886081e-14
+1.055000000000e+03 2.110000000000e+02 1.421085471520e-13
+1.060000000000e+03 2.120000000000e+02 2.899014361901e-12
+1.065000000000e+03 2.130000000000e+02 -1.364242052659e-12
+1.070000000000e+03 2.140000000000e+02 -1.108446667786e-12
+1.075000000000e+03 2.150000000000e+02 -2.330580173293e-12
+1.080000000000e+03 2.160000000000e+02 1.136868377216e-12
+1.085000000000e+03 2.170000000000e+02 -1.563194018672e-12
+1.090000000000e+03 2.180000000000e+02 -5.400124791777e-13
+1.095000000000e+03 2.190000000000e+02 2.557953848736e-13
+1.100000000000e+03 2.200000000000e+02 2.387423592154e-12
+1.105000000000e+03 2.210000000000e+02 7.673861546209e-13
+1.110000000000e+03 2.220000000000e+02 -1.278976924368e-12
+1.115000000000e+03 2.230000000000e+02 -2.302158463863e-12
+1.120000000000e+03 2.240000000000e+02 -1.307398633799e-12
+1.125000000000e+03 2.250000000000e+02 6.821210263297e-13
+1.130000000000e+03 2.260000000000e+02 2.927436071332e-12
+1.135000000000e+03 2.270000000000e+02 -5.314859663486e-12
+1.140000000000e+03 2.280000000000e+02 -8.526512829121e-13
+1.145000000000e+03 2.290000000000e+02 -2.842170943040e-13
+1.150000000000e+03 2.300000000000e+02 6.821210263297e-13
+1.155000000000e+03 2.310000000000e+02 -1.136868377216e-12
+1.160000000000e+03 2.320000000000e+02 -7.389644451905e-13
+1.165000000000e+03 2.330000000000e+02 -5.968558980385e-13
+1.170000000000e+03 2.340000000000e+02 1.335820343229e-12
+1.175000000000e+03 2.350000000000e+02 1.705302565824e-12
+1.180000000000e+03 2.360000000000e+02 1.392663762090e-12
+1.185000000000e+03 2.370000000000e+02 9.663381206337e-13
+1.190000000000e+03 2.380000000000e+02 7.673861546209e-13
+1.195000000000e+03 2.390000000000e+02 -4.263256414561e-13
+1.200000000000e+03 2.400000000000e+02 -1.080024958355e-12
+1.205000000000e+03 2.410000000000e+02 -2.700062395888e-12
+1.210000000000e+03 2.420000000000e+02 -3.410605131648e-13
+1.215000000000e+03 2.430000000000e+02 -1.506350599811e-12
+1.220000000000e+03 2.440000000000e+02 1.904254531837e-12
+1.225000000000e+03 2.450000000000e+02 1.705302565824e-12
+1.230000000000e+03 2.460000000000e+02 4.916955731460e-12
+1.235000000000e+03 2.470000000000e+02 -1.762145984685e-12
+1.240000000000e+03 2.480000000000e+02 8.242295734817e-13
+1.245000000000e+03 2.490000000000e+02 1.904254531837e-12
+1.250000000000e+03 2.500000000000e+02 -1.108446667786e-12
+1.255000000000e+03 2.510000000000e+02 3.836930773105e-12
+1.260000000000e+03 2.520000000000e+02 -1.989519660128e-13
+1.265000000000e+03 2.530000000000e+02 -3.410605131648e-13
+1.270000000000e+03 2.540000000000e+02 3.012701199623e-12
+1.275000000000e+03 2.550000000000e+02 3.694822225953e-13
+1.280000000000e+03 2.560000000000e+02 1.932676241267e-12
+1.285000000000e+03 2.570000000000e+02 5.968558980385e-13
+1.290000000000e+03 2.580000000000e+02 3.694822225953e-13
+1.295000000000e+03 2.590000000000e+02 9.947598300641e-13
+1.300000000000e+03 2.600000000000e+02 2.444267011015e-12
+1.305000000000e+03 2.610000000000e+02 1.506350599811e-12
+1.310000000000e+03 2.620000000000e+02 7.389644451905e-13
+1.315000000000e+03 2.630000000000e+02 7.389644451905e-13
+1.320000000000e+03 2.640000000000e+02 -1.648459146963e-12
+1.325000000000e+03 2.650000000000e+02 9.663381206337e-13
+1.330000000000e+03 2.660000000000e+02 6.821210263297e-13
+1.335000000000e+03 2.670000000000e+02 -1.506350599811e-12
+1.340000000000e+03 2.680000000000e+02 -1.136868377216e-12
+1.345000000000e+03 2.690000000000e+02 2.046363078989e-12
+1.350000000000e+03 2.700000000000e+02 5.684341886081e-14
+1.355000000000e+03 2.710000000000e+02 7.673861546209e-13
+1.360000000000e+03 2.720000000000e+02 2.984279490192e-12
+1.365000000000e+03 2.730000000000e+02 2.870592652471e-12
+1.370000000000e+03 2.740000000000e+02 2.899014361901e-12
+1.375000000000e+03 2.750000000000e+02 -3.979039320257e-13
+1.380000000000e+03 2.760000000000e+02 1.222133505507e-12
+1.385000000000e+03 2.770000000000e+02 1.875832822407e-12
+1.390000000000e+03 2.780000000000e+02 -6.252776074689e-13
+1.395000000000e+03 2.790000000000e+02 -5.400124791777e-12
+1.400000000000e+03 2.800000000000e+02 -9.663381206337e-13
+1.405000000000e+03 2.810000000000e+02 6.821210263297e-13
+1.410000000000e+03 2.820000000000e+02 1.051603248925e-12
+1.415000000000e+03 2.830000000000e+02 7.389644451905e-13
+1.420000000000e+03 2.840000000000e+02 1.762145984685e-12
+1.425000000000e+03 2.850000000000e+02 5.400124791777e-13
+1.430000000000e+03 2.860000000000e+02 -3.183231456205e-12
+1.435000000000e+03 2.870000000000e+02 -6.536993168993e-13
+1.440000000000e+03 2.880000000000e+02 -8.242295734817e-13
+1.445000000000e+03 2.890000000000e+02 1.108446667786e-12
+1.450000000000e+03 2.900000000000e+02 -9.947598300641e-13
+1.455000000000e+03 2.910000000000e+02 5.400124791777e-12
+1.460000000000e+03 2.920000000000e+02 1.193711796077e-12
+1.465000000000e+03 2.930000000000e+02 -4.831690603169e-13
+1.470000000000e+03 2.940000000000e+02 3.637978807092e-12
+1.475000000000e+03 2.950000000000e+02 -7.673861546209e-13
+1.480000000000e+03 2.960000000000e+02 -8.242295734817e-13
+1.485000000000e+03 2.970000000000e+02 -2.842170943040e-14
+1.490000000000e+03 2.980000000000e+02 -1.847411112976e-12
+1.495000000000e+03 2.990000000000e+02 -3.836930773105e-12
+1.500000000000e+03 3.000000000000e+02 2.899014361901e-12
+1.505000000000e+03 3.010000000000e+02 5.741185304942e-12
+1.510000000000e+03 3.020000000000e+02 -1.364242052659e-12
+1.515000000000e+03 3.030000000000e+02 -7.389644451905e-13
+1.520000000000e+03 3.040000000000e+02 -3.893774191965e-12
+1.525000000000e+03 3.050000000000e+02 -2.273736754432e-13
+1.530000000000e+03 3.060000000000e+02 -5.030642569182e-12
+1.535000000000e+03 3.070000000000e+02 1.250555214938e-12
+1.540000000000e+03 3.080000000000e+02 1.591615728103e-12
+1.545000000000e+03 3.090000000000e+02 -2.557953848736e-13
+1.550000000000e+03 3.100000000000e+02 -8.526512829121e-13
+1.555000000000e+03 3.110000000000e+02 -2.700062395888e-12
+1.560000000000e+03 3.120000000000e+02 1.278976924368e-12
+1.565000000000e+03 3.130000000000e+02 2.188471626141e-12
+1.570000000000e+03 3.140000000000e+02 1.193711796077e-12
+1.575000000000e+03 3.150000000000e+02 1.250555214938e-12
+1.580000000000e+03 3.160000000000e+02 3.467448550509e-12
+1.585000000000e+03 3.170000000000e+02 1.847411112976e-12
+1.590000000000e+03 3.180000000000e+02 4.831690603169e-13
+1.595000000000e+03 3.190000000000e+02 1.278976924368e-12
+1.600000000000e+03 3.200000000000e+02 2.160049916711e-12
+1.605000000000e+03 3.210000000000e+02 -1.392663762090e-12
+1.610000000000e+03 3.220000000000e+02 -7.105427357601e-13
+1.615000000000e+03 3.230000000000e+02 -1.080024958355e-12
+1.620000000000e+03 3.240000000000e+02 -9.379164112033e-13
+1.625000000000e+03 3.250000000000e+02 -7.389644451905e-13
+1.630000000000e+03 3.260000000000e+02 1.961097950698e-12
+1.635000000000e+03 3.270000000000e+02 4.348521542852e-12
+1.640000000000e+03 3.280000000000e+02 -2.842170943040e-14
+1.645000000000e+03 3.290000000000e+02 5.911715561524e-12
+1.650000000000e+03 3.300000000000e+02 1.051603248925e-12
+1.655000000000e+03 3.310000000000e+02 2.472688720445e-12
+1.660000000000e+03 3.320000000000e+02 3.609557097661e-12
+1.665000000000e+03 3.330000000000e+02 -9.094947017729e-13
+1.670000000000e+03 3.340000000000e+02 1.620037437533e-12
+1.675000000000e+03 3.350000000000e+02 6.764366844436e-12
+1.680000000000e+03 3.360000000000e+02 1.620037437533e-12
+1.685000000000e+03 3.370000000000e+02 1.449507180951e-12
+1.690000000000e+03 3.380000000000e+02 -1.421085471520e-13
+1.695000000000e+03 3.390000000000e+02 -9.379164112033e-13
+1.700000000000e+03 3.400000000000e+02 -6.309619493550e-12
+1.705000000000e+03 3.410000000000e+02 9.379164112033e-13
+1.710000000000e+03 3.420000000000e+02 -1.506350599811e-12
+1.715000000000e+03 3.430000000000e+02 -1.136868377216e-12
+1.720000000000e+03 3.440000000000e+02 1.591615728103e-12
+1.725000000000e+03 3.450000000000e+02 -1.534772309242e-12
+1.730000000000e+03 3.460000000000e+02 5.115907697473e-13
+1.735000000000e+03 3.470000000000e+02 -9.094947017729e-13
+1.740000000000e+03 3.480000000000e+02 1.762145984685e-12
+1.745000000000e+03 3.490000000000e+02 3.780087354244e-12
+1.750000000000e+03 3.500000000000e+02 1.421085471520e-12
+1.755000000000e+03 3.510000000000e+02 -2.984279490192e-12
+1.760000000000e+03 3.520000000000e+02 -4.263256414561e-13
+1.765000000000e+03 3.530000000000e+02 1.676880856394e-12
+1.770000000000e+03 3.540000000000e+02 3.410605131648e-13
+1.775000000000e+03 3.550000000000e+02 1.335820343229e-12
+1.780000000000e+03 3.560000000000e+02 3.410605131648e-12
+1.784999999999e+03 3.570000000000e+02 3.694822225953e-12
+1.789999999999e+03 3.580000000000e+02 3.836930773105e-12
+1.794999999999e+03 3.590000000000e+02 1.222133505507e-12
+1.799999999999e+03 3.600000000000e+02 9.379164112033e-13
+1.804999999999e+03 3.610000000000e+02 -1.705302565824e-13
+1.809999999999e+03 3.620000000000e+02 -2.870592652471e-12
+1.815000000000e+03 3.630000000000e+02 5.769607014372e-12
+1.820000000000e+03 3.640000000000e+02 -2.842170943040e-13
+1.825000000000e+03 3.650000000000e+02 -3.552713678801e-12
+1.830000000000e+03 3.660000000000e+02 -7.105427357601e-13
+1.835000000000e+03 3.670000000000e+02 1.421085471520e-12
+1.840000000000e+03 3.680000000000e+02 8.810729923425e-13
+1.845000000000e+03 3.690000000000e+02 -3.012701199623e-12
+1.850000000000e+03 3.700000000000e+02 -1.506350599811e-12
+1.855000000000e+03 3.710000000000e+02 2.756905814749e-12
+1.860000000000e+03 3.720000000000e+02 2.870592652471e-12
+1.865000000000e+03 3.730000000000e+02 1.421085471520e-13
+1.870000000000e+03 3.740000000000e+02 1.790567694115e-12
+1.875000000000e+03 3.750000000000e+02 -2.273736754432e-13
+1.880000000000e+03 3.760000000000e+02 3.979039320257e-13
+1.885000000000e+03 3.770000000000e+02 2.188471626141e-12
+1.890000000000e+03 3.780000000000e+02 -7.673861546209e-13
+1.895000000000e+03 3.790000000000e+02 7.673861546209e-13
+1.900000000000e+03 3.800000000000e+02 -1.421085471520e-12
+1.905000000000e+03 3.810000000000e+02 -3.495870259940e-12
+1.910000000000e+03 3.820000000000e+02 1.421085471520e-12
+1.915000000000e+03 3.830000000000e+02 2.955857780762e-12
+1.920000000000e+03 3.840000000000e+02 1.421085471520e-12
+1.925000000000e+03 3.850000000000e+02 8.526512829121e-14
+1.930000000000e+03 3.860000000000e+02 3.154809746775e-12
+1.935000000000e+03 3.870000000000e+02 -1.705302565824e-12
+1.940000000000e+03 3.880000000000e+02 -2.415845301584e-12
+1.945000000000e+03 3.890000000000e+02 2.700062395888e-12
+1.950000000000e+03 3.900000000000e+02 2.188471626141e-12
+1.955000000000e+03 3.910000000000e+02 -1.278976924368e-12
+1.960000000000e+03 3.920000000000e+02 -3.922195901396e-12
+1.965000000000e+03 3.930000000000e+02 4.291678123991e-12
+1.970000000000e+03 3.940000000000e+02 -1.136868377216e-13
+1.975000000000e+03 3.950000000000e+02 -3.979039320257e-13
+1.980000000000e+03 3.960000000000e+02 -1.961097950698e-12
+1.985000000000e+03 3.970000000000e+02 -9.663381206337e-13
+1.990000000000e+03 3.980000000000e+02 3.410605131648e-13
+1.995000000000e+03 3.990000000000e+02 2.842170943040e-13
+2.000000000000e+03 4.000000000000e+02 -5.684341886081e-14
+2.005000000000e+03 4.010000000000e+02 1.136868377216e-13
+2.010000000000e+03 4.020000000000e+02 -3.780087354244e-12
+2.015000000000e+03 4.030000000000e+02 2.927436071332e-12
+2.020000000000e+03 4.040000000000e+02 -9.663381206337e-13
+2.025000000000e+03 4.050000000000e+02 7.958078640513e-13
+2.030000000000e+03 4.060000000000e+02 2.330580173293e-12
+2.035000000000e+03 4.070000000000e+02 -5.684341886081e-14
+2.040000000000e+03 4.080000000000e+02 -4.206412995700e-12
+2.045000000000e+03 4.090000000000e+02 2.614797267597e-12
+2.050000000000e+03 4.100000000000e+02 -3.694822225953e-12
+2.055000000000e+03 4.110000000000e+02 2.842170943040e-14
+2.060000000000e+03 4.120000000000e+02 -2.984279490192e-12
+2.065000000000e+03 4.130000000000e+02 -1.961097950698e-12
+2.070000000000e+03 4.140000000000e+02 7.105427357601e-13
+2.075000000000e+03 4.150000000000e+02 -2.501110429876e-12
+2.080000000000e+03 4.160000000000e+02 -9.947598300641e-13
+2.085000000000e+03 4.170000000000e+02 1.136868377216e-12
+2.090000000000e+03 4.180000000000e+02 8.810729923425e-13
+2.095000000000e+03 4.190000000000e+02 -5.115907697473e-13
+2.100000000000e+03 4.200000000000e+02 -9.379164112033e-13
+2.105000000000e+03 4.210000000000e+02 1.421085471520e-13
+2.110000000000e+03 4.220000000000e+02 2.813749233610e-12
+2.115000000000e+03 4.230000000000e+02 4.149569576839e-12
+2.120000000000e+03 4.240000000000e+02 6.991740519879e-12
+2.125000000000e+03 4.250000000000e+02 2.842170943040e-13
+2.130000000000e+03 4.260000000000e+02 5.400124791777e-13
+2.135000000000e+03 4.270000000000e+02 -4.462208380573e-12
+2.140000000000e+03 4.280000000000e+02 1.733724275255e-12
+2.145000000000e+03 4.290000000000e+02 1.335820343229e-12
+2.149999999999e+03 4.300000000000e+02 2.472688720445e-12
+2.154999999999e+03 4.310000000000e+02 1.392663762090e-12
+2.159999999999e+03 4.320000000000e+02 1.534772309242e-12
+2.164999999999e+03 4.330000000000e+02 4.575895218295e-12
+2.169999999999e+03 4.340000000000e+02 -9.094947017729e-13
+2.174999999999e+03 4.350000000000e+02 1.989519660128e-12
+2.179999999999e+03 4.360000000000e+02 7.105427357601e-13
+2.184999999999e+03 4.370000000000e+02 -9.947598300641e-13
+2.189999999999e+03 4.380000000000e+02 3.893774191965e-12
+2.194999999999e+03 4.390000000000e+02 -2.046363078989e-12
+2.199999999999e+03 4.400000000000e+02 -1.449507180951e-12
+2.204999999999e+03 4.410000000000e+02 -8.810729923425e-13
+2.209999999999e+03 4.420000000000e+02 2.103206497850e-12
+2.214999999999e+03 4.430000000000e+02 4.263256414561e-13
+2.219999999999e+03 4.440000000000e+02 5.400124791777e-13
+2.224999999999e+03 4.450000000000e+02 -2.330580173293e-12
+2.229999999999e+03 4.460000000000e+02 -3.097966327914e-12
+2.234999999999e+03 4.470000000000e+02 4.689582056017e-12
+2.239999999999e+03 4.480000000000e+02 3.211653165636e-12
+2.244999999999e+03 4.490000000000e+02 -1.421085471520e-12
+2.249999999999e+03 4.500000000000e+02 3.041122909053e-12
+2.254999999999e+03 4.510000000000e+02 2.131628207280e-12
+2.259999999999e+03 4.520000000000e+02 7.673861546209e-13
+2.264999999999e+03 4.530000000000e+02 4.774847184308e-12
+2.269999999999e+03 4.540000000000e+02 2.557953848736e-12
+2.274999999999e+03 4.550000000000e+02 3.410605131648e-13
+2.279999999999e+03 4.560000000000e+02 -1.818989403546e-12
+2.284999999999e+03 4.570000000000e+02 2.557953848736e-13
+2.289999999999e+03 4.580000000000e+02 1.421085471520e-13
+2.294999999999e+03 4.590000000000e+02 2.216893335572e-12
+2.299999999999e+03 4.600000000000e+02 6.252776074689e-13
+2.304999999999e+03 4.610000000000e+02 1.222133505507e-12
+2.309999999999e+03 4.620000000000e+02 -1.705302565824e-12
+2.314999999999e+03 4.630000000000e+02 4.973799150321e-12
+2.319999999999e+03 4.640000000000e+02 -2.756905814749e-12
+2.324999999999e+03 4.650000000000e+02 3.126388037344e-13
+2.329999999999e+03 4.660000000000e+02 5.627498467220e-12
+2.334999999999e+03 4.670000000000e+02 4.547473508865e-13
+2.339999999999e+03 4.680000000000e+02 5.684341886081e-13
+2.344999999999e+03 4.690000000000e+02 -1.904254531837e-12
+2.349999999999e+03 4.700000000000e+02 -3.183231456205e-12
+2.354999999999e+03 4.710000000000e+02 4.831690603169e-13
+2.359999999999e+03 4.720000000000e+02 2.927436071332e-12
+2.364999999999e+03 4.730000000000e+02 1.620037437533e-12
+2.369999999999e+03 4.740000000000e+02 -5.115907697473e-13
+2.374999999999e+03 4.750000000000e+02 2.557953848736e-12
+2.379999999999e+03 4.760000000000e+02 -5.115907697473e-13
+2.384999999999e+03 4.770000000000e+02 2.103206497850e-12
+2.389999999999e+03 4.780000000000e+02 4.973799150321e-12
+2.394999999999e+03 4.790000000000e+02 2.700062395888e-12
+2.399999999999e+03 4.800000000000e+02 -3.154809746775e-12
+2.404999999999e+03 4.810000000000e+02 -4.462208380573e-12
+2.409999999999e+03 4.820000000000e+02 3.325340003357e-12
+2.414999999999e+03 4.830000000000e+02 2.131628207280e-12
+2.419999999999e+03 4.840000000000e+02 -4.831690603169e-13
+2.424999999999e+03 4.850000000000e+02 -2.273736754432e-13
+2.429999999999e+03 4.860000000000e+02 -3.694822225953e-13
+2.434999999999e+03 4.870000000000e+02 -1.392663762090e-12
+2.439999999999e+03 4.880000000000e+02 2.643218977028e-12
+2.444999999999e+03 4.890000000000e+02 -3.012701199623e-12
+2.449999999999e+03 4.900000000000e+02 -3.552713678801e-12
+2.454999999999e+03 4.910000000000e+02 -1.534772309242e-12
+2.459999999999e+03 4.920000000000e+02 7.673861546209e-13
+2.464999999999e+03 4.930000000000e+02 3.211653165636e-12
+2.469999999999e+03 4.940000000000e+02 5.371703082346e-12
+2.474999999999e+03 4.950000000000e+02 4.206412995700e-12
+2.479999999999e+03 4.960000000000e+02 -1.676880856394e-12
+2.484999999999e+03 4.970000000000e+02 -1.421085471520e-13
+2.489999999999e+03 4.980000000000e+02 2.813749233610e-12
+2.494999999999e+03 4.990000000000e+02 1.421085471520e-13
+2.499999999999e+03 5.000000000000e+02 3.126388037344e-13
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder.xmds b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder.xmds
new file mode 100644
index 0000000..d206816
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder.xmds
@@ -0,0 +1,8065 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <name>exponential_scaling_2ndOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 2nd order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+    NB: This actually does the same thing as the Modified Midpoint stepper on its own.
+  </description>
+  
+  <testing>
+    <xsil_file name="exponential_scaling_2ndOrder.xsil" expected="exponential_scaling_2ndOrder_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" interval="5.0" steps="1" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="2" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="3" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="4" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="5" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="6" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="7" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="8" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="9" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="10" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="11" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="12" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="13" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="14" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="15" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="16" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="17" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="18" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="19" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="20" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="21" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="22" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="23" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="24" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="25" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="26" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="27" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="28" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="29" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="30" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="31" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="32" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="33" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="34" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="35" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="36" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="37" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="38" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="39" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="40" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="41" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="42" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="43" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="44" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="45" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="46" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="47" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="48" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="49" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="50" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="51" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="52" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="53" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="54" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="55" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="56" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="57" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="58" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="59" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="60" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="61" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="62" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="63" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="64" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="65" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="66" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="67" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="68" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="69" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="70" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="71" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="72" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="73" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="74" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="75" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="76" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="77" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="78" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="79" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="80" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="81" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="82" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="83" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="84" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="85" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="86" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="87" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="88" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="89" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="90" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="91" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="92" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="93" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="94" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="95" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="96" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="97" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="98" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="99" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="100" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="101" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="102" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="103" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="104" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="105" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="106" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="107" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="108" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="109" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="110" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="111" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="112" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="113" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="114" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="115" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="116" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="117" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="118" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="119" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="120" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="121" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="122" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="123" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="124" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="125" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="126" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="127" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="128" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="129" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="130" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="131" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="132" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="133" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="134" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="135" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="136" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="137" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="138" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="139" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="140" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="141" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="142" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="143" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="144" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="145" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="146" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="147" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="148" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="149" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="150" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="151" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="152" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="153" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="154" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="155" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="156" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="157" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="158" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="159" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="160" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="161" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="162" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="163" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="164" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="165" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="166" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="167" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="168" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="169" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="170" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="171" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="172" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="173" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="174" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="175" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="176" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="177" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="178" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="179" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="180" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="181" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="182" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="183" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="184" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="185" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="186" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="187" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="188" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="189" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="190" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="191" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="192" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="193" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="194" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="195" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="196" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="197" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="198" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="199" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="200" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="201" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="202" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="203" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="204" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="205" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="206" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="207" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="208" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="209" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="210" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="211" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="212" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="213" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="214" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="215" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="216" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="217" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="218" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="219" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="220" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="221" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="222" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="223" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="224" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="225" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="226" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="227" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="228" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="229" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="230" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="231" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="232" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="233" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="234" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="235" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="236" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="237" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="238" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="239" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="240" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="241" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="242" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="243" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="244" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="245" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="246" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="247" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="248" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="249" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="250" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="251" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="252" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="253" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="254" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="255" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="256" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="257" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="258" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="259" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="260" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="261" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="262" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="263" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="264" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="265" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="266" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="267" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="268" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="269" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="270" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="271" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="272" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="273" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="274" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="275" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="276" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="277" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="278" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="279" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="280" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="281" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="282" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="283" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="284" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="285" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="286" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="287" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="288" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="289" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="290" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="291" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="292" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="293" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="294" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="295" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="296" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="297" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="298" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="299" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="300" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="301" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="302" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="303" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="304" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="305" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="306" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="307" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="308" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="309" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="310" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="311" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="312" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="313" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="314" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="315" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="316" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="317" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="318" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="319" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="320" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="321" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="322" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="323" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="324" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="325" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="326" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="327" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="328" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="329" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="330" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="331" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="332" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="333" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="334" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="335" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="336" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="337" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="338" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="339" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="340" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="341" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="342" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="343" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="344" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="345" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="346" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="347" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="348" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="349" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="350" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="351" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="352" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="353" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="354" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="355" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="356" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="357" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="358" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="359" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="360" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="361" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="362" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="363" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="364" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="365" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="366" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="367" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="368" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="369" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="370" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="371" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="372" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="373" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="374" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="375" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="376" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="377" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="378" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="379" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="380" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="381" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="382" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="383" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="384" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="385" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="386" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="387" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="388" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="389" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="390" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="391" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="392" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="393" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="394" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="395" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="396" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="397" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="398" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="399" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="400" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="401" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="402" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="403" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="404" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="405" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="406" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="407" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="408" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="409" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="410" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="411" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="412" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="413" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="414" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="415" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="416" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="417" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="418" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="419" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="420" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="421" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="422" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="423" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="424" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="425" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="426" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="427" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="428" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="429" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="430" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="431" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="432" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="433" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="434" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="435" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="436" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="437" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="438" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="439" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="440" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="441" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="442" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="443" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="444" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="445" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="446" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="447" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="448" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="449" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="450" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="451" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="452" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="453" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="454" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="455" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="456" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="457" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="458" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="459" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="460" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="461" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="462" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="463" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="464" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="465" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="466" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="467" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="468" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="469" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="470" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="471" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="472" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="473" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="474" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="475" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="476" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="477" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="478" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="479" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="480" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="481" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="482" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="483" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="484" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="485" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="486" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="487" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="488" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="489" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="490" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="491" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="492" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="493" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="494" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="495" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="496" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="497" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="498" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="499" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="500" extrapolations="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder_expected.xsil b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder_expected.xsil
new file mode 100644
index 0000000..beafa23
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_2ndOrder_expected.xsil
@@ -0,0 +1,8585 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <name>exponential_scaling_2ndOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 2nd order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+    NB: This actually does the same thing as the Modified Midpoint stepper on its own.
+  </description>
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="exponential_scaling_2ndOrder_expected.xsil" name="exponential_scaling_2ndOrder.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="6">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="7">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="8">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="9">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="10">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="11">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="12">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="13">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="14">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="15">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="16">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="17">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="18">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="19">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="20">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="21">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="22">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="23">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="24">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="25">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="26">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="27">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="28">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="29">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="30">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="31">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="32">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="33">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="34">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="35">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="36">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="37">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="38">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="39">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="40">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="41">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="42">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="43">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="44">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="45">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="46">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="47">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="48">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="49">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="50">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="51">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="52">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="53">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="54">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="55">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="56">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="57">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="58">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="59">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="60">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="61">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="62">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="63">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="64">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="65">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="66">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="67">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="68">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="69">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="70">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="71">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="72">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="73">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="74">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="75">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="76">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="77">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="78">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="79">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="80">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="81">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="82">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="83">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="84">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="85">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="86">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="87">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="88">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="89">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="90">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="91">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="92">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="93">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="94">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="95">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="96">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="97">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="98">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="99">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="100">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="101">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="102">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="103">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="104">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="105">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="106">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="107">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="108">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="109">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="110">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="111">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="112">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="113">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="114">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="115">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="116">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="117">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="118">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="119">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="120">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="121">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="122">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="123">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="124">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="125">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="126">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="127">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="128">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="129">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="130">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="131">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="132">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="133">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="134">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="135">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="136">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="137">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="138">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="139">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="140">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="141">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="142">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="143">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="144">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="145">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="146">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="147">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="148">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="149">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="150">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="151">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="152">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="153">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="154">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="155">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="156">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="157">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="158">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="159">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="160">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="161">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="162">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="163">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="164">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="165">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="166">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="167">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="168">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="169">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="170">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="171">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="172">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="173">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="174">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="175">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="176">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="177">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="178">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="179">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="180">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="181">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="182">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="183">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="184">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="185">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="186">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="187">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="188">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="189">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="190">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="191">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="192">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="193">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="194">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="195">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="196">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="197">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="198">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="199">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="200">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="201">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="202">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="203">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="204">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="205">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="206">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="207">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="208">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="209">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="210">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="211">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="212">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="213">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="214">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="215">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="216">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="217">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="218">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="219">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="220">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="221">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="222">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="223">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="224">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="225">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="226">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="227">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="228">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="229">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="230">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="231">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="232">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="233">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="234">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="235">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="236">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="237">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="238">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="239">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="240">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="241">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="242">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="243">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="244">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="245">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="246">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="247">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="248">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="249">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="250">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="251">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="252">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="253">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="254">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="255">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="256">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="257">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="258">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="259">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="260">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="261">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="262">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="263">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="264">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="265">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="266">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="267">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="268">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="269">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="270">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="271">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="272">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="273">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="274">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="275">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="276">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="277">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="278">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="279">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="280">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="281">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="282">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="283">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="284">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="285">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="286">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="287">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="288">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="289">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="290">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="291">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="292">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="293">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="294">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="295">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="296">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="297">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="298">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="299">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="300">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="301">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="302">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="303">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="304">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="305">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="306">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="307">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="308">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="309">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="310">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="311">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="312">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="313">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="314">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="315">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="316">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="317">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="318">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="319">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="320">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="321">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="322">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="323">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="324">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="325">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="326">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="327">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="328">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="329">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="330">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="331">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="332">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="333">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="334">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="335">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="336">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="337">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="338">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="339">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="340">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="341">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="342">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="343">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="344">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="345">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="346">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="347">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="348">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="349">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="350">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="351">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="352">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="353">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="354">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="355">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="356">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="357">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="358">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="359">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="360">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="361">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="362">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="363">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="364">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="365">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="366">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="367">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="368">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="369">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="370">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="371">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="372">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="373">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="374">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="375">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="376">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="377">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="378">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="379">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="380">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="381">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="382">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="383">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="384">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="385">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="386">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="387">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="388">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="389">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="390">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="391">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="392">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="393">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="394">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="395">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="396">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="397">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="398">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="399">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="400">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="401">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="402">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="403">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="404">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="405">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="406">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="407">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="408">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="409">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="410">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="411">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="412">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="413">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="414">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="415">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="416">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="417">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="418">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="419">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="420">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="421">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="422">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="423">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="424">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="425">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="426">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="427">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="428">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="429">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="430">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="431">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="432">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="433">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="434">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="435">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="436">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="437">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="438">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="439">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="440">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="441">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="442">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="443">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="444">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="445">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="446">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="447">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="448">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="449">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="450">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="451">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="452">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="453">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="454">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="455">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="456">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="457">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="458">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="459">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="460">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="461">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="462">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="463">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="464">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="465">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="466">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="467">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="468">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="469">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="470">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="471">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="472">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="473">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="474">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="475">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="476">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="477">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="478">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="479">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="480">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="481">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="482">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="483">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="484">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="485">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="486">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="487">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="488">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="489">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="490">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="491">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="492">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="493">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="494">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="495">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="496">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="497">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="498">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="499">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="1" interval="5.0" steps="500">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">1</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+x stepsR err_yR 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>500</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+5.000000000000e+00 1.000000000000e+00 1.142881591026e+02
+1.000000000000e+01 2.000000000000e+00 7.482893058695e+01
+1.500000000000e+01 3.000000000000e+00 4.888614409835e+01
+2.000000000000e+01 4.000000000000e+00 3.331923260739e+01
+2.500000000000e+01 5.000000000000e+00 2.377628776469e+01
+3.000000000000e+01 6.000000000000e+00 1.766246788647e+01
+3.500000000000e+01 7.000000000000e+00 1.356737271366e+01
+4.000000000000e+01 8.000000000000e+00 1.071365083376e+01
+4.500000000000e+01 9.000000000000e+00 8.656159435725e+00
+5.000000000000e+01 1.000000000000e+01 7.129071654411e+00
+5.500000000000e+01 1.100000000000e+01 5.967218327029e+00
+6.000000000000e+01 1.200000000000e+01 5.064231012292e+00
+6.500000000000e+01 1.300000000000e+01 4.349394891117e+00
+7.000000000000e+01 1.400000000000e+01 3.774357141003e+00
+7.500000000000e+01 1.500000000000e+01 3.305222484244e+00
+8.000000000000e+01 1.600000000000e+01 2.917699919998e+00
+8.500000000000e+01 1.700000000000e+01 2.594035518264e+00
+9.000000000000e+01 1.800000000000e+01 2.321022768257e+00
+9.500000000000e+01 1.900000000000e+01 2.088681157806e+00
+1.000000000000e+02 2.000000000000e+01 1.889359644449e+00
+1.050000000000e+02 2.100000000000e+01 1.717116513705e+00
+1.100000000000e+02 2.200000000000e+01 1.567282795365e+00
+1.150000000000e+02 2.300000000000e+01 1.436149921789e+00
+1.200000000000e+02 2.400000000000e+01 1.320742954632e+00
+1.250000000000e+02 2.500000000000e+01 1.218653693487e+00
+1.300000000000e+02 2.600000000000e+01 1.127916311892e+00
+1.350000000000e+02 2.700000000000e+01 1.046913609096e+00
+1.400000000000e+02 2.800000000000e+01 9.743055815241e-01
+1.450000000000e+02 2.900000000000e+01 9.089744572218e-01
+1.500000000000e+02 3.000000000000e+01 8.499820061265e-01
+1.550000000000e+02 3.100000000000e+01 7.965360973222e-01
+1.600000000000e+02 3.200000000000e+01 7.479642880935e-01
+1.650000000000e+02 3.300000000000e+01 7.036928079564e-01
+1.700000000000e+02 3.400000000000e+01 6.632297164988e-01
+1.750000000000e+02 3.500000000000e+01 6.261513156673e-01
+1.800000000000e+02 3.600000000000e+01 5.920911184390e-01
+1.850000000000e+02 3.700000000000e+01 5.607308395748e-01
+1.900000000000e+02 3.800000000000e+01 5.317929963711e-01
+1.950000000000e+02 3.900000000000e+01 5.050347993065e-01
+2.000000000000e+02 4.000000000000e+01 4.802430822415e-01
+2.050000000000e+02 4.100000000000e+01 4.572300751041e-01
+2.100000000000e+02 4.200000000000e+01 4.358298629975e-01
+2.150000000000e+02 4.300000000000e+01 4.158954074079e-01
+2.200000000000e+02 4.400000000000e+01 3.972960299309e-01
+2.250000000000e+02 4.500000000000e+01 3.799152783207e-01
+2.300000000000e+02 4.600000000000e+01 3.636491099682e-01
+2.350000000000e+02 4.700000000000e+01 3.484043400271e-01
+2.400000000000e+02 4.800000000000e+01 3.340973110724e-01
+2.450000000000e+02 4.900000000000e+01 3.206527489104e-01
+2.500000000000e+02 5.000000000000e+01 3.080027753869e-01
+2.550000000000e+02 5.100000000000e+01 2.960860540682e-01
+2.600000000000e+02 5.200000000000e+01 2.848470487652e-01
+2.650000000000e+02 5.300000000000e+01 2.742353781974e-01
+2.700000000000e+02 5.400000000000e+01 2.642052528191e-01
+2.750000000000e+02 5.500000000000e+01 2.547149820797e-01
+2.800000000000e+02 5.600000000000e+01 2.457265422370e-01
+2.850000000000e+02 5.700000000000e+01 2.372051963691e-01
+2.900000000000e+02 5.800000000000e+01 2.291191595103e-01
+2.950000000000e+02 5.900000000000e+01 2.214393028948e-01
+3.000000000000e+02 6.000000000000e+01 2.141388921746e-01
+3.050000000000e+02 6.100000000000e+01 2.071933552304e-01
+3.100000000000e+02 6.200000000000e+01 2.005800758119e-01
+3.150000000000e+02 6.300000000000e+01 1.942782097825e-01
+3.200000000000e+02 6.400000000000e+01 1.882685211774e-01
+3.250000000000e+02 6.500000000000e+01 1.825332356791e-01
+3.300000000000e+02 6.600000000000e+01 1.770559094219e-01
+3.350000000000e+02 6.700000000000e+01 1.718213113278e-01
+3.400000000000e+02 6.800000000000e+01 1.668153173942e-01
+3.450000000000e+02 6.900000000000e+01 1.620248155757e-01
+3.500000000000e+02 7.000000000000e+01 1.574376200600e-01
+3.550000000000e+02 7.100000000000e+01 1.530423938882e-01
+3.600000000000e+02 7.200000000000e+01 1.488285790165e-01
+3.650000000000e+02 7.300000000000e+01 1.447863330004e-01
+3.700000000000e+02 7.400000000000e+01 1.409064716022e-01
+3.750000000000e+02 7.500000000000e+01 1.371804166965e-01
+3.800000000000e+02 7.600000000000e+01 1.336001489170e-01
+3.850000000000e+02 7.700000000000e+01 1.301581645660e-01
+3.900000000000e+02 7.800000000000e+01 1.268474363473e-01
+3.950000000000e+02 7.900000000000e+01 1.236613775434e-01
+4.000000000000e+02 8.000000000000e+01 1.205938092935e-01
+4.050000000000e+02 8.100000000000e+01 1.176389306733e-01
+4.100000000000e+02 8.200000000000e+01 1.147912913008e-01
+4.150000000000e+02 8.300000000000e+01 1.120457662324e-01
+4.200000000000e+02 8.400000000000e+01 1.093975329298e-01
+4.250000000000e+02 8.500000000000e+01 1.068420501043e-01
+4.300000000000e+02 8.600000000000e+01 1.043750382716e-01
+4.350000000000e+02 8.700000000000e+01 1.019924618509e-01
+4.400000000000e+02 8.800000000000e+01 9.969051268033e-02
+4.450000000000e+02 8.900000000000e+01 9.746559481320e-02
+4.500000000000e+02 9.000000000000e+01 9.531431049021e-02
+4.550000000000e+02 9.100000000000e+01 9.323344717902e-02
+4.600000000000e+02 9.200000000000e+01 9.121996559188e-02
+4.650000000000e+02 9.300000000000e+01 8.927098859738e-02
+4.700000000000e+02 9.400000000000e+01 8.738379095340e-02
+4.750000000000e+02 9.500000000000e+01 8.555578978743e-02
+4.800000000000e+02 9.600000000000e+01 8.378453576614e-02
+4.850000000000e+02 9.700000000000e+01 8.206770489937e-02
+4.900000000000e+02 9.800000000000e+01 8.040309092229e-02
+4.950000000000e+02 9.900000000000e+01 7.878859821272e-02
+5.000000000000e+02 1.000000000000e+02 7.722223520241e-02
+5.050000000000e+02 1.010000000000e+02 7.570210823823e-02
+5.100000000000e+02 1.020000000000e+02 7.422641586427e-02
+5.150000000000e+02 1.030000000000e+02 7.279344348888e-02
+5.200000000000e+02 1.040000000000e+02 7.140155840679e-02
+5.250000000000e+02 1.050000000000e+02 7.004920515368e-02
+5.300000000000e+02 1.060000000000e+02 6.873490116084e-02
+5.350000000000e+02 1.070000000000e+02 6.745723269847e-02
+5.400000000000e+02 1.080000000000e+02 6.621485107308e-02
+5.450000000000e+02 1.090000000000e+02 6.500646907185e-02
+5.500000000000e+02 1.100000000000e+02 6.383085763255e-02
+5.550000000000e+02 1.110000000000e+02 6.268684271748e-02
+5.600000000000e+02 1.120000000000e+02 6.157330238520e-02
+5.650000000000e+02 1.130000000000e+02 6.048916404350e-02
+5.700000000000e+02 1.140000000000e+02 5.943340186482e-02
+5.750000000000e+02 1.150000000000e+02 5.840503436278e-02
+5.800000000000e+02 1.160000000000e+02 5.740312211418e-02
+5.850000000000e+02 1.170000000000e+02 5.642676561035e-02
+5.900000000000e+02 1.180000000000e+02 5.547510324442e-02
+5.950000000000e+02 1.190000000000e+02 5.454730940750e-02
+6.000000000000e+02 1.200000000000e+02 5.364259270218e-02
+6.050000000000e+02 1.210000000000e+02 5.276019425358e-02
+6.100000000000e+02 1.220000000000e+02 5.189938611954e-02
+6.150000000000e+02 1.230000000000e+02 5.105946979077e-02
+6.200000000000e+02 1.240000000000e+02 5.023977477421e-02
+6.250000000000e+02 1.250000000000e+02 4.943965725499e-02
+6.300000000000e+02 1.260000000000e+02 4.865849883365e-02
+6.350000000000e+02 1.270000000000e+02 4.789570533131e-02
+6.400000000000e+02 1.280000000000e+02 4.715070566124e-02
+6.450000000000e+02 1.290000000000e+02 4.642295075894e-02
+6.500000000000e+02 1.300000000000e+02 4.571191257278e-02
+6.550000000000e+02 1.310000000000e+02 4.501708310542e-02
+6.600000000000e+02 1.320000000000e+02 4.433797350697e-02
+6.650000000000e+02 1.330000000000e+02 4.367411321618e-02
+6.700000000000e+02 1.340000000000e+02 4.302504914457e-02
+6.750000000000e+02 1.350000000000e+02 4.239034490533e-02
+6.800000000000e+02 1.360000000000e+02 4.176958007844e-02
+6.850000000000e+02 1.370000000000e+02 4.116234951559e-02
+6.900000000000e+02 1.380000000000e+02 4.056826267978e-02
+6.950000000000e+02 1.390000000000e+02 3.998694301677e-02
+7.000000000000e+02 1.400000000000e+02 3.941802735935e-02
+7.050000000000e+02 1.410000000000e+02 3.886116536046e-02
+7.100000000000e+02 1.420000000000e+02 3.831601895226e-02
+7.150000000000e+02 1.430000000000e+02 3.778226183658e-02
+7.200000000000e+02 1.440000000000e+02 3.725957899402e-02
+7.250000000000e+02 1.450000000000e+02 3.674766622009e-02
+7.300000000000e+02 1.460000000000e+02 3.624622968238e-02
+7.350000000000e+02 1.470000000000e+02 3.575498550131e-02
+7.399999999999e+02 1.480000000000e+02 3.527365934514e-02
+7.450000000000e+02 1.490000000000e+02 3.480198605001e-02
+7.499999999999e+02 1.500000000000e+02 3.433970925255e-02
+7.549999999999e+02 1.510000000000e+02 3.388658104319e-02
+7.599999999999e+02 1.520000000000e+02 3.344236163349e-02
+7.649999999999e+02 1.530000000000e+02 3.300681903954e-02
+7.699999999999e+02 1.540000000000e+02 3.257972877773e-02
+7.749999999999e+02 1.550000000000e+02 3.216087357680e-02
+7.799999999999e+02 1.560000000000e+02 3.175004310162e-02
+7.849999999999e+02 1.570000000000e+02 3.134703368835e-02
+7.900000000000e+02 1.580000000000e+02 3.095164809332e-02
+7.950000000000e+02 1.590000000000e+02 3.056369525169e-02
+8.000000000000e+02 1.600000000000e+02 3.018299004290e-02
+8.050000000000e+02 1.610000000000e+02 2.980935307775e-02
+8.100000000000e+02 1.620000000000e+02 2.944261047955e-02
+8.150000000000e+02 1.630000000000e+02 2.908259368562e-02
+8.200000000000e+02 1.640000000000e+02 2.872913925302e-02
+8.249999999999e+02 1.650000000000e+02 2.838208867306e-02
+8.300000000000e+02 1.660000000000e+02 2.804128819304e-02
+8.349999999999e+02 1.670000000000e+02 2.770658864716e-02
+8.400000000000e+02 1.680000000000e+02 2.737784529276e-02
+8.450000000000e+02 1.690000000000e+02 2.705491765383e-02
+8.499999999999e+02 1.700000000000e+02 2.673766937079e-02
+8.550000000000e+02 1.710000000000e+02 2.642596805609e-02
+8.600000000000e+02 1.720000000000e+02 2.611968515890e-02
+8.650000000000e+02 1.730000000000e+02 2.581869582818e-02
+8.700000000000e+02 1.740000000000e+02 2.552287878996e-02
+8.750000000000e+02 1.750000000000e+02 2.523211622125e-02
+8.800000000000e+02 1.760000000000e+02 2.494629363619e-02
+8.850000000000e+02 1.770000000000e+02 2.466529977093e-02
+8.900000000000e+02 1.780000000000e+02 2.438902647651e-02
+8.950000000000e+02 1.790000000000e+02 2.411736861436e-02
+9.000000000000e+02 1.800000000000e+02 2.385022395708e-02
+9.050000000000e+02 1.810000000000e+02 2.358749309110e-02
+9.100000000000e+02 1.820000000000e+02 2.332907932467e-02
+9.150000000000e+02 1.830000000000e+02 2.307488860032e-02
+9.200000000000e+02 1.840000000000e+02 2.282482940700e-02
+9.250000000000e+02 1.850000000000e+02 2.257881269853e-02
+9.300000000000e+02 1.860000000000e+02 2.233675181526e-02
+9.350000000000e+02 1.870000000000e+02 2.209856240751e-02
+9.400000000000e+02 1.880000000000e+02 2.186416236137e-02
+9.450000000000e+02 1.890000000000e+02 2.163347172723e-02
+9.500000000000e+02 1.900000000000e+02 2.140641265422e-02
+9.550000000000e+02 1.910000000000e+02 2.118290932259e-02
+9.600000000000e+02 1.920000000000e+02 2.096288787988e-02
+9.650000000000e+02 1.930000000000e+02 2.074627638271e-02
+9.700000000000e+02 1.940000000000e+02 2.053300473389e-02
+9.750000000000e+02 1.950000000000e+02 2.032300463071e-02
+9.800000000000e+02 1.960000000000e+02 2.011620950512e-02
+9.850000000000e+02 1.970000000000e+02 1.991255447530e-02
+9.900000000000e+02 1.980000000000e+02 1.971197629101e-02
+9.950000000000e+02 1.990000000000e+02 1.951441328831e-02
+1.000000000000e+03 2.000000000000e+02 1.931980533908e-02
+1.005000000000e+03 2.010000000000e+02 1.912809380650e-02
+1.010000000000e+03 2.020000000000e+02 1.893922150200e-02
+1.015000000000e+03 2.030000000000e+02 1.875313263943e-02
+1.020000000000e+03 2.040000000000e+02 1.856977279826e-02
+1.025000000000e+03 2.050000000000e+02 1.838908887922e-02
+1.030000000000e+03 2.060000000000e+02 1.821102906894e-02
+1.035000000000e+03 2.070000000000e+02 1.803554280360e-02
+1.040000000000e+03 2.080000000000e+02 1.786258072821e-02
+1.045000000000e+03 2.090000000000e+02 1.769209466838e-02
+1.050000000000e+03 2.100000000000e+02 1.752403759093e-02
+1.055000000000e+03 2.110000000000e+02 1.735836357602e-02
+1.060000000000e+03 2.120000000000e+02 1.719502778198e-02
+1.065000000000e+03 2.130000000000e+02 1.703398641865e-02
+1.070000000000e+03 2.140000000000e+02 1.687519671486e-02
+1.075000000000e+03 2.150000000000e+02 1.671861689135e-02
+1.080000000000e+03 2.160000000000e+02 1.656420613440e-02
+1.085000000000e+03 2.170000000000e+02 1.641192456702e-02
+1.090000000000e+03 2.180000000000e+02 1.626173322461e-02
+1.095000000000e+03 2.190000000000e+02 1.611359403105e-02
+1.100000000000e+03 2.200000000000e+02 1.596746977148e-02
+1.105000000000e+03 2.210000000000e+02 1.582332407068e-02
+1.110000000000e+03 2.220000000000e+02 1.568112137281e-02
+1.115000000000e+03 2.230000000000e+02 1.554082691479e-02
+1.120000000000e+03 2.240000000000e+02 1.540240670829e-02
+1.125000000000e+03 2.250000000000e+02 1.526582751794e-02
+1.130000000000e+03 2.260000000000e+02 1.513105684310e-02
+1.135000000000e+03 2.270000000000e+02 1.499806289556e-02
+1.140000000000e+03 2.280000000000e+02 1.486681458260e-02
+1.145000000000e+03 2.290000000000e+02 1.473728148963e-02
+1.150000000000e+03 2.300000000000e+02 1.460943386095e-02
+1.155000000000e+03 2.310000000000e+02 1.448324258345e-02
+1.160000000000e+03 2.320000000000e+02 1.435867916896e-02
+1.165000000000e+03 2.330000000000e+02 1.423571574102e-02
+1.170000000000e+03 2.340000000000e+02 1.411432501544e-02
+1.175000000000e+03 2.350000000000e+02 1.399448028772e-02
+1.180000000000e+03 2.360000000000e+02 1.387615541842e-02
+1.185000000000e+03 2.370000000000e+02 1.375932481744e-02
+1.190000000000e+03 2.380000000000e+02 1.364396343070e-02
+1.195000000000e+03 2.390000000000e+02 1.353004672859e-02
+1.200000000000e+03 2.400000000000e+02 1.341755068944e-02
+1.205000000000e+03 2.410000000000e+02 1.330645178948e-02
+1.210000000000e+03 2.420000000000e+02 1.319672698963e-02
+1.215000000000e+03 2.430000000000e+02 1.308835372402e-02
+1.220000000000e+03 2.440000000000e+02 1.298130988832e-02
+1.225000000000e+03 2.450000000000e+02 1.287557382796e-02
+1.230000000000e+03 2.460000000000e+02 1.277112432621e-02
+1.235000000000e+03 2.470000000000e+02 1.266794059723e-02
+1.240000000000e+03 2.480000000000e+02 1.256600227168e-02
+1.245000000000e+03 2.490000000000e+02 1.246528938881e-02
+1.250000000000e+03 2.500000000000e+02 1.236578238544e-02
+1.255000000000e+03 2.510000000000e+02 1.226746208832e-02
+1.260000000000e+03 2.520000000000e+02 1.217030970287e-02
+1.265000000000e+03 2.530000000000e+02 1.207430680549e-02
+1.270000000000e+03 2.540000000000e+02 1.197943533415e-02
+1.275000000000e+03 2.550000000000e+02 1.188567757990e-02
+1.280000000000e+03 2.560000000000e+02 1.179301618100e-02
+1.285000000000e+03 2.570000000000e+02 1.170143410928e-02
+1.290000000000e+03 2.580000000000e+02 1.161091466827e-02
+1.295000000000e+03 2.590000000000e+02 1.152144148301e-02
+1.300000000000e+03 2.600000000000e+02 1.143299849139e-02
+1.305000000000e+03 2.610000000000e+02 1.134556994003e-02
+1.310000000000e+03 2.620000000000e+02 1.125914037308e-02
+1.315000000000e+03 2.630000000000e+02 1.117369463057e-02
+1.320000000000e+03 2.640000000000e+02 1.108921783739e-02
+1.325000000000e+03 2.650000000000e+02 1.100569540006e-02
+1.330000000000e+03 2.660000000000e+02 1.092311299601e-02
+1.335000000000e+03 2.670000000000e+02 1.084145657322e-02
+1.340000000000e+03 2.680000000000e+02 1.076071234010e-02
+1.345000000000e+03 2.690000000000e+02 1.068086675971e-02
+1.350000000000e+03 2.700000000000e+02 1.060190654758e-02
+1.355000000000e+03 2.710000000000e+02 1.052381866270e-02
+1.360000000000e+03 2.720000000000e+02 1.044659030214e-02
+1.365000000000e+03 2.730000000000e+02 1.037020889868e-02
+1.370000000000e+03 2.740000000000e+02 1.029466211338e-02
+1.375000000000e+03 2.750000000000e+02 1.021993783121e-02
+1.380000000000e+03 2.760000000000e+02 1.014602415535e-02
+1.385000000000e+03 2.770000000000e+02 1.007290940473e-02
+1.390000000000e+03 2.780000000000e+02 1.000058210607e-02
+1.395000000000e+03 2.790000000000e+02 9.929030994073e-03
+1.400000000000e+03 2.800000000000e+02 9.858245001453e-03
+1.405000000000e+03 2.810000000000e+02 9.788213258105e-03
+1.410000000000e+03 2.820000000000e+02 9.718925087810e-03
+1.415000000000e+03 2.830000000000e+02 9.650370000912e-03
+1.420000000000e+03 2.840000000000e+02 9.582537692410e-03
+1.425000000000e+03 2.850000000000e+02 9.515418038887e-03
+1.430000000000e+03 2.860000000000e+02 9.449001090957e-03
+1.435000000000e+03 2.870000000000e+02 9.383277074932e-03
+1.440000000000e+03 2.880000000000e+02 9.318236385980e-03
+1.445000000000e+03 2.890000000000e+02 9.253869582693e-03
+1.450000000000e+03 2.900000000000e+02 9.190167389733e-03
+1.455000000000e+03 2.910000000000e+02 9.127120688618e-03
+1.460000000000e+03 2.920000000000e+02 9.064720516619e-03
+1.465000000000e+03 2.930000000000e+02 9.002958064627e-03
+1.470000000000e+03 2.940000000000e+02 8.941824672547e-03
+1.475000000000e+03 2.950000000000e+02 8.881311827025e-03
+1.480000000000e+03 2.960000000000e+02 8.821411157584e-03
+1.485000000000e+03 2.970000000000e+02 8.762114435228e-03
+1.490000000000e+03 2.980000000000e+02 8.703413568213e-03
+1.495000000000e+03 2.990000000000e+02 8.645300600705e-03
+1.500000000000e+03 3.000000000000e+02 8.587767707326e-03
+1.505000000000e+03 3.010000000000e+02 8.530807194518e-03
+1.510000000000e+03 3.020000000000e+02 8.474411495456e-03
+1.515000000000e+03 3.030000000000e+02 8.418573166978e-03
+1.520000000000e+03 3.040000000000e+02 8.363284887906e-03
+1.525000000000e+03 3.050000000000e+02 8.308539459023e-03
+1.530000000000e+03 3.060000000000e+02 8.254329795875e-03
+1.535000000000e+03 3.070000000000e+02 8.200648931137e-03
+1.540000000000e+03 3.080000000000e+02 8.147490009520e-03
+1.545000000000e+03 3.090000000000e+02 8.094846286241e-03
+1.550000000000e+03 3.100000000000e+02 8.042711126222e-03
+1.555000000000e+03 3.110000000000e+02 7.991077999350e-03
+1.560000000000e+03 3.120000000000e+02 7.939940481521e-03
+1.565000000000e+03 3.130000000000e+02 7.889292249359e-03
+1.570000000000e+03 3.140000000000e+02 7.839127081013e-03
+1.575000000000e+03 3.150000000000e+02 7.789438854275e-03
+1.580000000000e+03 3.160000000000e+02 7.740221540928e-03
+1.585000000000e+03 3.170000000000e+02 7.691469210442e-03
+1.590000000000e+03 3.180000000000e+02 7.643176023578e-03
+1.595000000000e+03 3.190000000000e+02 7.595336232754e-03
+1.600000000000e+03 3.200000000000e+02 7.547944180459e-03
+1.605000000000e+03 3.210000000000e+02 7.500994297430e-03
+1.610000000000e+03 3.220000000000e+02 7.454481100154e-03
+1.615000000000e+03 3.230000000000e+02 7.408399189558e-03
+1.620000000000e+03 3.240000000000e+02 7.362743250752e-03
+1.625000000000e+03 3.250000000000e+02 7.317508049766e-03
+1.630000000000e+03 3.260000000000e+02 7.272688432494e-03
+1.635000000000e+03 3.270000000000e+02 7.228279323868e-03
+1.640000000000e+03 3.280000000000e+02 7.184275726928e-03
+1.645000000000e+03 3.290000000000e+02 7.140672719203e-03
+1.650000000000e+03 3.300000000000e+02 7.097465452887e-03
+1.655000000000e+03 3.310000000000e+02 7.054649154497e-03
+1.660000000000e+03 3.320000000000e+02 7.012219119645e-03
+1.665000000000e+03 3.330000000000e+02 6.970170718063e-03
+1.670000000000e+03 3.340000000000e+02 6.928499385680e-03
+1.675000000000e+03 3.350000000000e+02 6.887200628029e-03
+1.680000000000e+03 3.360000000000e+02 6.846270017121e-03
+1.685000000000e+03 3.370000000000e+02 6.805703189656e-03
+1.690000000000e+03 3.380000000000e+02 6.765495848441e-03
+1.695000000000e+03 3.390000000000e+02 6.725643757818e-03
+1.700000000000e+03 3.400000000000e+02 6.686142745650e-03
+1.705000000000e+03 3.410000000000e+02 6.646988700169e-03
+1.710000000000e+03 3.420000000000e+02 6.608177569689e-03
+1.715000000000e+03 3.430000000000e+02 6.569705361358e-03
+1.720000000000e+03 3.440000000000e+02 6.531568141583e-03
+1.725000000000e+03 3.450000000000e+02 6.493762031454e-03
+1.730000000000e+03 3.460000000000e+02 6.456283209189e-03
+1.735000000000e+03 3.470000000000e+02 6.419127909624e-03
+1.740000000000e+03 3.480000000000e+02 6.382292417470e-03
+1.745000000000e+03 3.490000000000e+02 6.345773074997e-03
+1.750000000000e+03 3.500000000000e+02 6.309566274439e-03
+1.755000000000e+03 3.510000000000e+02 6.273668458533e-03
+1.760000000000e+03 3.520000000000e+02 6.238076122770e-03
+1.765000000000e+03 3.530000000000e+02 6.202785809762e-03
+1.770000000000e+03 3.540000000000e+02 6.167794112855e-03
+1.775000000000e+03 3.550000000000e+02 6.133097673739e-03
+1.780000000000e+03 3.560000000000e+02 6.098693177734e-03
+1.784999999999e+03 3.570000000000e+02 6.064577359894e-03
+1.789999999999e+03 3.580000000000e+02 6.030747000096e-03
+1.794999999999e+03 3.590000000000e+02 5.997198921932e-03
+1.799999999999e+03 3.600000000000e+02 5.963929993896e-03
+1.804999999999e+03 3.610000000000e+02 5.930937127005e-03
+1.809999999999e+03 3.620000000000e+02 5.898217277149e-03
+1.815000000000e+03 3.630000000000e+02 5.865767438820e-03
+1.820000000000e+03 3.640000000000e+02 5.833584649793e-03
+1.825000000000e+03 3.650000000000e+02 5.801665987889e-03
+1.830000000000e+03 3.660000000000e+02 5.770008570408e-03
+1.835000000000e+03 3.670000000000e+02 5.738609555038e-03
+1.840000000000e+03 3.680000000000e+02 5.707466137409e-03
+1.845000000000e+03 3.690000000000e+02 5.676575549330e-03
+1.850000000000e+03 3.700000000000e+02 5.645935062546e-03
+1.855000000000e+03 3.710000000000e+02 5.615541984525e-03
+1.860000000000e+03 3.720000000000e+02 5.585393659004e-03
+1.865000000000e+03 3.730000000000e+02 5.555487465045e-03
+1.870000000000e+03 3.740000000000e+02 5.525820816217e-03
+1.875000000000e+03 3.750000000000e+02 5.496391162467e-03
+1.880000000000e+03 3.760000000000e+02 5.467195984579e-03
+1.885000000000e+03 3.770000000000e+02 5.438232798525e-03
+1.890000000000e+03 3.780000000000e+02 5.409499154155e-03
+1.895000000000e+03 3.790000000000e+02 5.380992630933e-03
+1.900000000000e+03 3.800000000000e+02 5.352710843056e-03
+1.905000000000e+03 3.810000000000e+02 5.324651433256e-03
+1.910000000000e+03 3.820000000000e+02 5.296812076722e-03
+1.915000000000e+03 3.830000000000e+02 5.269190478145e-03
+1.920000000000e+03 3.840000000000e+02 5.241784372856e-03
+1.925000000000e+03 3.850000000000e+02 5.214591525061e-03
+1.930000000000e+03 3.860000000000e+02 5.187609728011e-03
+1.935000000000e+03 3.870000000000e+02 5.160836802816e-03
+1.940000000000e+03 3.880000000000e+02 5.134270599683e-03
+1.945000000000e+03 3.890000000000e+02 5.107908995967e-03
+1.950000000000e+03 3.900000000000e+02 5.081749895993e-03
+1.955000000000e+03 3.910000000000e+02 5.055791231257e-03
+1.960000000000e+03 3.920000000000e+02 5.030030957954e-03
+1.965000000000e+03 3.930000000000e+02 5.004467061127e-03
+1.970000000000e+03 3.940000000000e+02 4.979097550518e-03
+1.975000000000e+03 3.950000000000e+02 4.953920458291e-03
+1.980000000000e+03 3.960000000000e+02 4.928933844496e-03
+1.985000000000e+03 3.970000000000e+02 4.904135792344e-03
+1.990000000000e+03 3.980000000000e+02 4.879524410057e-03
+1.995000000000e+03 3.990000000000e+02 4.855097828596e-03
+2.000000000000e+03 4.000000000000e+02 4.830854200691e-03
+2.005000000000e+03 4.010000000000e+02 4.806791706983e-03
+2.010000000000e+03 4.020000000000e+02 4.782908545394e-03
+2.015000000000e+03 4.030000000000e+02 4.759202937805e-03
+2.020000000000e+03 4.040000000000e+02 4.735673130710e-03
+2.025000000000e+03 4.050000000000e+02 4.712317388993e-03
+2.030000000000e+03 4.060000000000e+02 4.689133999563e-03
+2.035000000000e+03 4.070000000000e+02 4.666121271498e-03
+2.040000000000e+03 4.080000000000e+02 4.643277533887e-03
+2.045000000000e+03 4.090000000000e+02 4.620601135940e-03
+2.050000000000e+03 4.100000000000e+02 4.598090446791e-03
+2.055000000000e+03 4.110000000000e+02 4.575743856577e-03
+2.060000000000e+03 4.120000000000e+02 4.553559774280e-03
+2.065000000000e+03 4.130000000000e+02 4.531536627212e-03
+2.070000000000e+03 4.140000000000e+02 4.509672863463e-03
+2.075000000000e+03 4.150000000000e+02 4.487966947778e-03
+2.080000000000e+03 4.160000000000e+02 4.466417365023e-03
+2.085000000000e+03 4.170000000000e+02 4.445022617404e-03
+2.090000000000e+03 4.180000000000e+02 4.423781224688e-03
+2.095000000000e+03 4.190000000000e+02 4.402691726170e-03
+2.100000000000e+03 4.200000000000e+02 4.381752675499e-03
+2.105000000000e+03 4.210000000000e+02 4.360962645677e-03
+2.110000000000e+03 4.220000000000e+02 4.340320225651e-03
+2.115000000000e+03 4.230000000000e+02 4.319824023185e-03
+2.120000000000e+03 4.240000000000e+02 4.299472657948e-03
+2.125000000000e+03 4.250000000000e+02 4.279264770076e-03
+2.130000000000e+03 4.260000000000e+02 4.259199013632e-03
+2.135000000000e+03 4.270000000000e+02 4.239274058563e-03
+2.140000000000e+03 4.280000000000e+02 4.219488592298e-03
+2.145000000000e+03 4.290000000000e+02 4.199841313323e-03
+2.149999999999e+03 4.300000000000e+02 4.180330939789e-03
+2.154999999999e+03 4.310000000000e+02 4.160956201190e-03
+2.159999999999e+03 4.320000000000e+02 4.141715844355e-03
+2.164999999999e+03 4.330000000000e+02 4.122608629075e-03
+2.169999999999e+03 4.340000000000e+02 4.103633330402e-03
+2.174999999999e+03 4.350000000000e+02 4.084788735014e-03
+2.179999999999e+03 4.360000000000e+02 4.066073647238e-03
+2.184999999999e+03 4.370000000000e+02 4.047486881575e-03
+2.189999999999e+03 4.380000000000e+02 4.029027269468e-03
+2.194999999999e+03 4.390000000000e+02 4.010693651765e-03
+2.199999999999e+03 4.400000000000e+02 3.992484884577e-03
+2.204999999999e+03 4.410000000000e+02 3.974399839024e-03
+2.209999999999e+03 4.420000000000e+02 3.956437394436e-03
+2.214999999999e+03 4.430000000000e+02 3.938596445977e-03
+2.219999999999e+03 4.440000000000e+02 3.920875900633e-03
+2.224999999999e+03 4.450000000000e+02 3.903274677839e-03
+2.229999999999e+03 4.460000000000e+02 3.885791708001e-03
+2.234999999999e+03 4.470000000000e+02 3.868425934144e-03
+2.239999999999e+03 4.480000000000e+02 3.851176311628e-03
+2.244999999999e+03 4.490000000000e+02 3.834041806385e-03
+2.249999999999e+03 4.500000000000e+02 3.817021397253e-03
+2.254999999999e+03 4.510000000000e+02 3.800114072249e-03
+2.259999999999e+03 4.520000000000e+02 3.783318833285e-03
+2.264999999999e+03 4.530000000000e+02 3.766634690152e-03
+2.269999999999e+03 4.540000000000e+02 3.750060666249e-03
+2.274999999999e+03 4.550000000000e+02 3.733595794756e-03
+2.279999999999e+03 4.560000000000e+02 3.717239119140e-03
+2.284999999999e+03 4.570000000000e+02 3.700989693044e-03
+2.289999999999e+03 4.580000000000e+02 3.684846581308e-03
+2.294999999999e+03 4.590000000000e+02 3.668808858691e-03
+2.299999999999e+03 4.600000000000e+02 3.652875608822e-03
+2.304999999999e+03 4.610000000000e+02 3.637045927917e-03
+2.309999999999e+03 4.620000000000e+02 3.621318919471e-03
+2.314999999999e+03 4.630000000000e+02 3.605693697125e-03
+2.319999999999e+03 4.640000000000e+02 3.590169384609e-03
+2.324999999999e+03 4.650000000000e+02 3.574745114918e-03
+2.329999999999e+03 4.660000000000e+02 3.559420030967e-03
+2.334999999999e+03 4.670000000000e+02 3.544193283233e-03
+2.339999999999e+03 4.680000000000e+02 3.529064032961e-03
+2.344999999999e+03 4.690000000000e+02 3.514031448134e-03
+2.349999999999e+03 4.700000000000e+02 3.499094709440e-03
+2.354999999999e+03 4.710000000000e+02 3.484253001716e-03
+2.359999999999e+03 4.720000000000e+02 3.469505521537e-03
+2.364999999999e+03 4.730000000000e+02 3.454851472526e-03
+2.369999999999e+03 4.740000000000e+02 3.440290067033e-03
+2.374999999999e+03 4.750000000000e+02 3.425820526189e-03
+2.379999999999e+03 4.760000000000e+02 3.411442078288e-03
+2.384999999999e+03 4.770000000000e+02 3.397153962084e-03
+2.389999999999e+03 4.780000000000e+02 3.382955420165e-03
+2.394999999999e+03 4.790000000000e+02 3.368845706376e-03
+2.399999999999e+03 4.800000000000e+02 3.354824081526e-03
+2.404999999999e+03 4.810000000000e+02 3.340889813330e-03
+2.409999999999e+03 4.820000000000e+02 3.327042178881e-03
+2.414999999999e+03 4.830000000000e+02 3.313280459338e-03
+2.419999999999e+03 4.840000000000e+02 3.299603947767e-03
+2.424999999999e+03 4.850000000000e+02 3.286011941185e-03
+2.429999999999e+03 4.860000000000e+02 3.272503743858e-03
+2.434999999999e+03 4.870000000000e+02 3.259078669458e-03
+2.439999999999e+03 4.880000000000e+02 3.245736037343e-03
+2.444999999999e+03 4.890000000000e+02 3.232475173235e-03
+2.449999999999e+03 4.900000000000e+02 3.219295410815e-03
+2.454999999999e+03 4.910000000000e+02 3.206196090247e-03
+2.459999999999e+03 4.920000000000e+02 3.193176557289e-03
+2.464999999999e+03 4.930000000000e+02 3.180236166884e-03
+2.469999999999e+03 4.940000000000e+02 3.167374276785e-03
+2.474999999999e+03 4.950000000000e+02 3.154590255775e-03
+2.479999999999e+03 4.960000000000e+02 3.141883474399e-03
+2.484999999999e+03 4.970000000000e+02 3.129253313062e-03
+2.489999999999e+03 4.980000000000e+02 3.116699156180e-03
+2.494999999999e+03 4.990000000000e+02 3.104220395642e-03
+2.499999999999e+03 5.000000000000e+02 3.091816428622e-03
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder.xmds b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder.xmds
new file mode 100644
index 0000000..ee0cf8a
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder.xmds
@@ -0,0 +1,8064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <name>exponential_scaling_4thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 4th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file name="exponential_scaling_4thOrder.xsil" expected="exponential_scaling_4thOrder_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" interval="5.0" steps="1" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="2" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="3" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="4" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="5" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="6" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="7" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="8" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="9" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="10" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="11" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="12" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="13" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="14" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="15" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="16" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="17" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="18" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="19" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="20" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="21" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="22" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="23" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="24" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="25" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="26" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="27" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="28" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="29" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="30" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="31" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="32" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="33" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="34" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="35" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="36" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="37" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="38" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="39" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="40" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="41" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="42" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="43" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="44" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="45" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="46" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="47" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="48" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="49" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="50" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="51" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="52" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="53" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="54" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="55" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="56" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="57" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="58" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="59" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="60" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="61" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="62" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="63" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="64" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="65" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="66" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="67" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="68" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="69" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="70" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="71" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="72" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="73" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="74" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="75" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="76" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="77" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="78" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="79" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="80" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="81" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="82" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="83" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="84" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="85" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="86" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="87" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="88" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="89" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="90" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="91" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="92" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="93" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="94" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="95" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="96" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="97" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="98" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="99" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="100" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="101" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="102" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="103" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="104" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="105" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="106" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="107" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="108" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="109" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="110" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="111" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="112" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="113" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="114" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="115" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="116" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="117" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="118" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="119" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="120" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="121" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="122" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="123" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="124" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="125" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="126" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="127" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="128" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="129" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="130" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="131" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="132" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="133" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="134" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="135" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="136" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="137" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="138" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="139" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="140" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="141" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="142" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="143" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="144" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="145" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="146" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="147" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="148" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="149" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="150" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="151" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="152" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="153" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="154" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="155" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="156" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="157" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="158" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="159" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="160" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="161" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="162" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="163" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="164" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="165" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="166" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="167" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="168" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="169" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="170" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="171" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="172" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="173" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="174" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="175" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="176" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="177" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="178" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="179" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="180" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="181" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="182" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="183" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="184" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="185" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="186" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="187" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="188" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="189" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="190" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="191" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="192" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="193" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="194" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="195" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="196" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="197" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="198" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="199" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="200" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="201" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="202" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="203" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="204" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="205" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="206" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="207" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="208" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="209" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="210" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="211" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="212" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="213" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="214" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="215" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="216" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="217" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="218" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="219" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="220" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="221" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="222" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="223" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="224" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="225" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="226" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="227" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="228" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="229" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="230" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="231" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="232" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="233" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="234" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="235" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="236" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="237" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="238" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="239" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="240" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="241" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="242" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="243" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="244" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="245" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="246" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="247" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="248" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="249" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="250" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="251" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="252" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="253" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="254" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="255" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="256" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="257" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="258" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="259" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="260" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="261" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="262" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="263" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="264" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="265" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="266" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="267" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="268" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="269" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="270" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="271" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="272" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="273" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="274" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="275" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="276" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="277" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="278" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="279" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="280" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="281" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="282" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="283" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="284" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="285" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="286" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="287" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="288" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="289" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="290" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="291" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="292" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="293" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="294" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="295" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="296" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="297" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="298" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="299" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="300" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="301" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="302" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="303" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="304" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="305" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="306" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="307" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="308" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="309" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="310" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="311" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="312" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="313" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="314" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="315" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="316" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="317" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="318" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="319" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="320" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="321" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="322" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="323" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="324" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="325" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="326" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="327" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="328" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="329" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="330" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="331" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="332" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="333" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="334" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="335" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="336" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="337" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="338" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="339" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="340" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="341" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="342" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="343" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="344" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="345" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="346" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="347" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="348" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="349" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="350" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="351" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="352" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="353" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="354" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="355" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="356" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="357" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="358" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="359" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="360" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="361" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="362" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="363" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="364" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="365" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="366" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="367" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="368" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="369" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="370" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="371" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="372" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="373" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="374" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="375" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="376" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="377" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="378" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="379" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="380" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="381" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="382" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="383" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="384" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="385" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="386" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="387" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="388" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="389" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="390" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="391" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="392" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="393" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="394" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="395" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="396" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="397" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="398" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="399" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="400" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="401" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="402" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="403" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="404" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="405" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="406" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="407" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="408" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="409" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="410" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="411" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="412" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="413" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="414" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="415" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="416" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="417" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="418" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="419" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="420" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="421" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="422" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="423" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="424" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="425" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="426" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="427" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="428" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="429" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="430" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="431" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="432" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="433" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="434" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="435" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="436" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="437" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="438" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="439" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="440" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="441" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="442" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="443" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="444" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="445" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="446" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="447" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="448" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="449" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="450" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="451" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="452" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="453" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="454" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="455" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="456" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="457" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="458" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="459" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="460" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="461" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="462" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="463" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="464" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="465" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="466" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="467" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="468" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="469" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="470" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="471" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="472" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="473" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="474" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="475" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="476" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="477" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="478" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="479" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="480" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="481" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="482" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="483" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="484" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="485" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="486" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="487" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="488" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="489" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="490" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="491" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="492" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="493" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="494" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="495" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="496" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="497" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="498" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="499" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="500" extrapolations="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder_expected.xsil b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder_expected.xsil
new file mode 100644
index 0000000..938ef2c
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_4thOrder_expected.xsil
@@ -0,0 +1,8584 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <name>exponential_scaling_4thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 4th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="exponential_scaling_4thOrder_expected.xsil" name="exponential_scaling_4thOrder.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="6">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="7">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="8">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="9">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="10">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="11">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="12">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="13">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="14">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="15">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="16">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="17">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="18">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="19">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="20">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="21">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="22">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="23">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="24">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="25">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="26">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="27">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="28">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="29">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="30">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="31">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="32">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="33">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="34">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="35">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="36">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="37">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="38">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="39">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="40">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="41">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="42">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="43">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="44">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="45">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="46">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="47">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="48">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="49">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="50">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="51">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="52">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="53">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="54">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="55">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="56">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="57">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="58">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="59">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="60">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="61">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="62">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="63">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="64">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="65">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="66">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="67">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="68">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="69">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="70">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="71">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="72">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="73">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="74">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="75">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="76">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="77">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="78">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="79">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="80">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="81">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="82">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="83">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="84">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="85">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="86">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="87">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="88">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="89">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="90">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="91">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="92">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="93">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="94">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="95">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="96">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="97">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="98">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="99">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="100">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="101">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="102">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="103">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="104">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="105">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="106">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="107">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="108">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="109">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="110">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="111">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="112">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="113">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="114">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="115">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="116">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="117">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="118">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="119">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="120">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="121">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="122">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="123">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="124">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="125">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="126">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="127">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="128">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="129">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="130">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="131">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="132">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="133">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="134">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="135">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="136">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="137">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="138">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="139">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="140">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="141">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="142">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="143">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="144">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="145">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="146">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="147">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="148">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="149">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="150">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="151">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="152">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="153">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="154">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="155">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="156">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="157">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="158">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="159">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="160">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="161">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="162">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="163">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="164">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="165">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="166">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="167">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="168">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="169">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="170">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="171">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="172">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="173">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="174">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="175">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="176">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="177">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="178">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="179">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="180">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="181">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="182">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="183">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="184">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="185">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="186">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="187">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="188">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="189">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="190">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="191">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="192">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="193">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="194">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="195">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="196">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="197">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="198">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="199">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="200">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="201">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="202">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="203">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="204">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="205">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="206">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="207">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="208">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="209">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="210">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="211">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="212">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="213">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="214">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="215">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="216">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="217">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="218">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="219">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="220">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="221">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="222">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="223">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="224">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="225">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="226">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="227">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="228">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="229">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="230">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="231">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="232">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="233">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="234">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="235">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="236">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="237">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="238">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="239">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="240">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="241">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="242">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="243">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="244">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="245">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="246">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="247">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="248">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="249">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="250">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="251">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="252">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="253">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="254">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="255">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="256">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="257">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="258">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="259">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="260">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="261">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="262">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="263">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="264">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="265">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="266">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="267">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="268">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="269">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="270">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="271">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="272">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="273">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="274">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="275">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="276">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="277">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="278">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="279">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="280">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="281">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="282">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="283">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="284">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="285">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="286">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="287">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="288">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="289">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="290">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="291">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="292">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="293">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="294">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="295">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="296">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="297">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="298">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="299">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="300">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="301">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="302">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="303">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="304">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="305">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="306">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="307">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="308">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="309">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="310">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="311">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="312">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="313">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="314">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="315">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="316">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="317">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="318">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="319">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="320">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="321">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="322">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="323">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="324">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="325">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="326">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="327">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="328">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="329">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="330">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="331">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="332">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="333">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="334">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="335">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="336">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="337">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="338">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="339">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="340">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="341">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="342">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="343">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="344">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="345">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="346">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="347">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="348">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="349">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="350">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="351">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="352">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="353">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="354">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="355">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="356">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="357">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="358">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="359">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="360">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="361">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="362">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="363">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="364">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="365">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="366">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="367">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="368">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="369">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="370">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="371">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="372">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="373">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="374">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="375">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="376">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="377">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="378">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="379">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="380">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="381">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="382">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="383">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="384">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="385">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="386">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="387">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="388">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="389">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="390">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="391">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="392">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="393">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="394">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="395">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="396">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="397">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="398">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="399">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="400">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="401">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="402">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="403">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="404">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="405">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="406">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="407">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="408">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="409">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="410">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="411">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="412">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="413">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="414">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="415">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="416">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="417">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="418">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="419">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="420">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="421">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="422">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="423">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="424">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="425">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="426">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="427">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="428">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="429">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="430">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="431">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="432">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="433">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="434">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="435">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="436">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="437">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="438">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="439">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="440">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="441">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="442">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="443">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="444">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="445">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="446">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="447">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="448">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="449">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="450">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="451">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="452">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="453">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="454">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="455">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="456">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="457">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="458">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="459">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="460">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="461">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="462">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="463">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="464">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="465">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="466">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="467">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="468">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="469">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="470">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="471">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="472">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="473">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="474">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="475">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="476">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="477">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="478">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="479">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="480">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="481">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="482">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="483">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="484">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="485">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="486">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="487">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="488">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="489">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="490">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="491">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="492">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="493">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="494">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="495">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="496">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="497">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="498">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="499">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="2" interval="5.0" steps="500">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">1</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+x stepsR err_yR 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>500</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+5.000000000000e+00 1.000000000000e+00 6.676211743591e+01
+1.000000000000e+01 2.000000000000e+00 1.924090705684e+01
+1.500000000000e+01 3.000000000000e+00 6.532447371415e+00
+2.000000000000e+01 4.000000000000e+00 2.694690551367e+00
+2.500000000000e+01 5.000000000000e+00 1.289515140466e+00
+3.000000000000e+01 6.000000000000e+00 6.885814458295e-01
+3.500000000000e+01 7.000000000000e+00 3.993597664375e-01
+4.000000000000e+01 8.000000000000e+00 2.469219068610e-01
+4.500000000000e+01 9.000000000000e+00 1.606290693866e-01
+5.000000000000e+01 1.000000000000e+01 1.088940149587e-01
+5.500000000000e+01 1.100000000000e+01 7.638351613576e-02
+6.000000000000e+01 1.200000000000e+01 5.513694080366e-02
+6.500000000000e+01 1.300000000000e+01 4.078359187812e-02
+7.000000000000e+01 1.400000000000e+01 3.080778232118e-02
+7.500000000000e+01 1.500000000000e+01 2.370190140780e-02
+8.000000000000e+01 1.600000000000e+01 1.853039043502e-02
+8.500000000000e+01 1.700000000000e+01 1.469473490042e-02
+9.000000000000e+01 1.800000000000e+01 1.180164117244e-02
+9.500000000000e+01 1.900000000000e+01 9.586453144607e-03
+1.000000000000e+02 2.000000000000e+01 7.867257485742e-03
+1.050000000000e+02 2.100000000000e+01 6.516607757590e-03
+1.100000000000e+02 2.200000000000e+01 5.443665407427e-03
+1.150000000000e+02 2.300000000000e+01 4.582664411259e-03
+1.200000000000e+02 2.400000000000e+01 3.885307483898e-03
+1.250000000000e+02 2.500000000000e+01 3.315660225923e-03
+1.300000000000e+02 2.600000000000e+01 2.846664056989e-03
+1.350000000000e+02 2.700000000000e+01 2.457717389234e-03
+1.400000000000e+02 2.800000000000e+01 2.132973580075e-03
+1.450000000000e+02 2.900000000000e+01 1.860127292389e-03
+1.500000000000e+02 3.000000000000e+01 1.629538415585e-03
+1.550000000000e+02 3.100000000000e+01 1.433592400019e-03
+1.600000000000e+02 3.200000000000e+01 1.266228206049e-03
+1.650000000000e+02 3.300000000000e+01 1.122586469222e-03
+1.700000000000e+02 3.400000000000e+01 9.987448084985e-04
+1.750000000000e+02 3.500000000000e+01 8.915169477177e-04
+1.800000000000e+02 3.600000000000e+01 7.982990071298e-04
+1.850000000000e+02 3.700000000000e+01 7.169509747769e-04
+1.900000000000e+02 3.800000000000e+01 6.457046358435e-04
+1.950000000000e+02 3.900000000000e+01 5.830915562797e-04
+2.000000000000e+02 4.000000000000e+01 5.278863853846e-04
+2.050000000000e+02 4.100000000000e+01 4.790619415189e-04
+2.100000000000e+02 4.200000000000e+01 4.357534202484e-04
+2.150000000000e+02 4.300000000000e+01 3.972297123767e-04
+2.200000000000e+02 4.400000000000e+01 3.628702976641e-04
+2.250000000000e+02 4.500000000000e+01 3.321465356692e-04
+2.300000000000e+02 4.600000000000e+01 3.046064438479e-04
+2.350000000000e+02 4.700000000000e+01 2.798622503235e-04
+2.400000000000e+02 4.800000000000e+01 2.575801818523e-04
+2.450000000000e+02 4.900000000000e+01 2.374720356784e-04
+2.500000000000e+02 5.000000000000e+01 2.192882091663e-04
+2.550000000000e+02 5.100000000000e+01 2.028119003512e-04
+2.600000000000e+02 5.200000000000e+01 1.878542755094e-04
+2.650000000000e+02 5.300000000000e+01 1.742504194056e-04
+2.700000000000e+02 5.400000000000e+01 1.618559361418e-04
+2.750000000000e+02 5.500000000000e+01 1.505440814924e-04
+2.800000000000e+02 5.600000000000e+01 1.402033408056e-04
+2.850000000000e+02 5.700000000000e+01 1.307353714424e-04
+2.900000000000e+02 5.800000000000e+01 1.220532557227e-04
+2.950000000000e+02 5.900000000000e+01 1.140800090695e-04
+3.000000000000e+02 6.000000000000e+01 1.067473026524e-04
+3.050000000000e+02 6.100000000000e+01 9.999436861108e-05
+3.100000000000e+02 6.200000000000e+01 9.376706120179e-05
+3.150000000000e+02 6.300000000000e+01 8.801704160533e-05
+3.200000000000e+02 6.400000000000e+01 8.270108003217e-05
+3.250000000000e+02 6.500000000000e+01 7.778044516726e-05
+3.300000000000e+02 6.600000000000e+01 7.322037814106e-05
+3.350000000000e+02 6.700000000000e+01 6.898963556523e-05
+3.400000000000e+02 6.800000000000e+01 6.506008486440e-05
+3.450000000000e+02 6.900000000000e+01 6.140635912288e-05
+3.500000000000e+02 7.000000000000e+01 5.800554941970e-05
+3.550000000000e+02 7.100000000000e+01 5.483693476549e-05
+3.600000000000e+02 7.200000000000e+01 5.188174969817e-05
+3.650000000000e+02 7.300000000000e+01 4.912297325177e-05
+3.700000000000e+02 7.400000000000e+01 4.654514756908e-05
+3.750000000000e+02 7.500000000000e+01 4.413421513050e-05
+3.800000000000e+02 7.600000000000e+01 4.187737755501e-05
+3.850000000000e+02 7.700000000000e+01 3.976296574137e-05
+3.900000000000e+02 7.800000000000e+01 3.778032825608e-05
+3.950000000000e+02 7.900000000000e+01 3.591973288053e-05
+4.000000000000e+02 8.000000000000e+01 3.417227438263e-05
+4.050000000000e+02 8.100000000000e+01 3.252979797708e-05
+4.100000000000e+02 8.200000000000e+01 3.098482446262e-05
+4.150000000000e+02 8.300000000000e+01 2.953049076382e-05
+4.200000000000e+02 8.400000000000e+01 2.816049050125e-05
+4.250000000000e+02 8.500000000000e+01 2.686902195137e-05
+4.300000000000e+02 8.600000000000e+01 2.565074524341e-05
+4.350000000000e+02 8.700000000000e+01 2.450073850468e-05
+4.400000000000e+02 8.800000000000e+01 2.341446278820e-05
+4.450000000000e+02 8.900000000000e+01 2.238772526653e-05
+4.500000000000e+02 9.000000000000e+01 2.141665339650e-05
+4.550000000000e+02 9.100000000000e+01 2.049766533219e-05
+4.600000000000e+02 9.200000000000e+01 1.962744332218e-05
+4.650000000000e+02 9.300000000000e+01 1.880291534917e-05
+4.700000000000e+02 9.400000000000e+01 1.802123250627e-05
+4.750000000000e+02 9.500000000000e+01 1.727975049448e-05
+4.800000000000e+02 9.600000000000e+01 1.657601376337e-05
+4.850000000000e+02 9.700000000000e+01 1.590773968019e-05
+4.900000000000e+02 9.800000000000e+01 1.527280576852e-05
+4.950000000000e+02 9.900000000000e+01 1.466923586690e-05
+5.000000000000e+02 1.000000000000e+02 1.409518824858e-05
+5.050000000000e+02 1.010000000000e+02 1.354894772021e-05
+5.100000000000e+02 1.020000000000e+02 1.302891354271e-05
+5.150000000000e+02 1.030000000000e+02 1.253359124576e-05
+5.200000000000e+02 1.040000000000e+02 1.206158427181e-05
+5.250000000000e+02 1.050000000000e+02 1.161158917284e-05
+5.300000000000e+02 1.060000000000e+02 1.118238404274e-05
+5.350000000000e+02 1.070000000000e+02 1.077282837514e-05
+5.400000000000e+02 1.080000000000e+02 1.038185226321e-05
+5.450000000000e+02 1.090000000000e+02 1.000845259114e-05
+5.500000000000e+02 1.100000000000e+02 9.651690135115e-06
+5.550000000000e+02 1.110000000000e+02 9.310683395825e-06
+5.600000000000e+02 1.120000000000e+02 8.984604306761e-06
+5.650000000000e+02 1.130000000000e+02 8.672675988919e-06
+5.700000000000e+02 1.140000000000e+02 8.374168146474e-06
+5.750000000000e+02 1.150000000000e+02 8.088392604577e-06
+5.800000000000e+02 1.160000000000e+02 7.814704503062e-06
+5.850000000000e+02 1.170000000000e+02 7.552494253105e-06
+5.900000000000e+02 1.180000000000e+02 7.301190578346e-06
+5.950000000000e+02 1.190000000000e+02 7.060252841029e-06
+6.000000000000e+02 1.200000000000e+02 6.829171780964e-06
+6.050000000000e+02 1.210000000000e+02 6.607467639697e-06
+6.100000000000e+02 1.220000000000e+02 6.394688085720e-06
+6.150000000000e+02 1.230000000000e+02 6.190404633344e-06
+6.200000000000e+02 1.240000000000e+02 5.994213722715e-06
+6.250000000000e+02 1.250000000000e+02 5.805734161868e-06
+6.300000000000e+02 1.260000000000e+02 5.624604398236e-06
+6.350000000000e+02 1.270000000000e+02 5.450483399727e-06
+6.400000000000e+02 1.280000000000e+02 5.283049148375e-06
+6.450000000000e+02 1.290000000000e+02 5.121994064439e-06
+6.500000000000e+02 1.300000000000e+02 4.967030150738e-06
+6.550000000000e+02 1.310000000000e+02 4.817882626185e-06
+6.600000000000e+02 1.320000000000e+02 4.674290806861e-06
+6.650000000000e+02 1.330000000000e+02 4.536009356571e-06
+6.700000000000e+02 1.340000000000e+02 4.402803767789e-06
+6.750000000000e+02 1.350000000000e+02 4.274451868014e-06
+6.800000000000e+02 1.360000000000e+02 4.150743592390e-06
+6.850000000000e+02 1.370000000000e+02 4.031478226807e-06
+6.900000000000e+02 1.380000000000e+02 3.916465857401e-06
+6.950000000000e+02 1.390000000000e+02 3.805525579992e-06
+7.000000000000e+02 1.400000000000e+02 3.698485897985e-06
+7.050000000000e+02 1.410000000000e+02 3.595183443394e-06
+7.100000000000e+02 1.420000000000e+02 3.495462664205e-06
+7.150000000000e+02 1.430000000000e+02 3.399175369623e-06
+7.200000000000e+02 1.440000000000e+02 3.306180616391e-06
+7.250000000000e+02 1.450000000000e+02 3.216344936163e-06
+7.300000000000e+02 1.460000000000e+02 3.129539265956e-06
+7.350000000000e+02 1.470000000000e+02 3.045642472443e-06
+7.399999999999e+02 1.480000000000e+02 2.964538225569e-06
+7.450000000000e+02 1.490000000000e+02 2.886116362788e-06
+7.499999999999e+02 1.500000000000e+02 2.810270046893e-06
+7.549999999999e+02 1.510000000000e+02 2.736898807143e-06
+7.599999999999e+02 1.520000000000e+02 2.665906976063e-06
+7.649999999999e+02 1.530000000000e+02 2.597201699928e-06
+7.699999999999e+02 1.540000000000e+02 2.530695695668e-06
+7.749999999999e+02 1.550000000000e+02 2.466305062399e-06
+7.799999999999e+02 1.560000000000e+02 2.403949082463e-06
+7.849999999999e+02 1.570000000000e+02 2.343551983586e-06
+7.900000000000e+02 1.580000000000e+02 2.285038732452e-06
+7.950000000000e+02 1.590000000000e+02 2.228341173804e-06
+8.000000000000e+02 1.600000000000e+02 2.173390925009e-06
+8.050000000000e+02 1.610000000000e+02 2.120124293015e-06
+8.100000000000e+02 1.620000000000e+02 2.068479091122e-06
+8.150000000000e+02 1.630000000000e+02 2.018397509573e-06
+8.200000000000e+02 1.640000000000e+02 1.969821852299e-06
+8.249999999999e+02 1.650000000000e+02 1.922699340184e-06
+8.300000000000e+02 1.660000000000e+02 1.876977137272e-06
+8.349999999999e+02 1.670000000000e+02 1.832606187691e-06
+8.400000000000e+02 1.680000000000e+02 1.789538373487e-06
+8.450000000000e+02 1.690000000000e+02 1.747728475721e-06
+8.499999999999e+02 1.700000000000e+02 1.707133037598e-06
+8.550000000000e+02 1.710000000000e+02 1.667708602326e-06
+8.600000000000e+02 1.720000000000e+02 1.629415976367e-06
+8.650000000000e+02 1.730000000000e+02 1.592216449353e-06
+8.700000000000e+02 1.740000000000e+02 1.556072334097e-06
+8.750000000000e+02 1.750000000000e+02 1.520947449762e-06
+8.800000000000e+02 1.760000000000e+02 1.486808912432e-06
+8.850000000000e+02 1.770000000000e+02 1.453622502368e-06
+8.900000000000e+02 1.780000000000e+02 1.421356131459e-06
+8.950000000000e+02 1.790000000000e+02 1.389981349575e-06
+9.000000000000e+02 1.800000000000e+02 1.359466409667e-06
+9.050000000000e+02 1.810000000000e+02 1.329785703774e-06
+9.100000000000e+02 1.820000000000e+02 1.300909019619e-06
+9.150000000000e+02 1.830000000000e+02 1.272812966135e-06
+9.200000000000e+02 1.840000000000e+02 1.245471054290e-06
+9.250000000000e+02 1.850000000000e+02 1.218858983520e-06
+9.300000000000e+02 1.860000000000e+02 1.192954471207e-06
+9.350000000000e+02 1.870000000000e+02 1.167734211549e-06
+9.400000000000e+02 1.880000000000e+02 1.143176575624e-06
+9.450000000000e+02 1.890000000000e+02 1.119261867188e-06
+9.500000000000e+02 1.900000000000e+02 1.095968428899e-06
+9.550000000000e+02 1.910000000000e+02 1.073278355079e-06
+9.600000000000e+02 1.920000000000e+02 1.051172375810e-06
+9.650000000000e+02 1.930000000000e+02 1.029632784366e-06
+9.700000000000e+02 1.940000000000e+02 1.008642271927e-06
+9.750000000000e+02 1.950000000000e+02 9.881830465019e-07
+9.800000000000e+02 1.960000000000e+02 9.682407267064e-07
+9.850000000000e+02 1.970000000000e+02 9.487988279488e-07
+9.900000000000e+02 1.980000000000e+02 9.298421446147e-07
+9.950000000000e+02 1.990000000000e+02 9.113563237406e-07
+1.000000000000e+03 2.000000000000e+02 8.933283481838e-07
+1.005000000000e+03 2.010000000000e+02 8.757436944506e-07
+1.010000000000e+03 2.020000000000e+02 8.585891464463e-07
+1.015000000000e+03 2.030000000000e+02 8.418532502219e-07
+1.020000000000e+03 2.040000000000e+02 8.255225623088e-07
+1.025000000000e+03 2.050000000000e+02 8.095865382529e-07
+1.030000000000e+03 2.060000000000e+02 7.940330419842e-07
+1.035000000000e+03 2.070000000000e+02 7.788508753492e-07
+1.040000000000e+03 2.080000000000e+02 7.640301191714e-07
+1.045000000000e+03 2.090000000000e+02 7.495605132135e-07
+1.050000000000e+03 2.100000000000e+02 7.354312288044e-07
+1.055000000000e+03 2.110000000000e+02 7.216332562621e-07
+1.060000000000e+03 2.120000000000e+02 7.081578132784e-07
+1.065000000000e+03 2.130000000000e+02 6.949956627977e-07
+1.070000000000e+03 2.140000000000e+02 6.821376530297e-07
+1.075000000000e+03 2.150000000000e+02 6.695753711483e-07
+1.080000000000e+03 2.160000000000e+02 6.573011432920e-07
+1.085000000000e+03 2.170000000000e+02 6.453065566348e-07
+1.090000000000e+03 2.180000000000e+02 6.335842499539e-07
+1.095000000000e+03 2.190000000000e+02 6.221277146778e-07
+1.100000000000e+03 2.200000000000e+02 6.109285948241e-07
+1.105000000000e+03 2.210000000000e+02 5.999802112910e-07
+1.110000000000e+03 2.220000000000e+02 5.892761123505e-07
+1.115000000000e+03 2.230000000000e+02 5.788094483705e-07
+1.120000000000e+03 2.240000000000e+02 5.685743644790e-07
+1.125000000000e+03 2.250000000000e+02 5.585643236827e-07
+1.130000000000e+03 2.260000000000e+02 5.487736700616e-07
+1.135000000000e+03 2.270000000000e+02 5.391968613822e-07
+1.140000000000e+03 2.280000000000e+02 5.298278438204e-07
+1.145000000000e+03 2.290000000000e+02 5.206617004205e-07
+1.150000000000e+03 2.300000000000e+02 5.116922636716e-07
+1.155000000000e+03 2.310000000000e+02 5.029152418956e-07
+1.160000000000e+03 2.320000000000e+02 4.943260023538e-07
+1.165000000000e+03 2.330000000000e+02 4.859193722950e-07
+1.170000000000e+03 2.340000000000e+02 4.776904063419e-07
+1.175000000000e+03 2.350000000000e+02 4.696354380940e-07
+1.180000000000e+03 2.360000000000e+02 4.617487832093e-07
+1.185000000000e+03 2.370000000000e+02 4.540267468656e-07
+1.190000000000e+03 2.380000000000e+02 4.464661458314e-07
+1.195000000000e+03 2.390000000000e+02 4.390626315853e-07
+1.200000000000e+03 2.400000000000e+02 4.318114292801e-07
+1.205000000000e+03 2.410000000000e+02 4.247101230703e-07
+1.210000000000e+03 2.420000000000e+02 4.177528865057e-07
+1.215000000000e+03 2.430000000000e+02 4.109383837658e-07
+1.220000000000e+03 2.440000000000e+02 4.042615557864e-07
+1.225000000000e+03 2.450000000000e+02 3.977206688432e-07
+1.230000000000e+03 2.460000000000e+02 3.913106354503e-07
+1.235000000000e+03 2.470000000000e+02 3.850296366181e-07
+1.240000000000e+03 2.480000000000e+02 3.788743754285e-07
+1.245000000000e+03 2.490000000000e+02 3.728414981197e-07
+1.250000000000e+03 2.500000000000e+02 3.669283330510e-07
+1.255000000000e+03 2.510000000000e+02 3.611314411955e-07
+1.260000000000e+03 2.520000000000e+02 3.554488898772e-07
+1.265000000000e+03 2.530000000000e+02 3.498774390209e-07
+1.270000000000e+03 2.540000000000e+02 3.444147864684e-07
+1.275000000000e+03 2.550000000000e+02 3.390587721697e-07
+1.280000000000e+03 2.560000000000e+02 3.338060992064e-07
+1.285000000000e+03 2.570000000000e+02 3.286550338544e-07
+1.290000000000e+03 2.580000000000e+02 3.236023360387e-07
+1.295000000000e+03 2.590000000000e+02 3.186470678429e-07
+1.300000000000e+03 2.600000000000e+02 3.137859039271e-07
+1.305000000000e+03 2.610000000000e+02 3.090171958320e-07
+1.310000000000e+03 2.620000000000e+02 3.043389824597e-07
+1.315000000000e+03 2.630000000000e+02 2.997482511091e-07
+1.320000000000e+03 2.640000000000e+02 2.952440070203e-07
+1.325000000000e+03 2.650000000000e+02 2.908245733124e-07
+1.330000000000e+03 2.660000000000e+02 2.864867951757e-07
+1.335000000000e+03 2.670000000000e+02 2.822309568273e-07
+1.340000000000e+03 2.680000000000e+02 2.780520844681e-07
+1.345000000000e+03 2.690000000000e+02 2.739507749538e-07
+1.350000000000e+03 2.700000000000e+02 2.699253798255e-07
+1.355000000000e+03 2.710000000000e+02 2.659733411292e-07
+1.360000000000e+03 2.720000000000e+02 2.620937209485e-07
+1.365000000000e+03 2.730000000000e+02 2.582839897514e-07
+1.370000000000e+03 2.740000000000e+02 2.545441191160e-07
+1.375000000000e+03 2.750000000000e+02 2.508708121240e-07
+1.380000000000e+03 2.760000000000e+02 2.472638414019e-07
+1.385000000000e+03 2.770000000000e+02 2.437214732254e-07
+1.390000000000e+03 2.780000000000e+02 2.402417749181e-07
+1.395000000000e+03 2.790000000000e+02 2.368248885887e-07
+1.400000000000e+03 2.800000000000e+02 2.334680573313e-07
+1.405000000000e+03 2.810000000000e+02 2.301703148078e-07
+1.410000000000e+03 2.820000000000e+02 2.269308083669e-07
+1.415000000000e+03 2.830000000000e+02 2.237477758626e-07
+1.420000000000e+03 2.840000000000e+02 2.206205635957e-07
+1.425000000000e+03 2.850000000000e+02 2.175484326017e-07
+1.430000000000e+03 2.860000000000e+02 2.145281428056e-07
+1.435000000000e+03 2.870000000000e+02 2.115611437148e-07
+1.440000000000e+03 2.880000000000e+02 2.086455594963e-07
+1.445000000000e+03 2.890000000000e+02 2.057791732568e-07
+1.450000000000e+03 2.900000000000e+02 2.029624113220e-07
+1.455000000000e+03 2.910000000000e+02 2.001935399676e-07
+1.460000000000e+03 2.920000000000e+02 1.974719907594e-07
+1.465000000000e+03 2.930000000000e+02 1.947963994553e-07
+1.470000000000e+03 2.940000000000e+02 1.921653165482e-07
+1.475000000000e+03 2.950000000000e+02 1.895792252071e-07
+1.480000000000e+03 2.960000000000e+02 1.870368464552e-07
+1.485000000000e+03 2.970000000000e+02 1.845354233865e-07
+1.490000000000e+03 2.980000000000e+02 1.820768034122e-07
+1.495000000000e+03 2.990000000000e+02 1.796588264824e-07
+1.500000000000e+03 3.000000000000e+02 1.772807536327e-07
+1.505000000000e+03 3.010000000000e+02 1.749419880070e-07
+1.510000000000e+03 3.020000000000e+02 1.726414495806e-07
+1.515000000000e+03 3.030000000000e+02 1.703795362573e-07
+1.520000000000e+03 3.040000000000e+02 1.681535195530e-07
+1.525000000000e+03 3.050000000000e+02 1.659642805407e-07
+1.530000000000e+03 3.060000000000e+02 1.638100570744e-07
+1.535000000000e+03 3.070000000000e+02 1.616907070456e-07
+1.540000000000e+03 3.080000000000e+02 1.596061167675e-07
+1.545000000000e+03 3.090000000000e+02 1.575543819854e-07
+1.550000000000e+03 3.100000000000e+02 1.555357016514e-07
+1.555000000000e+03 3.110000000000e+02 1.535493652227e-07
+1.560000000000e+03 3.120000000000e+02 1.515944063613e-07
+1.565000000000e+03 3.130000000000e+02 1.496708819104e-07
+1.570000000000e+03 3.140000000000e+02 1.477777118453e-07
+1.575000000000e+03 3.150000000000e+02 1.459133898152e-07
+1.580000000000e+03 3.160000000000e+02 1.440795358576e-07
+1.585000000000e+03 3.170000000000e+02 1.422742457180e-07
+1.590000000000e+03 3.180000000000e+02 1.404962688412e-07
+1.595000000000e+03 3.190000000000e+02 1.387470831560e-07
+1.600000000000e+03 3.200000000000e+02 1.370247275645e-07
+1.605000000000e+03 3.210000000000e+02 1.353287473194e-07
+1.610000000000e+03 3.220000000000e+02 1.336590855772e-07
+1.615000000000e+03 3.230000000000e+02 1.320148896866e-07
+1.620000000000e+03 3.240000000000e+02 1.303955627918e-07
+1.625000000000e+03 3.250000000000e+02 1.288023838697e-07
+1.630000000000e+03 3.260000000000e+02 1.272329654967e-07
+1.635000000000e+03 3.270000000000e+02 1.256867676602e-07
+1.640000000000e+03 3.280000000000e+02 1.241645009031e-07
+1.645000000000e+03 3.290000000000e+02 1.226641188623e-07
+1.650000000000e+03 3.300000000000e+02 1.211878384311e-07
+1.655000000000e+03 3.310000000000e+02 1.197325616431e-07
+1.660000000000e+03 3.320000000000e+02 1.182998232707e-07
+1.665000000000e+03 3.330000000000e+02 1.168876622160e-07
+1.670000000000e+03 3.340000000000e+02 1.154969879735e-07
+1.675000000000e+03 3.350000000000e+02 1.141277152783e-07
+1.680000000000e+03 3.360000000000e+02 1.127768598508e-07
+1.685000000000e+03 3.370000000000e+02 1.114478038744e-07
+1.690000000000e+03 3.380000000000e+02 1.101370230572e-07
+1.695000000000e+03 3.390000000000e+02 1.088459669063e-07
+1.700000000000e+03 3.400000000000e+02 1.075739817225e-07
+1.705000000000e+03 3.410000000000e+02 1.063196464202e-07
+1.710000000000e+03 3.420000000000e+02 1.050839273375e-07
+1.715000000000e+03 3.430000000000e+02 1.038667960529e-07
+1.720000000000e+03 3.440000000000e+02 1.026663483117e-07
+1.725000000000e+03 3.450000000000e+02 1.014838915125e-07
+1.730000000000e+03 3.460000000000e+02 1.003180898351e-07
+1.735000000000e+03 3.470000000000e+02 9.916919907482e-08
+1.740000000000e+03 3.480000000000e+02 9.803568445932e-08
+1.745000000000e+03 3.490000000000e+02 9.691896707409e-08
+1.750000000000e+03 3.500000000000e+02 9.581970061845e-08
+1.755000000000e+03 3.510000000000e+02 9.473430395701e-08
+1.760000000000e+03 3.520000000000e+02 9.366362974106e-08
+1.765000000000e+03 3.530000000000e+02 9.260887168239e-08
+1.770000000000e+03 3.540000000000e+02 9.156977398561e-08
+1.775000000000e+03 3.550000000000e+02 9.054346605808e-08
+1.780000000000e+03 3.560000000000e+02 8.953216479313e-08
+1.784999999999e+03 3.570000000000e+02 8.853515964802e-08
+1.789999999999e+03 3.580000000000e+02 8.755225167079e-08
+1.794999999999e+03 3.590000000000e+02 8.658267347528e-08
+1.799999999999e+03 3.600000000000e+02 8.562679454371e-08
+1.804999999999e+03 3.610000000000e+02 8.468370538139e-08
+1.809999999999e+03 3.620000000000e+02 8.375374704883e-08
+1.815000000000e+03 3.630000000000e+02 8.283623742500e-08
+1.820000000000e+03 3.640000000000e+02 8.193106282306e-08
+1.825000000000e+03 3.650000000000e+02 8.103910431601e-08
+1.830000000000e+03 3.660000000000e+02 8.015842922759e-08
+1.835000000000e+03 3.670000000000e+02 7.928954914860e-08
+1.840000000000e+03 3.680000000000e+02 7.843360094739e-08
+1.845000000000e+03 3.690000000000e+02 7.758831088722e-08
+1.850000000000e+03 3.700000000000e+02 7.675447477595e-08
+1.855000000000e+03 3.710000000000e+02 7.593112627546e-08
+1.860000000000e+03 3.720000000000e+02 7.511897592849e-08
+1.865000000000e+03 3.730000000000e+02 7.431933113367e-08
+1.870000000000e+03 3.740000000000e+02 7.352883812928e-08
+1.875000000000e+03 3.750000000000e+02 7.274923063960e-08
+1.880000000000e+03 3.760000000000e+02 7.197925810942e-08
+1.885000000000e+03 3.770000000000e+02 7.121974476831e-08
+1.890000000000e+03 3.780000000000e+02 7.047103167679e-08
+1.895000000000e+03 3.790000000000e+02 6.973152721912e-08
+1.900000000000e+03 3.800000000000e+02 6.900228299855e-08
+1.905000000000e+03 3.810000000000e+02 6.828145160398e-08
+1.910000000000e+03 3.820000000000e+02 6.757065307283e-08
+1.915000000000e+03 3.830000000000e+02 6.686877895845e-08
+1.920000000000e+03 3.840000000000e+02 6.617639769502e-08
+1.925000000000e+03 3.850000000000e+02 6.549259978783e-08
+1.930000000000e+03 3.860000000000e+02 6.481798209279e-08
+1.935000000000e+03 3.870000000000e+02 6.415157827178e-08
+1.940000000000e+03 3.880000000000e+02 6.349486625368e-08
+1.945000000000e+03 3.890000000000e+02 6.284477649388e-08
+1.950000000000e+03 3.900000000000e+02 6.220372483767e-08
+1.955000000000e+03 3.910000000000e+02 6.157128495943e-08
+1.960000000000e+03 3.920000000000e+02 6.094677473811e-08
+1.965000000000e+03 3.930000000000e+02 6.032939836587e-08
+1.970000000000e+03 3.940000000000e+02 5.972049166303e-08
+1.975000000000e+03 3.950000000000e+02 5.911931566516e-08
+1.980000000000e+03 3.960000000000e+02 5.852601248080e-08
+1.985000000000e+03 3.970000000000e+02 5.793896207251e-08
+1.990000000000e+03 3.980000000000e+02 5.736001185142e-08
+1.995000000000e+03 3.990000000000e+02 5.678782599716e-08
+2.000000000000e+03 4.000000000000e+02 5.622300136565e-08
+2.005000000000e+03 4.010000000000e+02 5.566522531808e-08
+2.010000000000e+03 4.020000000000e+02 5.511424205906e-08
+2.015000000000e+03 4.030000000000e+02 5.456968210638e-08
+2.020000000000e+03 4.040000000000e+02 5.403248337643e-08
+2.025000000000e+03 4.050000000000e+02 5.350182163966e-08
+2.030000000000e+03 4.060000000000e+02 5.297772531776e-08
+2.035000000000e+03 4.070000000000e+02 5.246025125416e-08
+2.040000000000e+03 4.080000000000e+02 5.194826258048e-08
+2.045000000000e+03 4.090000000000e+02 5.144335091245e-08
+2.050000000000e+03 4.100000000000e+02 5.094400989947e-08
+2.055000000000e+03 4.110000000000e+02 5.045109219282e-08
+2.060000000000e+03 4.120000000000e+02 4.996348934583e-08
+2.065000000000e+03 4.130000000000e+02 4.948233822688e-08
+2.070000000000e+03 4.140000000000e+02 4.900655881102e-08
+2.075000000000e+03 4.150000000000e+02 4.853629320678e-08
+2.080000000000e+03 4.160000000000e+02 4.807259301742e-08
+2.085000000000e+03 4.170000000000e+02 4.761389504893e-08
+2.090000000000e+03 4.180000000000e+02 4.716034140984e-08
+2.095000000000e+03 4.190000000000e+02 4.671264264289e-08
+2.100000000000e+03 4.200000000000e+02 4.627014504877e-08
+2.105000000000e+03 4.210000000000e+02 4.583324653140e-08
+2.110000000000e+03 4.220000000000e+02 4.540117970464e-08
+2.115000000000e+03 4.230000000000e+02 4.497366035139e-08
+2.120000000000e+03 4.240000000000e+02 4.455097268874e-08
+2.125000000000e+03 4.250000000000e+02 4.413428200678e-08
+2.130000000000e+03 4.260000000000e+02 4.372151352072e-08
+2.135000000000e+03 4.270000000000e+02 4.331479885877e-08
+2.140000000000e+03 4.280000000000e+02 4.291175059734e-08
+2.145000000000e+03 4.290000000000e+02 4.251390350873e-08
+2.149999999999e+03 4.300000000000e+02 4.211977966406e-08
+2.154999999999e+03 4.310000000000e+02 4.173210754743e-08
+2.159999999999e+03 4.320000000000e+02 4.134611231166e-08
+2.164999999999e+03 4.330000000000e+02 4.096671091247e-08
+2.169999999999e+03 4.340000000000e+02 4.059165803483e-08
+2.174999999999e+03 4.350000000000e+02 4.021987365377e-08
+2.179999999999e+03 4.360000000000e+02 3.985314833699e-08
+2.184999999999e+03 4.370000000000e+02 3.949017468585e-08
+2.189999999999e+03 4.380000000000e+02 3.913089585694e-08
+2.194999999999e+03 4.390000000000e+02 3.877630661009e-08
+2.199999999999e+03 4.400000000000e+02 3.842558271572e-08
+2.204999999999e+03 4.410000000000e+02 3.807954840340e-08
+2.209999999999e+03 4.420000000000e+02 3.773561729759e-08
+2.214999999999e+03 4.430000000000e+02 3.739609155673e-08
+2.219999999999e+03 4.440000000000e+02 3.706159645844e-08
+2.224999999999e+03 4.450000000000e+02 3.673008563965e-08
+2.229999999999e+03 4.460000000000e+02 3.640161594376e-08
+2.234999999999e+03 4.470000000000e+02 3.607746634771e-08
+2.239999999999e+03 4.480000000000e+02 3.575749474294e-08
+2.244999999999e+03 4.490000000000e+02 3.543985371834e-08
+2.249999999999e+03 4.500000000000e+02 3.512602120281e-08
+2.254999999999e+03 4.510000000000e+02 3.481702037789e-08
+2.259999999999e+03 4.520000000000e+02 3.451006591604e-08
+2.264999999999e+03 4.530000000000e+02 3.420646521590e-08
+2.269999999999e+03 4.540000000000e+02 3.390655933799e-08
+2.274999999999e+03 4.550000000000e+02 3.361057565598e-08
+2.279999999999e+03 4.560000000000e+02 3.331766151859e-08
+2.284999999999e+03 4.570000000000e+02 3.302653794890e-08
+2.289999999999e+03 4.580000000000e+02 3.273953552707e-08
+2.294999999999e+03 4.590000000000e+02 3.245526158935e-08
+2.299999999999e+03 4.600000000000e+02 3.217408561795e-08
+2.304999999999e+03 4.610000000000e+02 3.189737185494e-08
+2.309999999999e+03 4.620000000000e+02 3.162278972013e-08
+2.314999999999e+03 4.630000000000e+02 3.135028237011e-08
+2.319999999999e+03 4.640000000000e+02 3.108124246864e-08
+2.324999999999e+03 4.650000000000e+02 3.081527211179e-08
+2.329999999999e+03 4.660000000000e+02 3.055239972127e-08
+2.334999999999e+03 4.670000000000e+02 3.029208528460e-08
+2.339999999999e+03 4.680000000000e+02 3.003415827152e-08
+2.344999999999e+03 4.690000000000e+02 2.977787971759e-08
+2.349999999999e+03 4.700000000000e+02 2.952711497528e-08
+2.354999999999e+03 4.710000000000e+02 2.927728814939e-08
+2.359999999999e+03 4.720000000000e+02 2.903013296418e-08
+2.364999999999e+03 4.730000000000e+02 2.878655891436e-08
+2.369999999999e+03 4.740000000000e+02 2.854355329873e-08
+2.374999999999e+03 4.750000000000e+02 2.830483936123e-08
+2.379999999999e+03 4.760000000000e+02 2.806820020851e-08
+2.384999999999e+03 4.770000000000e+02 2.783374952742e-08
+2.389999999999e+03 4.780000000000e+02 2.760199890872e-08
+2.394999999999e+03 4.790000000000e+02 2.737249360507e-08
+2.399999999999e+03 4.800000000000e+02 2.714480729082e-08
+2.404999999999e+03 4.810000000000e+02 2.692061684684e-08
+2.409999999999e+03 4.820000000000e+02 2.669790433174e-08
+2.414999999999e+03 4.830000000000e+02 2.647783503562e-08
+2.419999999999e+03 4.840000000000e+02 2.626035211506e-08
+2.424999999999e+03 4.850000000000e+02 2.604539872664e-08
+2.429999999999e+03 4.860000000000e+02 2.583092850728e-08
+2.434999999999e+03 4.870000000000e+02 2.561981204963e-08
+2.439999999999e+03 4.880000000000e+02 2.541088406360e-08
+2.444999999999e+03 4.890000000000e+02 2.520332031963e-08
+2.449999999999e+03 4.900000000000e+02 2.499888296370e-08
+2.454999999999e+03 4.910000000000e+02 2.479572458469e-08
+2.459999999999e+03 4.920000000000e+02 2.459540837663e-08
+2.464999999999e+03 4.930000000000e+02 2.439747959215e-08
+2.469999999999e+03 4.940000000000e+02 2.420028977212e-08
+2.474999999999e+03 4.950000000000e+02 2.400585685791e-08
+2.479999999999e+03 4.960000000000e+02 2.381278818575e-08
+2.484999999999e+03 4.970000000000e+02 2.362165218983e-08
+2.489999999999e+03 4.980000000000e+02 2.343409732930e-08
+2.494999999999e+03 4.990000000000e+02 2.324603087800e-08
+2.499999999999e+03 5.000000000000e+02 2.306148871867e-08
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder.xmds b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder.xmds
new file mode 100644
index 0000000..c6eab52
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder.xmds
@@ -0,0 +1,8064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <name>exponential_scaling_6thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 6th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file name="exponential_scaling_6thOrder.xsil" expected="exponential_scaling_6thOrder_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" interval="5.0" steps="1" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="2" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="3" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="4" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="5" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="6" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="7" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="8" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="9" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="10" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="11" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="12" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="13" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="14" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="15" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="16" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="17" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="18" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="19" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="20" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="21" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="22" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="23" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="24" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="25" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="26" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="27" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="28" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="29" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="30" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="31" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="32" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="33" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="34" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="35" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="36" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="37" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="38" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="39" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="40" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="41" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="42" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="43" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="44" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="45" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="46" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="47" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="48" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="49" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="50" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="51" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="52" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="53" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="54" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="55" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="56" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="57" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="58" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="59" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="60" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="61" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="62" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="63" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="64" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="65" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="66" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="67" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="68" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="69" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="70" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="71" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="72" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="73" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="74" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="75" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="76" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="77" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="78" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="79" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="80" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="81" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="82" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="83" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="84" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="85" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="86" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="87" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="88" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="89" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="90" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="91" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="92" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="93" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="94" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="95" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="96" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="97" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="98" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="99" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="100" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="101" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="102" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="103" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="104" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="105" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="106" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="107" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="108" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="109" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="110" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="111" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="112" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="113" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="114" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="115" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="116" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="117" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="118" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="119" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="120" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="121" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="122" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="123" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="124" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="125" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="126" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="127" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="128" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="129" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="130" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="131" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="132" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="133" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="134" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="135" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="136" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="137" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="138" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="139" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="140" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="141" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="142" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="143" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="144" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="145" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="146" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="147" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="148" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="149" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="150" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="151" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="152" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="153" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="154" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="155" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="156" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="157" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="158" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="159" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="160" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="161" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="162" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="163" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="164" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="165" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="166" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="167" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="168" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="169" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="170" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="171" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="172" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="173" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="174" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="175" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="176" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="177" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="178" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="179" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="180" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="181" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="182" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="183" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="184" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="185" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="186" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="187" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="188" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="189" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="190" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="191" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="192" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="193" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="194" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="195" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="196" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="197" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="198" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="199" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="200" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="201" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="202" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="203" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="204" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="205" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="206" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="207" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="208" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="209" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="210" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="211" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="212" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="213" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="214" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="215" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="216" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="217" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="218" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="219" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="220" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="221" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="222" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="223" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="224" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="225" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="226" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="227" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="228" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="229" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="230" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="231" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="232" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="233" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="234" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="235" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="236" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="237" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="238" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="239" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="240" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="241" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="242" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="243" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="244" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="245" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="246" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="247" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="248" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="249" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="250" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="251" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="252" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="253" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="254" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="255" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="256" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="257" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="258" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="259" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="260" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="261" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="262" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="263" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="264" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="265" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="266" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="267" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="268" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="269" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="270" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="271" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="272" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="273" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="274" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="275" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="276" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="277" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="278" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="279" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="280" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="281" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="282" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="283" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="284" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="285" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="286" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="287" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="288" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="289" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="290" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="291" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="292" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="293" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="294" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="295" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="296" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="297" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="298" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="299" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="300" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="301" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="302" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="303" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="304" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="305" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="306" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="307" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="308" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="309" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="310" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="311" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="312" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="313" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="314" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="315" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="316" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="317" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="318" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="319" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="320" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="321" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="322" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="323" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="324" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="325" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="326" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="327" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="328" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="329" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="330" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="331" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="332" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="333" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="334" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="335" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="336" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="337" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="338" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="339" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="340" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="341" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="342" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="343" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="344" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="345" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="346" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="347" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="348" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="349" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="350" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="351" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="352" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="353" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="354" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="355" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="356" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="357" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="358" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="359" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="360" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="361" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="362" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="363" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="364" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="365" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="366" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="367" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="368" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="369" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="370" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="371" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="372" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="373" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="374" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="375" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="376" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="377" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="378" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="379" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="380" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="381" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="382" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="383" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="384" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="385" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="386" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="387" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="388" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="389" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="390" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="391" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="392" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="393" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="394" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="395" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="396" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="397" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="398" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="399" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="400" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="401" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="402" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="403" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="404" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="405" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="406" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="407" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="408" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="409" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="410" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="411" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="412" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="413" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="414" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="415" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="416" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="417" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="418" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="419" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="420" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="421" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="422" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="423" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="424" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="425" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="426" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="427" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="428" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="429" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="430" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="431" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="432" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="433" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="434" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="435" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="436" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="437" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="438" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="439" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="440" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="441" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="442" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="443" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="444" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="445" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="446" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="447" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="448" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="449" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="450" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="451" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="452" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="453" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="454" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="455" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="456" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="457" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="458" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="459" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="460" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="461" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="462" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="463" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="464" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="465" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="466" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="467" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="468" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="469" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="470" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="471" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="472" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="473" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="474" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="475" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="476" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="477" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="478" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="479" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="480" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="481" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="482" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="483" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="484" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="485" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="486" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="487" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="488" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="489" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="490" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="491" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="492" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="493" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="494" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="495" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="496" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="497" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="498" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="499" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="500" extrapolations="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder_expected.xsil b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder_expected.xsil
new file mode 100644
index 0000000..2fceae9
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_6thOrder_expected.xsil
@@ -0,0 +1,8584 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <name>exponential_scaling_6thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 6th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="exponential_scaling_6thOrder_expected.xsil" name="exponential_scaling_6thOrder.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="6">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="7">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="8">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="9">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="10">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="11">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="12">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="13">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="14">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="15">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="16">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="17">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="18">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="19">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="20">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="21">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="22">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="23">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="24">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="25">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="26">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="27">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="28">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="29">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="30">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="31">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="32">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="33">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="34">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="35">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="36">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="37">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="38">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="39">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="40">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="41">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="42">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="43">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="44">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="45">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="46">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="47">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="48">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="49">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="50">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="51">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="52">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="53">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="54">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="55">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="56">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="57">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="58">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="59">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="60">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="61">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="62">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="63">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="64">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="65">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="66">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="67">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="68">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="69">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="70">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="71">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="72">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="73">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="74">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="75">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="76">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="77">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="78">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="79">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="80">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="81">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="82">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="83">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="84">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="85">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="86">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="87">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="88">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="89">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="90">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="91">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="92">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="93">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="94">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="95">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="96">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="97">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="98">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="99">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="100">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="101">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="102">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="103">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="104">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="105">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="106">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="107">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="108">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="109">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="110">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="111">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="112">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="113">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="114">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="115">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="116">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="117">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="118">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="119">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="120">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="121">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="122">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="123">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="124">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="125">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="126">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="127">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="128">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="129">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="130">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="131">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="132">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="133">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="134">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="135">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="136">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="137">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="138">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="139">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="140">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="141">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="142">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="143">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="144">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="145">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="146">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="147">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="148">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="149">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="150">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="151">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="152">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="153">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="154">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="155">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="156">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="157">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="158">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="159">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="160">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="161">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="162">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="163">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="164">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="165">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="166">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="167">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="168">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="169">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="170">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="171">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="172">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="173">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="174">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="175">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="176">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="177">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="178">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="179">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="180">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="181">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="182">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="183">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="184">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="185">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="186">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="187">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="188">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="189">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="190">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="191">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="192">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="193">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="194">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="195">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="196">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="197">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="198">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="199">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="200">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="201">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="202">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="203">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="204">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="205">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="206">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="207">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="208">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="209">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="210">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="211">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="212">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="213">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="214">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="215">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="216">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="217">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="218">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="219">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="220">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="221">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="222">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="223">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="224">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="225">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="226">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="227">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="228">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="229">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="230">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="231">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="232">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="233">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="234">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="235">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="236">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="237">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="238">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="239">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="240">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="241">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="242">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="243">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="244">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="245">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="246">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="247">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="248">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="249">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="250">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="251">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="252">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="253">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="254">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="255">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="256">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="257">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="258">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="259">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="260">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="261">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="262">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="263">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="264">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="265">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="266">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="267">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="268">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="269">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="270">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="271">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="272">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="273">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="274">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="275">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="276">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="277">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="278">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="279">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="280">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="281">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="282">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="283">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="284">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="285">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="286">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="287">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="288">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="289">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="290">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="291">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="292">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="293">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="294">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="295">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="296">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="297">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="298">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="299">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="300">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="301">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="302">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="303">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="304">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="305">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="306">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="307">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="308">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="309">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="310">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="311">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="312">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="313">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="314">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="315">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="316">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="317">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="318">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="319">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="320">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="321">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="322">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="323">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="324">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="325">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="326">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="327">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="328">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="329">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="330">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="331">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="332">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="333">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="334">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="335">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="336">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="337">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="338">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="339">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="340">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="341">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="342">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="343">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="344">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="345">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="346">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="347">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="348">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="349">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="350">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="351">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="352">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="353">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="354">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="355">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="356">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="357">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="358">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="359">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="360">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="361">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="362">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="363">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="364">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="365">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="366">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="367">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="368">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="369">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="370">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="371">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="372">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="373">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="374">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="375">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="376">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="377">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="378">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="379">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="380">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="381">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="382">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="383">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="384">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="385">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="386">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="387">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="388">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="389">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="390">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="391">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="392">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="393">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="394">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="395">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="396">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="397">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="398">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="399">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="400">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="401">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="402">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="403">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="404">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="405">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="406">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="407">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="408">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="409">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="410">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="411">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="412">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="413">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="414">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="415">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="416">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="417">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="418">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="419">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="420">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="421">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="422">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="423">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="424">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="425">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="426">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="427">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="428">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="429">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="430">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="431">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="432">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="433">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="434">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="435">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="436">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="437">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="438">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="439">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="440">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="441">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="442">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="443">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="444">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="445">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="446">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="447">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="448">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="449">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="450">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="451">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="452">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="453">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="454">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="455">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="456">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="457">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="458">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="459">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="460">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="461">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="462">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="463">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="464">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="465">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="466">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="467">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="468">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="469">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="470">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="471">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="472">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="473">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="474">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="475">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="476">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="477">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="478">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="479">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="480">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="481">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="482">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="483">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="484">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="485">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="486">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="487">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="488">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="489">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="490">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="491">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="492">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="493">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="494">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="495">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="496">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="497">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="498">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="499">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="3" interval="5.0" steps="500">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">1</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+x stepsR err_yR 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>500</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+5.000000000000e+00 1.000000000000e+00 2.625285817665e+01
+1.000000000000e+01 2.000000000000e+00 2.479519226901e+00
+1.500000000000e+01 3.000000000000e+00 3.996711452823e-01
+2.000000000000e+01 4.000000000000e+00 9.615304222032e-02
+2.500000000000e+01 5.000000000000e+00 3.017180420392e-02
+3.000000000000e+01 6.000000000000e+00 1.138615621915e-02
+3.500000000000e+01 7.000000000000e+00 4.916261240538e-03
+4.000000000000e+01 8.000000000000e+00 2.351393462135e-03
+4.500000000000e+01 9.000000000000e+00 1.218627802103e-03
+5.000000000000e+01 1.000000000000e+01 6.737048699108e-04
+5.500000000000e+01 1.100000000000e+01 3.927560884165e-04
+6.000000000000e+01 1.200000000000e+01 2.393612711273e-04
+6.500000000000e+01 1.300000000000e+01 1.514748560680e-04
+7.000000000000e+01 1.400000000000e+01 9.900946758989e-05
+7.500000000000e+01 1.500000000000e+01 6.655961161073e-05
+8.000000000000e+01 1.600000000000e+01 4.585997464801e-05
+8.500000000000e+01 1.700000000000e+01 3.229238612334e-05
+9.000000000000e+01 1.800000000000e+01 2.318299405601e-05
+9.500000000000e+01 1.900000000000e+01 1.693419082471e-05
+1.000000000000e+02 2.000000000000e+01 1.256428686247e-05
+1.050000000000e+02 2.100000000000e+01 9.454716945356e-06
+1.100000000000e+02 2.200000000000e+01 7.206794151671e-06
+1.150000000000e+02 2.300000000000e+01 5.558224046354e-06
+1.200000000000e+02 2.400000000000e+01 4.333188911687e-06
+1.250000000000e+02 2.500000000000e+01 3.411808364717e-06
+1.300000000000e+02 2.600000000000e+01 2.711049859272e-06
+1.350000000000e+02 2.700000000000e+01 2.172567178604e-06
+1.400000000000e+02 2.800000000000e+01 1.754808636178e-06
+1.450000000000e+02 2.900000000000e+01 1.427816101796e-06
+1.500000000000e+02 3.000000000000e+01 1.169739903162e-06
+1.550000000000e+02 3.100000000000e+01 9.644718659274e-07
+1.600000000000e+02 3.200000000000e+01 8.000180002909e-07
+1.650000000000e+02 3.300000000000e+01 6.673637358290e-07
+1.700000000000e+02 3.400000000000e+01 5.596732250979e-07
+1.750000000000e+02 3.500000000000e+01 4.717180672742e-07
+1.800000000000e+02 3.600000000000e+01 3.994730093382e-07
+1.850000000000e+02 3.700000000000e+01 3.398116916742e-07
+1.900000000000e+02 3.800000000000e+01 2.902903304403e-07
+1.950000000000e+02 3.900000000000e+01 2.489871917533e-07
+2.000000000000e+02 4.000000000000e+01 2.143789572528e-07
+2.050000000000e+02 4.100000000000e+01 1.852552884429e-07
+2.100000000000e+02 4.200000000000e+01 1.606436512702e-07
+2.150000000000e+02 4.300000000000e+01 1.397632161115e-07
+2.200000000000e+02 4.400000000000e+01 1.219816567755e-07
+2.250000000000e+02 4.500000000000e+01 1.067838013569e-07
+2.300000000000e+02 4.600000000000e+01 9.374983278576e-08
+2.350000000000e+02 4.700000000000e+01 8.253411465375e-08
+2.400000000000e+02 4.800000000000e+01 7.285379410860e-08
+2.450000000000e+02 4.900000000000e+01 6.447189093706e-08
+2.500000000000e+02 5.000000000000e+01 5.719428486373e-08
+2.550000000000e+02 5.100000000000e+01 5.085630050417e-08
+2.600000000000e+02 5.200000000000e+01 4.532356001619e-08
+2.650000000000e+02 5.300000000000e+01 4.048038704241e-08
+2.700000000000e+02 5.400000000000e+01 3.623009092735e-08
+2.750000000000e+02 5.500000000000e+01 3.249101609981e-08
+2.800000000000e+02 5.600000000000e+01 2.919506414401e-08
+2.850000000000e+02 5.700000000000e+01 2.628286210893e-08
+2.900000000000e+02 5.800000000000e+01 2.370327933932e-08
+2.950000000000e+02 5.900000000000e+01 2.141464960914e-08
+3.000000000000e+02 6.000000000000e+01 1.937920046657e-08
+3.050000000000e+02 6.100000000000e+01 1.756725964697e-08
+3.100000000000e+02 6.200000000000e+01 1.594830223439e-08
+3.150000000000e+02 6.300000000000e+01 1.450166564609e-08
+3.200000000000e+02 6.400000000000e+01 1.320560727436e-08
+3.250000000000e+02 6.500000000000e+01 1.204253408105e-08
+3.300000000000e+02 6.600000000000e+01 1.099772362068e-08
+3.350000000000e+02 6.700000000000e+01 1.005710714708e-08
+3.400000000000e+02 6.800000000000e+01 9.208889650836e-09
+3.450000000000e+02 6.900000000000e+01 8.442725629720e-09
+3.500000000000e+02 7.000000000000e+01 7.749520136713e-09
+3.550000000000e+02 7.100000000000e+01 7.122622491806e-09
+3.600000000000e+02 7.200000000000e+01 6.553534603881e-09
+3.650000000000e+02 7.300000000000e+01 6.037168986950e-09
+3.700000000000e+02 7.400000000000e+01 5.567613925450e-09
+3.750000000000e+02 7.500000000000e+01 5.139554559719e-09
+3.800000000000e+02 7.600000000000e+01 4.750631887873e-09
+3.850000000000e+02 7.700000000000e+01 4.394593133838e-09
+3.900000000000e+02 7.800000000000e+01 4.069448777955e-09
+3.950000000000e+02 7.900000000000e+01 3.771788215090e-09
+4.000000000000e+02 8.000000000000e+01 3.499593503875e-09
+4.050000000000e+02 8.100000000000e+01 3.249937208238e-09
+4.100000000000e+02 8.200000000000e+01 3.021114025614e-09
+4.150000000000e+02 8.300000000000e+01 2.810992327795e-09
+4.200000000000e+02 8.400000000000e+01 2.617241534608e-09
+4.250000000000e+02 8.500000000000e+01 2.438980573061e-09
+4.300000000000e+02 8.600000000000e+01 2.274845201100e-09
+4.350000000000e+02 8.700000000000e+01 2.123670128640e-09
+4.400000000000e+02 8.800000000000e+01 1.983977426789e-09
+4.450000000000e+02 8.900000000000e+01 1.854431275206e-09
+4.500000000000e+02 9.000000000000e+01 1.734917987051e-09
+4.550000000000e+02 9.100000000000e+01 1.624272272238e-09
+4.600000000000e+02 9.200000000000e+01 1.521698322904e-09
+4.650000000000e+02 9.300000000000e+01 1.426457174603e-09
+4.700000000000e+02 9.400000000000e+01 1.338548827334e-09
+4.750000000000e+02 9.500000000000e+01 1.256779569303e-09
+4.800000000000e+02 9.600000000000e+01 1.180239905807e-09
+4.850000000000e+02 9.700000000000e+01 1.110322500608e-09
+4.900000000000e+02 9.800000000000e+01 1.044014652507e-09
+4.950000000000e+02 9.900000000000e+01 9.825669167185e-10
+5.000000000000e+02 1.000000000000e+02 9.254961241822e-10
+5.050000000000e+02 1.010000000000e+02 8.712959242985e-10
+5.100000000000e+02 1.020000000000e+02 8.225242709159e-10
+5.150000000000e+02 1.030000000000e+02 7.762821496726e-10
+5.200000000000e+02 1.040000000000e+02 7.320863915083e-10
+5.250000000000e+02 1.050000000000e+02 6.918412509549e-10
+5.300000000000e+02 1.060000000000e+02 6.536708951899e-10
+5.350000000000e+02 1.070000000000e+02 6.178595413076e-10
+5.400000000000e+02 1.080000000000e+02 5.844924544363e-10
+5.450000000000e+02 1.090000000000e+02 5.524896096176e-10
+5.500000000000e+02 1.100000000000e+02 5.240394784778e-10
+5.550000000000e+02 1.110000000000e+02 4.967830591340e-10
+5.600000000000e+02 1.120000000000e+02 4.710898338089e-10
+5.650000000000e+02 1.130000000000e+02 4.466471636988e-10
+5.700000000000e+02 1.140000000000e+02 4.233982053847e-10
+5.750000000000e+02 1.150000000000e+02 4.015987542516e-10
+5.800000000000e+02 1.160000000000e+02 3.811635451711e-10
+5.850000000000e+02 1.170000000000e+02 3.628315425885e-10
+5.900000000000e+02 1.180000000000e+02 3.452385044511e-10
+5.950000000000e+02 1.190000000000e+02 3.274180926383e-10
+6.000000000000e+02 1.200000000000e+02 3.118429958704e-10
+6.050000000000e+02 1.210000000000e+02 2.965805379063e-10
+6.100000000000e+02 1.220000000000e+02 2.826539002854e-10
+6.150000000000e+02 1.230000000000e+02 2.696367573662e-10
+6.200000000000e+02 1.240000000000e+02 2.559943368396e-10
+6.250000000000e+02 1.250000000000e+02 2.439151103317e-10
+6.300000000000e+02 1.260000000000e+02 2.323190528841e-10
+6.350000000000e+02 1.270000000000e+02 2.214051164628e-10
+6.400000000000e+02 1.280000000000e+02 2.118270003848e-10
+6.450000000000e+02 1.290000000000e+02 2.029310053331e-10
+6.500000000000e+02 1.300000000000e+02 1.933244675456e-10
+6.550000000000e+02 1.310000000000e+02 1.846558461693e-10
+6.600000000000e+02 1.320000000000e+02 1.769819846231e-10
+6.650000000000e+02 1.330000000000e+02 1.686260020506e-10
+6.700000000000e+02 1.340000000000e+02 1.608384536667e-10
+6.750000000000e+02 1.350000000000e+02 1.539888216939e-10
+6.800000000000e+02 1.360000000000e+02 1.473665633966e-10
+6.850000000000e+02 1.370000000000e+02 1.414264261257e-10
+6.900000000000e+02 1.380000000000e+02 1.354010237264e-10
+6.950000000000e+02 1.390000000000e+02 1.293187779083e-10
+7.000000000000e+02 1.400000000000e+02 1.236912794411e-10
+7.050000000000e+02 1.410000000000e+02 1.192006493511e-10
+7.100000000000e+02 1.420000000000e+02 1.141415850725e-10
+7.150000000000e+02 1.430000000000e+02 1.097646418202e-10
+7.200000000000e+02 1.440000000000e+02 1.049613729265e-10
+7.250000000000e+02 1.450000000000e+02 1.007833816402e-10
+7.300000000000e+02 1.460000000000e+02 9.606537787477e-11
+7.350000000000e+02 1.470000000000e+02 9.242739906767e-11
+7.399999999999e+02 1.480000000000e+02 8.813572094368e-11
+7.450000000000e+02 1.490000000000e+02 8.566303222324e-11
+7.499999999999e+02 1.500000000000e+02 8.202505341615e-11
+7.549999999999e+02 1.510000000000e+02 7.881340025051e-11
+7.599999999999e+02 1.520000000000e+02 7.636913323950e-11
+7.649999999999e+02 1.530000000000e+02 7.290168468899e-11
+7.699999999999e+02 1.540000000000e+02 7.025846571196e-11
+7.749999999999e+02 1.550000000000e+02 6.758682502550e-11
+7.799999999999e+02 1.560000000000e+02 6.488676262961e-11
+7.849999999999e+02 1.570000000000e+02 6.301092980721e-11
+7.900000000000e+02 1.580000000000e+02 6.014033715473e-11
+7.950000000000e+02 1.590000000000e+02 5.701394911739e-11
+8.000000000000e+02 1.600000000000e+02 5.539391167986e-11
+8.050000000000e+02 1.610000000000e+02 5.402966962720e-11
+8.100000000000e+02 1.620000000000e+02 5.175593287277e-11
+8.150000000000e+02 1.630000000000e+02 5.022116056352e-11
+8.200000000000e+02 1.640000000000e+02 4.851585799770e-11
+8.249999999999e+02 1.650000000000e+02 4.592948243953e-11
+8.300000000000e+02 1.660000000000e+02 4.470734893403e-11
+8.349999999999e+02 1.670000000000e+02 4.365574568510e-11
+8.400000000000e+02 1.680000000000e+02 4.220623850415e-11
+8.450000000000e+02 1.690000000000e+02 4.024514055345e-11
+8.499999999999e+02 1.700000000000e+02 3.851141627820e-11
+8.550000000000e+02 1.710000000000e+02 3.720401764440e-11
+8.600000000000e+02 1.720000000000e+02 3.578293217288e-11
+8.650000000000e+02 1.730000000000e+02 3.461764208623e-11
+8.700000000000e+02 1.740000000000e+02 3.498712430883e-11
+8.750000000000e+02 1.750000000000e+02 3.277023097326e-11
+8.800000000000e+02 1.760000000000e+02 3.205968823750e-11
+8.850000000000e+02 1.770000000000e+02 3.075228960370e-11
+8.900000000000e+02 1.780000000000e+02 2.967226464534e-11
+8.950000000000e+02 1.790000000000e+02 2.864908310585e-11
+9.000000000000e+02 1.800000000000e+02 2.745537130977e-11
+9.050000000000e+02 1.810000000000e+02 2.688693712116e-11
+9.100000000000e+02 1.820000000000e+02 2.566480361565e-11
+9.150000000000e+02 1.830000000000e+02 2.495426087989e-11
+9.200000000000e+02 1.840000000000e+02 2.395950104983e-11
+9.250000000000e+02 1.850000000000e+02 2.319211489521e-11
+9.300000000000e+02 1.860000000000e+02 2.253841557831e-11
+9.350000000000e+02 1.870000000000e+02 2.231104190287e-11
+9.400000000000e+02 1.880000000000e+02 2.066258275590e-11
+9.450000000000e+02 1.890000000000e+02 2.032152224274e-11
+9.500000000000e+02 1.900000000000e+02 2.054889591818e-11
+9.550000000000e+02 1.910000000000e+02 1.983835318242e-11
+9.600000000000e+02 1.920000000000e+02 1.938360583154e-11
+9.650000000000e+02 1.930000000000e+02 1.881517164293e-11
+9.700000000000e+02 1.940000000000e+02 1.821831574489e-11
+9.750000000000e+02 1.950000000000e+02 1.784883352229e-11
+9.800000000000e+02 1.960000000000e+02 1.622879608476e-11
+9.850000000000e+02 1.970000000000e+02 1.543298822071e-11
+9.900000000000e+02 1.980000000000e+02 1.614353095647e-11
+9.950000000000e+02 1.990000000000e+02 1.580247044330e-11
+1.000000000000e+03 2.000000000000e+02 1.480771061324e-11
+1.005000000000e+03 2.010000000000e+02 1.389821591147e-11
+1.010000000000e+03 2.020000000000e+02 1.392663762090e-11
+1.015000000000e+03 2.030000000000e+02 1.290345608140e-11
+1.020000000000e+03 2.040000000000e+02 1.267608240596e-11
+1.025000000000e+03 2.050000000000e+02 1.242028702109e-11
+1.030000000000e+03 2.060000000000e+02 1.293187779083e-11
+1.035000000000e+03 2.070000000000e+02 1.170974428533e-11
+1.040000000000e+03 2.080000000000e+02 1.145394890045e-11
+1.045000000000e+03 2.090000000000e+02 1.119815351558e-11
+1.050000000000e+03 2.100000000000e+02 1.114131009672e-11
+1.055000000000e+03 2.110000000000e+02 1.105604496843e-11
+1.060000000000e+03 2.120000000000e+02 1.037392394210e-11
+1.065000000000e+03 2.130000000000e+02 9.805489753489e-12
+1.070000000000e+03 2.140000000000e+02 8.952838470577e-12
+1.075000000000e+03 2.150000000000e+02 9.549694368616e-12
+1.080000000000e+03 2.160000000000e+02 8.753886504564e-12
+1.085000000000e+03 2.170000000000e+02 8.583356247982e-12
+1.090000000000e+03 2.180000000000e+02 8.100187187665e-12
+1.095000000000e+03 2.190000000000e+02 8.725464795134e-12
+1.100000000000e+03 2.200000000000e+02 9.237055564881e-12
+1.105000000000e+03 2.210000000000e+02 8.270717444248e-12
+1.110000000000e+03 2.220000000000e+02 7.531752999057e-12
+1.115000000000e+03 2.230000000000e+02 7.020162229310e-12
+1.120000000000e+03 2.240000000000e+02 8.100187187665e-12
+1.125000000000e+03 2.250000000000e+02 6.451728040702e-12
+1.130000000000e+03 2.260000000000e+02 7.418066161335e-12
+1.135000000000e+03 2.270000000000e+02 7.077005648171e-12
+1.140000000000e+03 2.280000000000e+02 6.082245818106e-12
+1.145000000000e+03 2.290000000000e+02 6.508571459563e-12
+1.150000000000e+03 2.300000000000e+02 6.394884621841e-12
+1.155000000000e+03 2.310000000000e+02 5.741185304942e-12
+1.160000000000e+03 2.320000000000e+02 4.973799150321e-12
+1.165000000000e+03 2.330000000000e+02 7.105427357601e-12
+1.170000000000e+03 2.340000000000e+02 5.059064278612e-12
+1.175000000000e+03 2.350000000000e+02 6.536993168993e-12
+1.180000000000e+03 2.360000000000e+02 5.314859663486e-12
+1.185000000000e+03 2.370000000000e+02 5.343281372916e-12
+1.190000000000e+03 2.380000000000e+02 4.945377440890e-12
+1.195000000000e+03 2.390000000000e+02 5.655920176650e-12
+1.200000000000e+03 2.400000000000e+02 4.035882739117e-12
+1.205000000000e+03 2.410000000000e+02 4.860112312599e-12
+1.210000000000e+03 2.420000000000e+02 4.234834705130e-12
+1.215000000000e+03 2.430000000000e+02 3.694822225953e-12
+1.220000000000e+03 2.440000000000e+02 4.718003765447e-12
+1.225000000000e+03 2.450000000000e+02 4.206412995700e-12
+1.230000000000e+03 2.460000000000e+02 4.519051799434e-12
+1.235000000000e+03 2.470000000000e+02 4.888534022029e-12
+1.240000000000e+03 2.480000000000e+02 4.519051799434e-12
+1.245000000000e+03 2.490000000000e+02 4.376943252282e-12
+1.250000000000e+03 2.500000000000e+02 2.927436071332e-12
+1.255000000000e+03 2.510000000000e+02 1.932676241267e-12
+1.260000000000e+03 2.520000000000e+02 2.415845301584e-12
+1.265000000000e+03 2.530000000000e+02 3.154809746775e-12
+1.270000000000e+03 2.540000000000e+02 3.524291969370e-12
+1.275000000000e+03 2.550000000000e+02 3.836930773105e-12
+1.280000000000e+03 2.560000000000e+02 3.183231456205e-12
+1.285000000000e+03 2.570000000000e+02 3.637978807092e-12
+1.290000000000e+03 2.580000000000e+02 3.240074875066e-12
+1.295000000000e+03 2.590000000000e+02 3.353761712788e-12
+1.300000000000e+03 2.600000000000e+02 3.069544618484e-12
+1.305000000000e+03 2.610000000000e+02 2.870592652471e-12
+1.310000000000e+03 2.620000000000e+02 2.387423592154e-12
+1.315000000000e+03 2.630000000000e+02 1.932676241267e-12
+1.320000000000e+03 2.640000000000e+02 2.415845301584e-12
+1.325000000000e+03 2.650000000000e+02 2.160049916711e-12
+1.330000000000e+03 2.660000000000e+02 2.387423592154e-12
+1.335000000000e+03 2.670000000000e+02 2.700062395888e-12
+1.340000000000e+03 2.680000000000e+02 1.477928890381e-12
+1.345000000000e+03 2.690000000000e+02 2.927436071332e-12
+1.350000000000e+03 2.700000000000e+02 2.529532139306e-12
+1.355000000000e+03 2.710000000000e+02 2.899014361901e-12
+1.360000000000e+03 2.720000000000e+02 3.240074875066e-12
+1.365000000000e+03 2.730000000000e+02 2.330580173293e-12
+1.370000000000e+03 2.740000000000e+02 2.330580173293e-12
+1.375000000000e+03 2.750000000000e+02 2.643218977028e-12
+1.380000000000e+03 2.760000000000e+02 1.051603248925e-12
+1.385000000000e+03 2.770000000000e+02 2.359001882724e-12
+1.390000000000e+03 2.780000000000e+02 2.785327524180e-12
+1.395000000000e+03 2.790000000000e+02 2.472688720445e-12
+1.400000000000e+03 2.800000000000e+02 1.335820343229e-12
+1.405000000000e+03 2.810000000000e+02 2.017941369559e-12
+1.410000000000e+03 2.820000000000e+02 1.620037437533e-12
+1.415000000000e+03 2.830000000000e+02 2.756905814749e-12
+1.420000000000e+03 2.840000000000e+02 2.188471626141e-12
+1.425000000000e+03 2.850000000000e+02 2.359001882724e-12
+1.430000000000e+03 2.860000000000e+02 1.477928890381e-12
+1.435000000000e+03 2.870000000000e+02 6.821210263297e-13
+1.440000000000e+03 2.880000000000e+02 1.193711796077e-12
+1.445000000000e+03 2.890000000000e+02 2.017941369559e-12
+1.450000000000e+03 2.900000000000e+02 1.051603248925e-12
+1.455000000000e+03 2.910000000000e+02 1.563194018672e-12
+1.460000000000e+03 2.920000000000e+02 6.821210263297e-13
+1.465000000000e+03 2.930000000000e+02 1.165290086647e-12
+1.470000000000e+03 2.940000000000e+02 1.108446667786e-12
+1.475000000000e+03 2.950000000000e+02 2.046363078989e-12
+1.480000000000e+03 2.960000000000e+02 1.023181539495e-12
+1.485000000000e+03 2.970000000000e+02 2.017941369559e-12
+1.490000000000e+03 2.980000000000e+02 3.979039320257e-13
+1.495000000000e+03 2.990000000000e+02 1.250555214938e-12
+1.500000000000e+03 3.000000000000e+02 1.335820343229e-12
+1.505000000000e+03 3.010000000000e+02 5.968558980385e-13
+1.510000000000e+03 3.020000000000e+02 1.705302565824e-13
+1.515000000000e+03 3.030000000000e+02 2.103206497850e-12
+1.520000000000e+03 3.040000000000e+02 1.051603248925e-12
+1.525000000000e+03 3.050000000000e+02 2.557953848736e-13
+1.530000000000e+03 3.060000000000e+02 1.364242052659e-12
+1.535000000000e+03 3.070000000000e+02 7.958078640513e-13
+1.540000000000e+03 3.080000000000e+02 1.620037437533e-12
+1.545000000000e+03 3.090000000000e+02 1.222133505507e-12
+1.550000000000e+03 3.100000000000e+02 2.188471626141e-12
+1.555000000000e+03 3.110000000000e+02 -4.263256414561e-13
+1.560000000000e+03 3.120000000000e+02 9.947598300641e-13
+1.565000000000e+03 3.130000000000e+02 9.663381206337e-13
+1.570000000000e+03 3.140000000000e+02 1.193711796077e-12
+1.575000000000e+03 3.150000000000e+02 9.094947017729e-13
+1.580000000000e+03 3.160000000000e+02 5.115907697473e-13
+1.585000000000e+03 3.170000000000e+02 1.790567694115e-12
+1.590000000000e+03 3.180000000000e+02 1.222133505507e-12
+1.595000000000e+03 3.190000000000e+02 4.263256414561e-13
+1.600000000000e+03 3.200000000000e+02 9.379164112033e-13
+1.605000000000e+03 3.210000000000e+02 1.222133505507e-12
+1.610000000000e+03 3.220000000000e+02 -5.684341886081e-14
+1.615000000000e+03 3.230000000000e+02 -3.410605131648e-13
+1.620000000000e+03 3.240000000000e+02 1.875832822407e-12
+1.625000000000e+03 3.250000000000e+02 1.165290086647e-12
+1.630000000000e+03 3.260000000000e+02 8.526512829121e-14
+1.635000000000e+03 3.270000000000e+02 1.222133505507e-12
+1.640000000000e+03 3.280000000000e+02 1.989519660128e-13
+1.645000000000e+03 3.290000000000e+02 -6.252776074689e-13
+1.650000000000e+03 3.300000000000e+02 4.831690603169e-13
+1.655000000000e+03 3.310000000000e+02 6.536993168993e-13
+1.660000000000e+03 3.320000000000e+02 1.080024958355e-12
+1.665000000000e+03 3.330000000000e+02 5.115907697473e-13
+1.670000000000e+03 3.340000000000e+02 8.810729923425e-13
+1.675000000000e+03 3.350000000000e+02 -7.105427357601e-13
+1.680000000000e+03 3.360000000000e+02 1.477928890381e-12
+1.685000000000e+03 3.370000000000e+02 1.023181539495e-12
+1.690000000000e+03 3.380000000000e+02 1.705302565824e-13
+1.695000000000e+03 3.390000000000e+02 4.547473508865e-13
+1.700000000000e+03 3.400000000000e+02 3.979039320257e-13
+1.705000000000e+03 3.410000000000e+02 8.526512829121e-13
+1.710000000000e+03 3.420000000000e+02 7.105427357601e-13
+1.715000000000e+03 3.430000000000e+02 5.684341886081e-14
+1.720000000000e+03 3.440000000000e+02 7.389644451905e-13
+1.725000000000e+03 3.450000000000e+02 8.526512829121e-14
+1.730000000000e+03 3.460000000000e+02 8.810729923425e-13
+1.735000000000e+03 3.470000000000e+02 8.810729923425e-13
+1.740000000000e+03 3.480000000000e+02 -1.989519660128e-13
+1.745000000000e+03 3.490000000000e+02 1.989519660128e-13
+1.750000000000e+03 3.500000000000e+02 8.810729923425e-13
+1.755000000000e+03 3.510000000000e+02 1.421085471520e-13
+1.760000000000e+03 3.520000000000e+02 4.263256414561e-13
+1.765000000000e+03 3.530000000000e+02 7.958078640513e-13
+1.770000000000e+03 3.540000000000e+02 1.364242052659e-12
+1.775000000000e+03 3.550000000000e+02 1.222133505507e-12
+1.780000000000e+03 3.560000000000e+02 2.557953848736e-13
+1.784999999999e+03 3.570000000000e+02 0.000000000000e+00
+1.789999999999e+03 3.580000000000e+02 2.273736754432e-13
+1.794999999999e+03 3.590000000000e+02 -2.273736754432e-13
+1.799999999999e+03 3.600000000000e+02 1.563194018672e-12
+1.804999999999e+03 3.610000000000e+02 4.547473508865e-13
+1.809999999999e+03 3.620000000000e+02 1.222133505507e-12
+1.815000000000e+03 3.630000000000e+02 7.389644451905e-13
+1.820000000000e+03 3.640000000000e+02 -1.620037437533e-12
+1.825000000000e+03 3.650000000000e+02 6.821210263297e-13
+1.830000000000e+03 3.660000000000e+02 2.842170943040e-13
+1.835000000000e+03 3.670000000000e+02 -4.831690603169e-13
+1.840000000000e+03 3.680000000000e+02 6.821210263297e-13
+1.845000000000e+03 3.690000000000e+02 2.273736754432e-13
+1.850000000000e+03 3.700000000000e+02 1.136868377216e-13
+1.855000000000e+03 3.710000000000e+02 -2.557953848736e-13
+1.860000000000e+03 3.720000000000e+02 -1.563194018672e-12
+1.865000000000e+03 3.730000000000e+02 3.694822225953e-13
+1.870000000000e+03 3.740000000000e+02 -3.979039320257e-13
+1.875000000000e+03 3.750000000000e+02 6.536993168993e-13
+1.880000000000e+03 3.760000000000e+02 1.051603248925e-12
+1.885000000000e+03 3.770000000000e+02 5.684341886081e-14
+1.890000000000e+03 3.780000000000e+02 -5.400124791777e-13
+1.895000000000e+03 3.790000000000e+02 1.193711796077e-12
+1.900000000000e+03 3.800000000000e+02 0.000000000000e+00
+1.905000000000e+03 3.810000000000e+02 3.694822225953e-13
+1.910000000000e+03 3.820000000000e+02 2.557953848736e-13
+1.915000000000e+03 3.830000000000e+02 8.526512829121e-14
+1.920000000000e+03 3.840000000000e+02 4.263256414561e-13
+1.925000000000e+03 3.850000000000e+02 8.526512829121e-14
+1.930000000000e+03 3.860000000000e+02 2.557953848736e-13
+1.935000000000e+03 3.870000000000e+02 3.694822225953e-13
+1.940000000000e+03 3.880000000000e+02 1.989519660128e-13
+1.945000000000e+03 3.890000000000e+02 1.989519660128e-13
+1.950000000000e+03 3.900000000000e+02 -4.263256414561e-13
+1.955000000000e+03 3.910000000000e+02 1.051603248925e-12
+1.960000000000e+03 3.920000000000e+02 3.694822225953e-13
+1.965000000000e+03 3.930000000000e+02 5.400124791777e-13
+1.970000000000e+03 3.940000000000e+02 5.968558980385e-13
+1.975000000000e+03 3.950000000000e+02 -1.705302565824e-13
+1.980000000000e+03 3.960000000000e+02 -4.263256414561e-13
+1.985000000000e+03 3.970000000000e+02 9.947598300641e-13
+1.990000000000e+03 3.980000000000e+02 -5.115907697473e-13
+1.995000000000e+03 3.990000000000e+02 -2.842170943040e-14
+2.000000000000e+03 4.000000000000e+02 7.958078640513e-13
+2.005000000000e+03 4.010000000000e+02 -1.762145984685e-12
+2.010000000000e+03 4.020000000000e+02 -1.080024958355e-12
+2.015000000000e+03 4.030000000000e+02 1.449507180951e-12
+2.020000000000e+03 4.040000000000e+02 1.705302565824e-13
+2.025000000000e+03 4.050000000000e+02 -7.105427357601e-13
+2.030000000000e+03 4.060000000000e+02 5.684341886081e-13
+2.035000000000e+03 4.070000000000e+02 1.108446667786e-12
+2.040000000000e+03 4.080000000000e+02 2.273736754432e-13
+2.045000000000e+03 4.090000000000e+02 -1.165290086647e-12
+2.050000000000e+03 4.100000000000e+02 -5.684341886081e-14
+2.055000000000e+03 4.110000000000e+02 7.958078640513e-13
+2.060000000000e+03 4.120000000000e+02 9.663381206337e-13
+2.065000000000e+03 4.130000000000e+02 4.547473508865e-13
+2.070000000000e+03 4.140000000000e+02 2.842170943040e-14
+2.075000000000e+03 4.150000000000e+02 -1.648459146963e-12
+2.080000000000e+03 4.160000000000e+02 7.105427357601e-13
+2.085000000000e+03 4.170000000000e+02 5.115907697473e-13
+2.090000000000e+03 4.180000000000e+02 -2.842170943040e-13
+2.095000000000e+03 4.190000000000e+02 2.842170943040e-13
+2.100000000000e+03 4.200000000000e+02 3.979039320257e-13
+2.105000000000e+03 4.210000000000e+02 4.831690603169e-13
+2.110000000000e+03 4.220000000000e+02 2.842170943040e-13
+2.115000000000e+03 4.230000000000e+02 0.000000000000e+00
+2.120000000000e+03 4.240000000000e+02 2.842170943040e-13
+2.125000000000e+03 4.250000000000e+02 -1.335820343229e-12
+2.130000000000e+03 4.260000000000e+02 -9.947598300641e-13
+2.135000000000e+03 4.270000000000e+02 -1.648459146963e-12
+2.140000000000e+03 4.280000000000e+02 3.126388037344e-13
+2.145000000000e+03 4.290000000000e+02 1.222133505507e-12
+2.149999999999e+03 4.300000000000e+02 1.136868377216e-13
+2.154999999999e+03 4.310000000000e+02 9.947598300641e-13
+2.159999999999e+03 4.320000000000e+02 -4.831690603169e-13
+2.164999999999e+03 4.330000000000e+02 1.989519660128e-12
+2.169999999999e+03 4.340000000000e+02 -1.563194018672e-12
+2.174999999999e+03 4.350000000000e+02 -1.449507180951e-12
+2.179999999999e+03 4.360000000000e+02 -8.242295734817e-13
+2.184999999999e+03 4.370000000000e+02 4.263256414561e-13
+2.189999999999e+03 4.380000000000e+02 5.400124791777e-13
+2.194999999999e+03 4.390000000000e+02 1.136868377216e-12
+2.199999999999e+03 4.400000000000e+02 -8.810729923425e-13
+2.204999999999e+03 4.410000000000e+02 -3.410605131648e-13
+2.209999999999e+03 4.420000000000e+02 4.547473508865e-13
+2.214999999999e+03 4.430000000000e+02 1.392663762090e-12
+2.219999999999e+03 4.440000000000e+02 -2.842170943040e-13
+2.224999999999e+03 4.450000000000e+02 7.389644451905e-13
+2.229999999999e+03 4.460000000000e+02 3.410605131648e-13
+2.234999999999e+03 4.470000000000e+02 -5.684341886081e-13
+2.239999999999e+03 4.480000000000e+02 -2.273736754432e-13
+2.244999999999e+03 4.490000000000e+02 -7.673861546209e-13
+2.249999999999e+03 4.500000000000e+02 1.136868377216e-12
+2.254999999999e+03 4.510000000000e+02 7.389644451905e-13
+2.259999999999e+03 4.520000000000e+02 -6.252776074689e-13
+2.264999999999e+03 4.530000000000e+02 -7.673861546209e-13
+2.269999999999e+03 4.540000000000e+02 5.968558980385e-13
+2.274999999999e+03 4.550000000000e+02 8.810729923425e-13
+2.279999999999e+03 4.560000000000e+02 5.115907697473e-13
+2.284999999999e+03 4.570000000000e+02 -5.115907697473e-13
+2.289999999999e+03 4.580000000000e+02 3.126388037344e-13
+2.294999999999e+03 4.590000000000e+02 4.831690603169e-13
+2.299999999999e+03 4.600000000000e+02 7.105427357601e-13
+2.304999999999e+03 4.610000000000e+02 5.968558980385e-13
+2.309999999999e+03 4.620000000000e+02 -2.273736754432e-13
+2.314999999999e+03 4.630000000000e+02 -8.526512829121e-14
+2.319999999999e+03 4.640000000000e+02 4.263256414561e-13
+2.324999999999e+03 4.650000000000e+02 -4.263256414561e-13
+2.329999999999e+03 4.660000000000e+02 -2.842170943040e-13
+2.334999999999e+03 4.670000000000e+02 1.705302565824e-13
+2.339999999999e+03 4.680000000000e+02 2.273736754432e-13
+2.344999999999e+03 4.690000000000e+02 -2.842170943040e-14
+2.349999999999e+03 4.700000000000e+02 -5.115907697473e-13
+2.354999999999e+03 4.710000000000e+02 -2.557953848736e-13
+2.359999999999e+03 4.720000000000e+02 1.705302565824e-13
+2.364999999999e+03 4.730000000000e+02 -1.989519660128e-12
+2.369999999999e+03 4.740000000000e+02 5.684341886081e-13
+2.374999999999e+03 4.750000000000e+02 6.252776074689e-13
+2.379999999999e+03 4.760000000000e+02 1.620037437533e-12
+2.384999999999e+03 4.770000000000e+02 1.136868377216e-13
+2.389999999999e+03 4.780000000000e+02 -9.379164112033e-13
+2.394999999999e+03 4.790000000000e+02 -1.080024958355e-12
+2.399999999999e+03 4.800000000000e+02 9.379164112033e-13
+2.404999999999e+03 4.810000000000e+02 1.989519660128e-13
+2.409999999999e+03 4.820000000000e+02 -6.536993168993e-13
+2.414999999999e+03 4.830000000000e+02 -1.136868377216e-13
+2.419999999999e+03 4.840000000000e+02 1.136868377216e-13
+2.424999999999e+03 4.850000000000e+02 4.831690603169e-13
+2.429999999999e+03 4.860000000000e+02 3.410605131648e-13
+2.434999999999e+03 4.870000000000e+02 1.421085471520e-13
+2.439999999999e+03 4.880000000000e+02 -5.684341886081e-13
+2.444999999999e+03 4.890000000000e+02 -4.263256414561e-13
+2.449999999999e+03 4.900000000000e+02 -7.105427357601e-13
+2.454999999999e+03 4.910000000000e+02 1.421085471520e-13
+2.459999999999e+03 4.920000000000e+02 -1.733724275255e-12
+2.464999999999e+03 4.930000000000e+02 -8.526512829121e-14
+2.469999999999e+03 4.940000000000e+02 -3.694822225953e-13
+2.474999999999e+03 4.950000000000e+02 -1.335820343229e-12
+2.479999999999e+03 4.960000000000e+02 5.115907697473e-13
+2.484999999999e+03 4.970000000000e+02 1.961097950698e-12
+2.489999999999e+03 4.980000000000e+02 2.273736754432e-13
+2.494999999999e+03 4.990000000000e+02 -3.410605131648e-13
+2.499999999999e+03 5.000000000000e+02 1.904254531837e-12
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder.xmds b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder.xmds
new file mode 100644
index 0000000..15c6d6a
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder.xmds
@@ -0,0 +1,8064 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <name>exponential_scaling_8thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 8th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file name="exponential_scaling_8thOrder.xsil" expected="exponential_scaling_8thOrder_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" interval="5.0" steps="1" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="2" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="3" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="4" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="5" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="6" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="7" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="8" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="9" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="10" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="11" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="12" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="13" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="14" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="15" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="16" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="17" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="18" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="19" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="20" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="21" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="22" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="23" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="24" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="25" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="26" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="27" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="28" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="29" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="30" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="31" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="32" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="33" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="34" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="35" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="36" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="37" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="38" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="39" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="40" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="41" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="42" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="43" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="44" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="45" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="46" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="47" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="48" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="49" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="50" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="51" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="52" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="53" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="54" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="55" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="56" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="57" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="58" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="59" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="60" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="61" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="62" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="63" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="64" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="65" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="66" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="67" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="68" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="69" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="70" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="71" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="72" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="73" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="74" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="75" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="76" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="77" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="78" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="79" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="80" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="81" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="82" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="83" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="84" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="85" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="86" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="87" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="88" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="89" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="90" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="91" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="92" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="93" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="94" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="95" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="96" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="97" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="98" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="99" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="100" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="101" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="102" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="103" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="104" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="105" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="106" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="107" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="108" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="109" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="110" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="111" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="112" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="113" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="114" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="115" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="116" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="117" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="118" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="119" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="120" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="121" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="122" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="123" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="124" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="125" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="126" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="127" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="128" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="129" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="130" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="131" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="132" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="133" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="134" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="135" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="136" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="137" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="138" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="139" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="140" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="141" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="142" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="143" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="144" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="145" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="146" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="147" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="148" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="149" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="150" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="151" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="152" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="153" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="154" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="155" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="156" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="157" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="158" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="159" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="160" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="161" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="162" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="163" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="164" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="165" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="166" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="167" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="168" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="169" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="170" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="171" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="172" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="173" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="174" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="175" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="176" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="177" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="178" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="179" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="180" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="181" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="182" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="183" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="184" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="185" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="186" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="187" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="188" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="189" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="190" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="191" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="192" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="193" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="194" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="195" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="196" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="197" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="198" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="199" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="200" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="201" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="202" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="203" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="204" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="205" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="206" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="207" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="208" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="209" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="210" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="211" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="212" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="213" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="214" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="215" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="216" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="217" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="218" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="219" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="220" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="221" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="222" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="223" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="224" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="225" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="226" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="227" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="228" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="229" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="230" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="231" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="232" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="233" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="234" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="235" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="236" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="237" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="238" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="239" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="240" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="241" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="242" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="243" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="244" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="245" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="246" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="247" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="248" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="249" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="250" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="251" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="252" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="253" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="254" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="255" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="256" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="257" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="258" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="259" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="260" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="261" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="262" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="263" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="264" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="265" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="266" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="267" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="268" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="269" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="270" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="271" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="272" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="273" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="274" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="275" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="276" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="277" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="278" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="279" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="280" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="281" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="282" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="283" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="284" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="285" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="286" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="287" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="288" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="289" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="290" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="291" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="292" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="293" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="294" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="295" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="296" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="297" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="298" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="299" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="300" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="301" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="302" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="303" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="304" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="305" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="306" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="307" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="308" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="309" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="310" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="311" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="312" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="313" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="314" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="315" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="316" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="317" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="318" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="319" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="320" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="321" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="322" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="323" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="324" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="325" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="326" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="327" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="328" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="329" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="330" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="331" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="332" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="333" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="334" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="335" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="336" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="337" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="338" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="339" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="340" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="341" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="342" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="343" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="344" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="345" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="346" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="347" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="348" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="349" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="350" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="351" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="352" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="353" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="354" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="355" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="356" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="357" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="358" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="359" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="360" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="361" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="362" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="363" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="364" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="365" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="366" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="367" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="368" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="369" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="370" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="371" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="372" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="373" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="374" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="375" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="376" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="377" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="378" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="379" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="380" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="381" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="382" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="383" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="384" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="385" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="386" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="387" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="388" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="389" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="390" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="391" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="392" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="393" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="394" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="395" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="396" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="397" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="398" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="399" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="400" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="401" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="402" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="403" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="404" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="405" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="406" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="407" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="408" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="409" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="410" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="411" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="412" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="413" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="414" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="415" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="416" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="417" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="418" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="419" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="420" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="421" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="422" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="423" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="424" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="425" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="426" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="427" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="428" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="429" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="430" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="431" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="432" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="433" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="434" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="435" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="436" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="437" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="438" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="439" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="440" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="441" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="442" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="443" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="444" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="445" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="446" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="447" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="448" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="449" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="450" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="451" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="452" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="453" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="454" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="455" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="456" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="457" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="458" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="459" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="460" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="461" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="462" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="463" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="464" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="465" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="466" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="467" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="468" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="469" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="470" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="471" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="472" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="473" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="474" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="475" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="476" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="477" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="478" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="479" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="480" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="481" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="482" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="483" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="484" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="485" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="486" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="487" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="488" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="489" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="490" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="491" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="492" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="493" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="494" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="495" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="496" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="497" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="498" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="499" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" interval="5.0" steps="500" extrapolations="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder_expected.xsil b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder_expected.xsil
new file mode 100644
index 0000000..3c3aea9
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/exponential_scaling_8thOrder_expected.xsil
@@ -0,0 +1,8584 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <name>exponential_scaling_8thOrder</name>
+  
+  <author>Sean Wild</author>
+  <description>
+    Calculates the error scaling behaviour of the 8th order Richardson Extrapolation
+    integrator (using the Modified Midpoint) stepper for 1 to 500 steps.
+  </description>
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="exponential_scaling_8thOrder_expected.xsil" name="exponential_scaling_8thOrder.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+   
+  <geometry>
+    <propagation_dimension> x </propagation_dimension>
+  </geometry>
+  
+  <vector name="position" type="real">
+    <components>
+      y
+    </components>
+    <initialisation>
+      <![CDATA[
+      y = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <vector name="step_count" type="real">
+    <components>
+      steps
+    </components>
+    <initialisation>
+      <![CDATA[
+      steps = 1.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <computed_vector name="position_error" type="real">
+    <components>
+      err_y
+    </components>
+    <evaluation>
+      <dependencies>position</dependencies>
+      <![CDATA[
+      err_y  = exp(5) - y;
+      ]]>
+    </evaluation>
+  </computed_vector>
+  
+  <sequence>
+
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="1">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="2">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="3">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="4">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="5">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="6">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="7">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="8">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="9">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="10">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="11">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="12">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="13">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="14">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="15">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="16">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="17">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="18">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="19">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="20">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="21">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="22">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="23">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="24">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="25">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="26">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="27">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="28">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="29">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="30">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="31">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="32">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="33">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="34">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="35">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="36">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="37">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="38">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="39">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="40">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="41">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="42">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="43">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="44">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="45">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="46">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="47">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="48">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="49">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="50">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="51">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="52">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="53">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="54">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="55">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="56">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="57">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="58">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="59">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="60">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="61">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="62">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="63">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="64">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="65">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="66">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="67">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="68">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="69">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="70">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="71">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="72">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="73">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="74">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="75">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="76">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="77">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="78">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="79">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="80">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="81">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="82">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="83">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="84">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="85">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="86">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="87">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="88">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="89">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="90">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="91">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="92">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="93">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="94">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="95">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="96">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="97">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="98">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="99">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="100">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="101">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="102">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="103">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="104">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="105">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="106">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="107">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="108">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="109">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="110">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="111">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="112">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="113">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="114">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="115">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="116">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="117">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="118">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="119">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="120">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="121">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="122">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="123">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="124">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="125">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="126">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="127">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="128">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="129">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="130">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="131">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="132">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="133">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="134">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="135">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="136">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="137">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="138">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="139">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="140">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="141">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="142">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="143">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="144">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="145">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="146">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="147">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="148">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="149">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="150">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="151">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="152">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="153">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="154">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="155">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="156">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="157">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="158">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="159">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="160">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="161">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="162">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="163">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="164">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="165">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="166">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="167">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="168">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="169">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="170">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="171">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="172">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="173">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="174">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="175">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="176">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="177">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="178">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="179">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="180">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="181">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="182">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="183">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="184">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="185">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="186">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="187">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="188">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="189">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="190">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="191">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="192">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="193">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="194">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="195">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="196">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="197">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="198">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="199">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="200">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="201">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="202">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="203">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="204">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="205">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="206">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="207">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="208">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="209">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="210">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="211">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="212">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="213">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="214">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="215">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="216">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="217">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="218">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="219">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="220">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="221">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="222">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="223">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="224">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="225">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="226">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="227">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="228">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="229">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="230">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="231">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="232">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="233">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="234">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="235">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="236">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="237">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="238">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="239">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="240">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="241">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="242">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="243">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="244">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="245">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="246">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="247">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="248">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="249">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="250">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="251">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="252">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="253">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="254">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="255">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="256">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="257">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="258">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="259">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="260">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="261">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="262">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="263">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="264">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="265">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="266">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="267">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="268">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="269">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="270">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="271">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="272">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="273">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="274">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="275">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="276">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="277">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="278">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="279">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="280">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="281">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="282">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="283">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="284">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="285">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="286">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="287">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="288">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="289">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="290">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="291">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="292">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="293">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="294">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="295">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="296">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="297">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="298">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="299">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="300">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="301">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="302">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="303">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="304">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="305">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="306">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="307">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="308">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="309">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="310">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="311">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="312">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="313">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="314">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="315">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="316">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="317">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="318">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="319">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="320">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="321">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="322">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="323">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="324">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="325">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="326">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="327">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="328">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="329">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="330">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="331">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="332">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="333">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="334">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="335">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="336">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="337">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="338">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="339">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="340">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="341">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="342">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="343">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="344">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="345">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="346">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="347">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="348">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="349">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="350">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="351">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="352">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="353">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="354">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="355">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="356">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="357">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="358">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="359">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="360">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="361">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="362">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="363">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="364">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="365">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="366">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="367">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="368">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="369">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="370">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="371">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="372">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="373">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="374">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="375">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="376">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="377">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="378">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="379">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="380">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="381">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="382">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="383">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="384">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="385">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="386">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="387">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="388">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="389">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="390">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="391">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="392">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="393">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="394">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="395">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="396">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="397">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="398">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="399">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="400">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="401">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="402">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="403">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="404">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="405">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="406">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="407">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="408">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="409">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="410">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="411">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="412">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="413">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="414">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="415">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="416">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="417">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="418">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="419">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="420">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="421">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="422">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="423">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="424">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="425">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="426">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="427">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="428">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="429">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="430">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="431">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="432">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="433">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="434">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="435">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="436">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="437">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="438">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="439">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="440">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="441">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="442">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="443">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="444">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="445">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="446">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="447">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="448">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="449">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="450">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="451">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="452">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="453">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="454">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="455">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="456">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="457">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="458">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="459">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="460">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="461">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="462">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="463">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="464">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="465">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="466">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="467">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="468">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="469">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="470">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="471">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="472">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="473">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="474">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="475">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="476">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="477">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="478">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="479">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="480">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="481">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="482">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="483">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="484">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="485">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="486">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="487">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="488">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="489">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="490">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="491">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="492">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="493">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="494">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="495">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="496">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="497">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="498">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="499">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    <filter>
+      <dependencies>position step_count</dependencies>
+      <![CDATA[
+        y = 1.0;
+        steps = steps + 1.0;
+      ]]>
+    </filter>
+    <integrate algorithm="REMM" extrapolations="4" interval="5.0" steps="500">
+        <samples>1</samples>
+        <operators>
+          <integration_vectors>position</integration_vectors>
+          <![CDATA[
+          dy_dx = y;
+          ]]>
+        </operators>
+    </integrate>
+    
+  </sequence>
+  
+  <!-- This part defines what data will be saved in the output file -->
+  <output format="ascii">
+    <sampling_group initial_sample="no">
+      <moments>stepsR err_yR</moments>
+      <dependencies>step_count position_error</dependencies>
+      <![CDATA[
+        stepsR = steps;
+        err_yR = err_y;
+      ]]>
+    </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">1</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+x stepsR err_yR 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>500</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+5.000000000000e+00 1.000000000000e+00 7.078453931446e+00
+1.000000000000e+01 2.000000000000e+00 1.943193496342e-01
+1.500000000000e+01 3.000000000000e+00 1.456578797817e-02
+2.000000000000e+01 4.000000000000e+00 2.019633796067e-03
+2.500000000000e+01 5.000000000000e+00 4.118111588411e-04
+3.000000000000e+01 6.000000000000e+00 1.090521268168e-04
+3.500000000000e+01 7.000000000000e+00 3.485688355909e-05
+4.000000000000e+01 8.000000000000e+00 1.283797587348e-05
+4.500000000000e+01 9.000000000000e+00 5.280848483835e-06
+5.000000000000e+01 1.000000000000e+01 2.373417146373e-06
+5.500000000000e+01 1.100000000000e+01 1.146963199972e-06
+6.000000000000e+01 1.200000000000e+01 5.888422549560e-07
+6.500000000000e+01 1.300000000000e+01 3.181959300491e-07
+7.000000000000e+01 1.400000000000e+01 1.796646529328e-07
+7.500000000000e+01 1.500000000000e+01 1.053822700214e-07
+8.000000000000e+01 1.600000000000e+01 6.390709472726e-08
+8.500000000000e+01 1.700000000000e+01 3.991161179329e-08
+9.000000000000e+01 1.800000000000e+01 2.558621758908e-08
+9.500000000000e+01 1.900000000000e+01 1.679114802755e-08
+1.000000000000e+02 2.000000000000e+01 1.125340531871e-08
+1.050000000000e+02 2.100000000000e+01 7.687560810155e-09
+1.100000000000e+02 2.200000000000e+01 5.343139264369e-09
+1.150000000000e+02 2.300000000000e+01 3.772953505177e-09
+1.200000000000e+02 2.400000000000e+01 2.702421397771e-09
+1.250000000000e+02 2.500000000000e+01 1.961922180271e-09
+1.300000000000e+02 2.600000000000e+01 1.442259645046e-09
+1.350000000000e+02 2.700000000000e+01 1.072265831681e-09
+1.400000000000e+02 2.800000000000e+01 8.060112577368e-10
+1.450000000000e+02 2.900000000000e+01 6.113509698480e-10
+1.500000000000e+02 3.000000000000e+01 4.680202891905e-10
+1.550000000000e+02 3.100000000000e+01 3.615809873736e-10
+1.600000000000e+02 3.200000000000e+01 2.819433575496e-10
+1.650000000000e+02 3.300000000000e+01 2.215188033006e-10
+1.700000000000e+02 3.400000000000e+01 1.744240307744e-10
+1.750000000000e+02 3.500000000000e+01 1.390674242430e-10
+1.800000000000e+02 3.600000000000e+01 1.110151970352e-10
+1.850000000000e+02 3.700000000000e+01 8.890310709830e-11
+1.900000000000e+02 3.800000000000e+01 7.267431101354e-11
+1.950000000000e+02 3.900000000000e+01 5.849187800777e-11
+2.000000000000e+02 4.000000000000e+01 4.851585799770e-11
+2.050000000000e+02 4.100000000000e+01 3.993250174972e-11
+2.100000000000e+02 4.200000000000e+01 3.279865268269e-11
+2.150000000000e+02 4.300000000000e+01 2.748379301920e-11
+2.200000000000e+02 4.400000000000e+01 2.327738002350e-11
+2.250000000000e+02 4.500000000000e+01 1.969624463527e-11
+2.300000000000e+02 4.600000000000e+01 1.645616976020e-11
+2.350000000000e+02 4.700000000000e+01 1.330136001343e-11
+2.400000000000e+02 4.800000000000e+01 1.139710548159e-11
+2.450000000000e+02 4.900000000000e+01 9.890754881781e-12
+2.500000000000e+02 5.000000000000e+01 8.554934538552e-12
+2.550000000000e+02 5.100000000000e+01 8.185452315956e-12
+2.600000000000e+02 5.200000000000e+01 6.252776074689e-12
+2.650000000000e+02 5.300000000000e+01 4.831690603169e-12
+2.700000000000e+02 5.400000000000e+01 5.513811629498e-12
+2.750000000000e+02 5.500000000000e+01 3.979039320257e-12
+2.800000000000e+02 5.600000000000e+01 3.495870259940e-12
+2.850000000000e+02 5.700000000000e+01 3.922195901396e-12
+2.900000000000e+02 5.800000000000e+01 1.875832822407e-12
+2.950000000000e+02 5.900000000000e+01 2.387423592154e-12
+3.000000000000e+02 6.000000000000e+01 1.762145984685e-12
+3.050000000000e+02 6.100000000000e+01 2.927436071332e-12
+3.100000000000e+02 6.200000000000e+01 1.278976924368e-12
+3.150000000000e+02 6.300000000000e+01 1.250555214938e-12
+3.200000000000e+02 6.400000000000e+01 6.821210263297e-13
+3.250000000000e+02 6.500000000000e+01 1.392663762090e-12
+3.300000000000e+02 6.600000000000e+01 8.810729923425e-13
+3.350000000000e+02 6.700000000000e+01 5.684341886081e-13
+3.400000000000e+02 6.800000000000e+01 1.989519660128e-13
+3.450000000000e+02 6.900000000000e+01 1.165290086647e-12
+3.500000000000e+02 7.000000000000e+01 7.958078640513e-13
+3.550000000000e+02 7.100000000000e+01 4.831690603169e-13
+3.600000000000e+02 7.200000000000e+01 -6.821210263297e-13
+3.650000000000e+02 7.300000000000e+01 -1.705302565824e-13
+3.700000000000e+02 7.400000000000e+01 5.684341886081e-13
+3.750000000000e+02 7.500000000000e+01 4.263256414561e-13
+3.800000000000e+02 7.600000000000e+01 8.526512829121e-14
+3.850000000000e+02 7.700000000000e+01 7.389644451905e-13
+3.900000000000e+02 7.800000000000e+01 -2.842170943040e-14
+3.950000000000e+02 7.900000000000e+01 4.547473508865e-13
+4.000000000000e+02 8.000000000000e+01 2.273736754432e-13
+4.050000000000e+02 8.100000000000e+01 3.410605131648e-13
+4.100000000000e+02 8.200000000000e+01 -7.389644451905e-13
+4.150000000000e+02 8.300000000000e+01 8.526512829121e-14
+4.200000000000e+02 8.400000000000e+01 -1.421085471520e-13
+4.250000000000e+02 8.500000000000e+01 2.273736754432e-13
+4.300000000000e+02 8.600000000000e+01 -1.989519660128e-13
+4.350000000000e+02 8.700000000000e+01 -1.392663762090e-12
+4.400000000000e+02 8.800000000000e+01 6.821210263297e-13
+4.450000000000e+02 8.900000000000e+01 -8.810729923425e-13
+4.500000000000e+02 9.000000000000e+01 -9.947598300641e-13
+4.550000000000e+02 9.100000000000e+01 3.410605131648e-13
+4.600000000000e+02 9.200000000000e+01 3.410605131648e-13
+4.650000000000e+02 9.300000000000e+01 -7.389644451905e-13
+4.700000000000e+02 9.400000000000e+01 1.705302565824e-13
+4.750000000000e+02 9.500000000000e+01 1.364242052659e-12
+4.800000000000e+02 9.600000000000e+01 -8.526512829121e-14
+4.850000000000e+02 9.700000000000e+01 6.821210263297e-13
+4.900000000000e+02 9.800000000000e+01 -1.705302565824e-13
+4.950000000000e+02 9.900000000000e+01 9.947598300641e-13
+5.000000000000e+02 1.000000000000e+02 -2.842170943040e-13
+5.050000000000e+02 1.010000000000e+02 3.410605131648e-13
+5.100000000000e+02 1.020000000000e+02 1.989519660128e-13
+5.150000000000e+02 1.030000000000e+02 -8.810729923425e-13
+5.200000000000e+02 1.040000000000e+02 6.252776074689e-13
+5.250000000000e+02 1.050000000000e+02 1.705302565824e-13
+5.300000000000e+02 1.060000000000e+02 -2.273736754432e-13
+5.350000000000e+02 1.070000000000e+02 -4.263256414561e-13
+5.400000000000e+02 1.080000000000e+02 -6.821210263297e-13
+5.450000000000e+02 1.090000000000e+02 -6.252776074689e-13
+5.500000000000e+02 1.100000000000e+02 7.105427357601e-13
+5.550000000000e+02 1.110000000000e+02 -2.557953848736e-13
+5.600000000000e+02 1.120000000000e+02 -5.684341886081e-14
+5.650000000000e+02 1.130000000000e+02 -5.115907697473e-13
+5.700000000000e+02 1.140000000000e+02 -1.705302565824e-13
+5.750000000000e+02 1.150000000000e+02 -9.379164112033e-13
+5.800000000000e+02 1.160000000000e+02 4.831690603169e-13
+5.850000000000e+02 1.170000000000e+02 -1.250555214938e-12
+5.900000000000e+02 1.180000000000e+02 1.136868377216e-13
+5.950000000000e+02 1.190000000000e+02 1.250555214938e-12
+6.000000000000e+02 1.200000000000e+02 5.684341886081e-13
+6.050000000000e+02 1.210000000000e+02 -6.536993168993e-13
+6.100000000000e+02 1.220000000000e+02 6.252776074689e-13
+6.150000000000e+02 1.230000000000e+02 -1.477928890381e-12
+6.200000000000e+02 1.240000000000e+02 6.252776074689e-13
+6.250000000000e+02 1.250000000000e+02 9.379164112033e-13
+6.300000000000e+02 1.260000000000e+02 -8.526512829121e-14
+6.350000000000e+02 1.270000000000e+02 -6.821210263297e-13
+6.400000000000e+02 1.280000000000e+02 -6.252776074689e-13
+6.450000000000e+02 1.290000000000e+02 -4.263256414561e-13
+6.500000000000e+02 1.300000000000e+02 -1.051603248925e-12
+6.550000000000e+02 1.310000000000e+02 -1.989519660128e-13
+6.600000000000e+02 1.320000000000e+02 2.842170943040e-13
+6.650000000000e+02 1.330000000000e+02 -1.705302565824e-13
+6.700000000000e+02 1.340000000000e+02 -5.684341886081e-13
+6.750000000000e+02 1.350000000000e+02 -1.136868377216e-12
+6.800000000000e+02 1.360000000000e+02 -1.250555214938e-12
+6.850000000000e+02 1.370000000000e+02 1.165290086647e-12
+6.900000000000e+02 1.380000000000e+02 8.526512829121e-13
+6.950000000000e+02 1.390000000000e+02 1.989519660128e-13
+7.000000000000e+02 1.400000000000e+02 1.080024958355e-12
+7.050000000000e+02 1.410000000000e+02 -1.136868377216e-13
+7.100000000000e+02 1.420000000000e+02 1.648459146963e-12
+7.150000000000e+02 1.430000000000e+02 -1.250555214938e-12
+7.200000000000e+02 1.440000000000e+02 -1.705302565824e-13
+7.250000000000e+02 1.450000000000e+02 -4.831690603169e-13
+7.300000000000e+02 1.460000000000e+02 1.080024958355e-12
+7.350000000000e+02 1.470000000000e+02 1.136868377216e-13
+7.399999999999e+02 1.480000000000e+02 1.591615728103e-12
+7.450000000000e+02 1.490000000000e+02 -5.684341886081e-13
+7.499999999999e+02 1.500000000000e+02 8.526512829121e-14
+7.549999999999e+02 1.510000000000e+02 -2.557953848736e-13
+7.599999999999e+02 1.520000000000e+02 -7.673861546209e-13
+7.649999999999e+02 1.530000000000e+02 1.705302565824e-13
+7.699999999999e+02 1.540000000000e+02 6.536993168993e-13
+7.749999999999e+02 1.550000000000e+02 -1.278976924368e-12
+7.799999999999e+02 1.560000000000e+02 8.242295734817e-13
+7.849999999999e+02 1.570000000000e+02 -3.694822225953e-13
+7.900000000000e+02 1.580000000000e+02 -4.831690603169e-13
+7.950000000000e+02 1.590000000000e+02 3.410605131648e-13
+8.000000000000e+02 1.600000000000e+02 -4.547473508865e-13
+8.050000000000e+02 1.610000000000e+02 -6.536993168993e-13
+8.100000000000e+02 1.620000000000e+02 -5.684341886081e-14
+8.150000000000e+02 1.630000000000e+02 6.821210263297e-13
+8.200000000000e+02 1.640000000000e+02 -1.563194018672e-12
+8.249999999999e+02 1.650000000000e+02 -1.222133505507e-12
+8.300000000000e+02 1.660000000000e+02 -2.302158463863e-12
+8.349999999999e+02 1.670000000000e+02 -1.136868377216e-13
+8.400000000000e+02 1.680000000000e+02 1.421085471520e-13
+8.450000000000e+02 1.690000000000e+02 3.410605131648e-13
+8.499999999999e+02 1.700000000000e+02 7.673861546209e-13
+8.550000000000e+02 1.710000000000e+02 -3.126388037344e-13
+8.600000000000e+02 1.720000000000e+02 -6.252776074689e-13
+8.650000000000e+02 1.730000000000e+02 -2.557953848736e-13
+8.700000000000e+02 1.740000000000e+02 7.958078640513e-13
+8.750000000000e+02 1.750000000000e+02 -1.222133505507e-12
+8.800000000000e+02 1.760000000000e+02 -1.705302565824e-13
+8.850000000000e+02 1.770000000000e+02 1.733724275255e-12
+8.900000000000e+02 1.780000000000e+02 -3.126388037344e-13
+8.950000000000e+02 1.790000000000e+02 -2.842170943040e-13
+9.000000000000e+02 1.800000000000e+02 -7.958078640513e-13
+9.050000000000e+02 1.810000000000e+02 9.947598300641e-13
+9.100000000000e+02 1.820000000000e+02 4.263256414561e-13
+9.150000000000e+02 1.830000000000e+02 -5.684341886081e-13
+9.200000000000e+02 1.840000000000e+02 1.705302565824e-12
+9.250000000000e+02 1.850000000000e+02 -2.557953848736e-13
+9.300000000000e+02 1.860000000000e+02 1.136868377216e-13
+9.350000000000e+02 1.870000000000e+02 1.762145984685e-12
+9.400000000000e+02 1.880000000000e+02 1.136868377216e-12
+9.450000000000e+02 1.890000000000e+02 1.165290086647e-12
+9.500000000000e+02 1.900000000000e+02 6.536993168993e-13
+9.550000000000e+02 1.910000000000e+02 1.307398633799e-12
+9.600000000000e+02 1.920000000000e+02 1.193711796077e-12
+9.650000000000e+02 1.930000000000e+02 4.263256414561e-13
+9.700000000000e+02 1.940000000000e+02 2.103206497850e-12
+9.750000000000e+02 1.950000000000e+02 -1.705302565824e-12
+9.800000000000e+02 1.960000000000e+02 1.080024958355e-12
+9.850000000000e+02 1.970000000000e+02 5.684341886081e-13
+9.900000000000e+02 1.980000000000e+02 2.103206497850e-12
+9.950000000000e+02 1.990000000000e+02 7.673861546209e-13
+1.000000000000e+03 2.000000000000e+02 7.105427357601e-13
+1.005000000000e+03 2.010000000000e+02 0.000000000000e+00
+1.010000000000e+03 2.020000000000e+02 1.278976924368e-12
+1.015000000000e+03 2.030000000000e+02 7.105427357601e-13
+1.020000000000e+03 2.040000000000e+02 -9.379164112033e-13
+1.025000000000e+03 2.050000000000e+02 9.663381206337e-13
+1.030000000000e+03 2.060000000000e+02 1.222133505507e-12
+1.035000000000e+03 2.070000000000e+02 -2.557953848736e-13
+1.040000000000e+03 2.080000000000e+02 7.958078640513e-13
+1.045000000000e+03 2.090000000000e+02 -1.165290086647e-12
+1.050000000000e+03 2.100000000000e+02 6.821210263297e-13
+1.055000000000e+03 2.110000000000e+02 1.307398633799e-12
+1.060000000000e+03 2.120000000000e+02 8.526512829121e-13
+1.065000000000e+03 2.130000000000e+02 1.278976924368e-12
+1.070000000000e+03 2.140000000000e+02 -6.252776074689e-13
+1.075000000000e+03 2.150000000000e+02 1.222133505507e-12
+1.080000000000e+03 2.160000000000e+02 -9.663381206337e-13
+1.085000000000e+03 2.170000000000e+02 7.105427357601e-13
+1.090000000000e+03 2.180000000000e+02 2.273736754432e-13
+1.095000000000e+03 2.190000000000e+02 -8.526512829121e-14
+1.100000000000e+03 2.200000000000e+02 7.673861546209e-13
+1.105000000000e+03 2.210000000000e+02 1.563194018672e-12
+1.110000000000e+03 2.220000000000e+02 9.094947017729e-13
+1.115000000000e+03 2.230000000000e+02 2.017941369559e-12
+1.120000000000e+03 2.240000000000e+02 7.105427357601e-13
+1.125000000000e+03 2.250000000000e+02 5.115907697473e-13
+1.130000000000e+03 2.260000000000e+02 -3.126388037344e-13
+1.135000000000e+03 2.270000000000e+02 -7.389644451905e-13
+1.140000000000e+03 2.280000000000e+02 1.620037437533e-12
+1.145000000000e+03 2.290000000000e+02 1.222133505507e-12
+1.150000000000e+03 2.300000000000e+02 -9.094947017729e-13
+1.155000000000e+03 2.310000000000e+02 7.958078640513e-13
+1.160000000000e+03 2.320000000000e+02 1.108446667786e-12
+1.165000000000e+03 2.330000000000e+02 9.094947017729e-13
+1.170000000000e+03 2.340000000000e+02 -2.842170943040e-14
+1.175000000000e+03 2.350000000000e+02 0.000000000000e+00
+1.180000000000e+03 2.360000000000e+02 -6.536993168993e-13
+1.185000000000e+03 2.370000000000e+02 1.762145984685e-12
+1.190000000000e+03 2.380000000000e+02 -9.663381206337e-13
+1.195000000000e+03 2.390000000000e+02 -2.842170943040e-14
+1.200000000000e+03 2.400000000000e+02 2.103206497850e-12
+1.205000000000e+03 2.410000000000e+02 1.421085471520e-13
+1.210000000000e+03 2.420000000000e+02 1.733724275255e-12
+1.215000000000e+03 2.430000000000e+02 3.979039320257e-13
+1.220000000000e+03 2.440000000000e+02 2.842170943040e-13
+1.225000000000e+03 2.450000000000e+02 3.979039320257e-13
+1.230000000000e+03 2.460000000000e+02 -7.673861546209e-13
+1.235000000000e+03 2.470000000000e+02 -2.842170943040e-13
+1.240000000000e+03 2.480000000000e+02 -7.389644451905e-13
+1.245000000000e+03 2.490000000000e+02 -2.557953848736e-13
+1.250000000000e+03 2.500000000000e+02 1.136868377216e-12
+1.255000000000e+03 2.510000000000e+02 2.557953848736e-13
+1.260000000000e+03 2.520000000000e+02 -6.536993168993e-13
+1.265000000000e+03 2.530000000000e+02 -8.526512829121e-13
+1.270000000000e+03 2.540000000000e+02 2.842170943040e-14
+1.275000000000e+03 2.550000000000e+02 -5.684341886081e-14
+1.280000000000e+03 2.560000000000e+02 3.126388037344e-13
+1.285000000000e+03 2.570000000000e+02 1.136868377216e-13
+1.290000000000e+03 2.580000000000e+02 -1.421085471520e-12
+1.295000000000e+03 2.590000000000e+02 -1.676880856394e-12
+1.300000000000e+03 2.600000000000e+02 -1.506350599811e-12
+1.305000000000e+03 2.610000000000e+02 1.278976924368e-12
+1.310000000000e+03 2.620000000000e+02 6.252776074689e-13
+1.315000000000e+03 2.630000000000e+02 5.684341886081e-14
+1.320000000000e+03 2.640000000000e+02 6.821210263297e-13
+1.325000000000e+03 2.650000000000e+02 2.273736754432e-13
+1.330000000000e+03 2.660000000000e+02 2.216893335572e-12
+1.335000000000e+03 2.670000000000e+02 -1.193711796077e-12
+1.340000000000e+03 2.680000000000e+02 2.387423592154e-12
+1.345000000000e+03 2.690000000000e+02 -1.989519660128e-13
+1.350000000000e+03 2.700000000000e+02 -8.526512829121e-14
+1.355000000000e+03 2.710000000000e+02 -2.842170943040e-14
+1.360000000000e+03 2.720000000000e+02 1.477928890381e-12
+1.365000000000e+03 2.730000000000e+02 -2.557953848736e-13
+1.370000000000e+03 2.740000000000e+02 -1.307398633799e-12
+1.375000000000e+03 2.750000000000e+02 7.389644451905e-13
+1.380000000000e+03 2.760000000000e+02 -1.335820343229e-12
+1.385000000000e+03 2.770000000000e+02 -3.410605131648e-13
+1.390000000000e+03 2.780000000000e+02 0.000000000000e+00
+1.395000000000e+03 2.790000000000e+02 7.105427357601e-13
+1.400000000000e+03 2.800000000000e+02 -6.821210263297e-13
+1.405000000000e+03 2.810000000000e+02 -1.335820343229e-12
+1.410000000000e+03 2.820000000000e+02 -4.831690603169e-13
+1.415000000000e+03 2.830000000000e+02 -1.847411112976e-12
+1.420000000000e+03 2.840000000000e+02 -1.591615728103e-12
+1.425000000000e+03 2.850000000000e+02 -1.790567694115e-12
+1.430000000000e+03 2.860000000000e+02 8.526512829121e-14
+1.435000000000e+03 2.870000000000e+02 1.222133505507e-12
+1.440000000000e+03 2.880000000000e+02 1.989519660128e-13
+1.445000000000e+03 2.890000000000e+02 -1.449507180951e-12
+1.450000000000e+03 2.900000000000e+02 6.821210263297e-13
+1.455000000000e+03 2.910000000000e+02 -6.252776074689e-13
+1.460000000000e+03 2.920000000000e+02 -4.547473508865e-13
+1.465000000000e+03 2.930000000000e+02 1.392663762090e-12
+1.470000000000e+03 2.940000000000e+02 4.831690603169e-13
+1.475000000000e+03 2.950000000000e+02 -1.250555214938e-12
+1.480000000000e+03 2.960000000000e+02 6.821210263297e-13
+1.485000000000e+03 2.970000000000e+02 -7.673861546209e-13
+1.490000000000e+03 2.980000000000e+02 1.023181539495e-12
+1.495000000000e+03 2.990000000000e+02 -5.684341886081e-14
+1.500000000000e+03 3.000000000000e+02 -2.273736754432e-13
+1.505000000000e+03 3.010000000000e+02 4.831690603169e-13
+1.510000000000e+03 3.020000000000e+02 1.989519660128e-13
+1.515000000000e+03 3.030000000000e+02 -5.400124791777e-13
+1.520000000000e+03 3.040000000000e+02 7.389644451905e-13
+1.525000000000e+03 3.050000000000e+02 -1.023181539495e-12
+1.530000000000e+03 3.060000000000e+02 -1.989519660128e-13
+1.535000000000e+03 3.070000000000e+02 -8.526512829121e-13
+1.540000000000e+03 3.080000000000e+02 -2.557953848736e-13
+1.545000000000e+03 3.090000000000e+02 2.273736754432e-13
+1.550000000000e+03 3.100000000000e+02 6.536993168993e-13
+1.555000000000e+03 3.110000000000e+02 1.364242052659e-12
+1.560000000000e+03 3.120000000000e+02 -1.278976924368e-12
+1.565000000000e+03 3.130000000000e+02 2.074784788419e-12
+1.570000000000e+03 3.140000000000e+02 -7.673861546209e-13
+1.575000000000e+03 3.150000000000e+02 1.023181539495e-12
+1.580000000000e+03 3.160000000000e+02 -1.222133505507e-12
+1.585000000000e+03 3.170000000000e+02 -3.694822225953e-13
+1.590000000000e+03 3.180000000000e+02 6.252776074689e-13
+1.595000000000e+03 3.190000000000e+02 -2.842170943040e-14
+1.600000000000e+03 3.200000000000e+02 -1.591615728103e-12
+1.605000000000e+03 3.210000000000e+02 8.242295734817e-13
+1.610000000000e+03 3.220000000000e+02 -8.526512829121e-14
+1.615000000000e+03 3.230000000000e+02 1.364242052659e-12
+1.620000000000e+03 3.240000000000e+02 -3.012701199623e-12
+1.625000000000e+03 3.250000000000e+02 1.278976924368e-12
+1.630000000000e+03 3.260000000000e+02 -3.410605131648e-13
+1.635000000000e+03 3.270000000000e+02 -6.252776074689e-13
+1.640000000000e+03 3.280000000000e+02 -8.526512829121e-14
+1.645000000000e+03 3.290000000000e+02 9.663381206337e-13
+1.650000000000e+03 3.300000000000e+02 -1.080024958355e-12
+1.655000000000e+03 3.310000000000e+02 1.591615728103e-12
+1.660000000000e+03 3.320000000000e+02 1.250555214938e-12
+1.665000000000e+03 3.330000000000e+02 9.379164112033e-13
+1.670000000000e+03 3.340000000000e+02 -5.684341886081e-14
+1.675000000000e+03 3.350000000000e+02 5.684341886081e-13
+1.680000000000e+03 3.360000000000e+02 1.108446667786e-12
+1.685000000000e+03 3.370000000000e+02 -2.501110429876e-12
+1.690000000000e+03 3.380000000000e+02 9.379164112033e-13
+1.695000000000e+03 3.390000000000e+02 7.673861546209e-13
+1.700000000000e+03 3.400000000000e+02 1.932676241267e-12
+1.705000000000e+03 3.410000000000e+02 4.547473508865e-13
+1.710000000000e+03 3.420000000000e+02 -1.136868377216e-13
+1.715000000000e+03 3.430000000000e+02 2.273736754432e-13
+1.720000000000e+03 3.440000000000e+02 -9.663381206337e-13
+1.725000000000e+03 3.450000000000e+02 1.023181539495e-12
+1.730000000000e+03 3.460000000000e+02 -1.961097950698e-12
+1.735000000000e+03 3.470000000000e+02 -1.222133505507e-12
+1.740000000000e+03 3.480000000000e+02 2.842170943040e-13
+1.745000000000e+03 3.490000000000e+02 5.684341886081e-13
+1.750000000000e+03 3.500000000000e+02 -1.278976924368e-12
+1.755000000000e+03 3.510000000000e+02 2.785327524180e-12
+1.760000000000e+03 3.520000000000e+02 1.733724275255e-12
+1.765000000000e+03 3.530000000000e+02 -7.958078640513e-13
+1.770000000000e+03 3.540000000000e+02 -1.278976924368e-12
+1.775000000000e+03 3.550000000000e+02 -5.115907697473e-13
+1.780000000000e+03 3.560000000000e+02 -1.563194018672e-12
+1.784999999999e+03 3.570000000000e+02 -2.557953848736e-12
+1.789999999999e+03 3.580000000000e+02 2.387423592154e-12
+1.794999999999e+03 3.590000000000e+02 9.379164112033e-13
+1.799999999999e+03 3.600000000000e+02 -7.105427357601e-13
+1.804999999999e+03 3.610000000000e+02 -5.684341886081e-13
+1.809999999999e+03 3.620000000000e+02 4.632738637156e-12
+1.815000000000e+03 3.630000000000e+02 -2.017941369559e-12
+1.820000000000e+03 3.640000000000e+02 6.821210263297e-13
+1.825000000000e+03 3.650000000000e+02 -4.831690603169e-13
+1.830000000000e+03 3.660000000000e+02 -1.051603248925e-12
+1.835000000000e+03 3.670000000000e+02 5.684341886081e-13
+1.840000000000e+03 3.680000000000e+02 -2.188471626141e-12
+1.845000000000e+03 3.690000000000e+02 -2.842170943040e-13
+1.850000000000e+03 3.700000000000e+02 -1.421085471520e-13
+1.855000000000e+03 3.710000000000e+02 7.673861546209e-13
+1.860000000000e+03 3.720000000000e+02 4.547473508865e-13
+1.865000000000e+03 3.730000000000e+02 -4.831690603169e-13
+1.870000000000e+03 3.740000000000e+02 -1.193711796077e-12
+1.875000000000e+03 3.750000000000e+02 2.842170943040e-13
+1.880000000000e+03 3.760000000000e+02 -1.364242052659e-12
+1.885000000000e+03 3.770000000000e+02 -8.526512829121e-14
+1.890000000000e+03 3.780000000000e+02 1.705302565824e-12
+1.895000000000e+03 3.790000000000e+02 1.278976924368e-12
+1.900000000000e+03 3.800000000000e+02 4.547473508865e-13
+1.905000000000e+03 3.810000000000e+02 1.563194018672e-12
+1.910000000000e+03 3.820000000000e+02 -2.557953848736e-12
+1.915000000000e+03 3.830000000000e+02 1.989519660128e-12
+1.920000000000e+03 3.840000000000e+02 -1.705302565824e-12
+1.925000000000e+03 3.850000000000e+02 1.421085471520e-13
+1.930000000000e+03 3.860000000000e+02 -1.733724275255e-12
+1.935000000000e+03 3.870000000000e+02 2.273736754432e-13
+1.940000000000e+03 3.880000000000e+02 6.821210263297e-13
+1.945000000000e+03 3.890000000000e+02 -9.379164112033e-13
+1.950000000000e+03 3.900000000000e+02 1.250555214938e-12
+1.955000000000e+03 3.910000000000e+02 -1.136868377216e-12
+1.960000000000e+03 3.920000000000e+02 2.614797267597e-12
+1.965000000000e+03 3.930000000000e+02 1.705302565824e-13
+1.970000000000e+03 3.940000000000e+02 -6.252776074689e-13
+1.975000000000e+03 3.950000000000e+02 2.444267011015e-12
+1.980000000000e+03 3.960000000000e+02 9.947598300641e-13
+1.985000000000e+03 3.970000000000e+02 7.673861546209e-13
+1.990000000000e+03 3.980000000000e+02 2.302158463863e-12
+1.995000000000e+03 3.990000000000e+02 2.074784788419e-12
+2.000000000000e+03 4.000000000000e+02 -1.676880856394e-12
+2.005000000000e+03 4.010000000000e+02 7.105427357601e-13
+2.010000000000e+03 4.020000000000e+02 5.968558980385e-13
+2.015000000000e+03 4.030000000000e+02 2.842170943040e-13
+2.020000000000e+03 4.040000000000e+02 1.932676241267e-12
+2.025000000000e+03 4.050000000000e+02 1.477928890381e-12
+2.030000000000e+03 4.060000000000e+02 -4.263256414561e-13
+2.035000000000e+03 4.070000000000e+02 -5.115907697473e-13
+2.040000000000e+03 4.080000000000e+02 1.421085471520e-13
+2.045000000000e+03 4.090000000000e+02 -1.989519660128e-13
+2.050000000000e+03 4.100000000000e+02 3.410605131648e-13
+2.055000000000e+03 4.110000000000e+02 -1.449507180951e-12
+2.060000000000e+03 4.120000000000e+02 1.989519660128e-13
+2.065000000000e+03 4.130000000000e+02 -2.273736754432e-13
+2.070000000000e+03 4.140000000000e+02 8.810729923425e-13
+2.075000000000e+03 4.150000000000e+02 8.526512829121e-13
+2.080000000000e+03 4.160000000000e+02 3.410605131648e-13
+2.085000000000e+03 4.170000000000e+02 -1.364242052659e-12
+2.090000000000e+03 4.180000000000e+02 -1.278976924368e-12
+2.095000000000e+03 4.190000000000e+02 7.105427357601e-13
+2.100000000000e+03 4.200000000000e+02 7.105427357601e-13
+2.105000000000e+03 4.210000000000e+02 -8.526512829121e-14
+2.110000000000e+03 4.220000000000e+02 -2.074784788419e-12
+2.115000000000e+03 4.230000000000e+02 4.547473508865e-13
+2.120000000000e+03 4.240000000000e+02 1.676880856394e-12
+2.125000000000e+03 4.250000000000e+02 9.094947017729e-13
+2.130000000000e+03 4.260000000000e+02 2.557953848736e-13
+2.135000000000e+03 4.270000000000e+02 4.547473508865e-13
+2.140000000000e+03 4.280000000000e+02 -4.547473508865e-13
+2.145000000000e+03 4.290000000000e+02 -1.108446667786e-12
+2.149999999999e+03 4.300000000000e+02 -2.302158463863e-12
+2.154999999999e+03 4.310000000000e+02 1.705302565824e-12
+2.159999999999e+03 4.320000000000e+02 1.250555214938e-12
+2.164999999999e+03 4.330000000000e+02 -1.847411112976e-12
+2.169999999999e+03 4.340000000000e+02 6.536993168993e-13
+2.174999999999e+03 4.350000000000e+02 1.705302565824e-13
+2.179999999999e+03 4.360000000000e+02 3.694822225953e-13
+2.184999999999e+03 4.370000000000e+02 -4.263256414561e-13
+2.189999999999e+03 4.380000000000e+02 8.526512829121e-14
+2.194999999999e+03 4.390000000000e+02 -2.273736754432e-13
+2.199999999999e+03 4.400000000000e+02 -1.193711796077e-12
+2.204999999999e+03 4.410000000000e+02 -3.694822225953e-13
+2.209999999999e+03 4.420000000000e+02 -1.705302565824e-13
+2.214999999999e+03 4.430000000000e+02 -1.364242052659e-12
+2.219999999999e+03 4.440000000000e+02 5.400124791777e-13
+2.224999999999e+03 4.450000000000e+02 -7.389644451905e-13
+2.229999999999e+03 4.460000000000e+02 -2.557953848736e-13
+2.234999999999e+03 4.470000000000e+02 1.222133505507e-12
+2.239999999999e+03 4.480000000000e+02 7.673861546209e-13
+2.244999999999e+03 4.490000000000e+02 7.673861546209e-13
+2.249999999999e+03 4.500000000000e+02 3.126388037344e-13
+2.254999999999e+03 4.510000000000e+02 3.126388037344e-13
+2.259999999999e+03 4.520000000000e+02 -6.536993168993e-13
+2.264999999999e+03 4.530000000000e+02 -1.477928890381e-12
+2.269999999999e+03 4.540000000000e+02 -1.165290086647e-12
+2.274999999999e+03 4.550000000000e+02 -2.131628207280e-12
+2.279999999999e+03 4.560000000000e+02 -2.842170943040e-14
+2.284999999999e+03 4.570000000000e+02 -1.818989403546e-12
+2.289999999999e+03 4.580000000000e+02 1.563194018672e-12
+2.294999999999e+03 4.590000000000e+02 -1.818989403546e-12
+2.299999999999e+03 4.600000000000e+02 1.705302565824e-13
+2.304999999999e+03 4.610000000000e+02 -1.307398633799e-12
+2.309999999999e+03 4.620000000000e+02 1.705302565824e-12
+2.314999999999e+03 4.630000000000e+02 1.307398633799e-12
+2.319999999999e+03 4.640000000000e+02 1.392663762090e-12
+2.324999999999e+03 4.650000000000e+02 -5.684341886081e-14
+2.329999999999e+03 4.660000000000e+02 -5.968558980385e-13
+2.334999999999e+03 4.670000000000e+02 0.000000000000e+00
+2.339999999999e+03 4.680000000000e+02 -1.165290086647e-12
+2.344999999999e+03 4.690000000000e+02 6.536993168993e-13
+2.349999999999e+03 4.700000000000e+02 2.614797267597e-12
+2.354999999999e+03 4.710000000000e+02 2.387423592154e-12
+2.359999999999e+03 4.720000000000e+02 1.080024958355e-12
+2.364999999999e+03 4.730000000000e+02 2.273736754432e-13
+2.369999999999e+03 4.740000000000e+02 -1.620037437533e-12
+2.374999999999e+03 4.750000000000e+02 -2.842170943040e-13
+2.379999999999e+03 4.760000000000e+02 -4.831690603169e-13
+2.384999999999e+03 4.770000000000e+02 -1.222133505507e-12
+2.389999999999e+03 4.780000000000e+02 -9.094947017729e-13
+2.394999999999e+03 4.790000000000e+02 -8.810729923425e-13
+2.399999999999e+03 4.800000000000e+02 -3.183231456205e-12
+2.404999999999e+03 4.810000000000e+02 -1.563194018672e-12
+2.409999999999e+03 4.820000000000e+02 -5.968558980385e-13
+2.414999999999e+03 4.830000000000e+02 1.250555214938e-12
+2.419999999999e+03 4.840000000000e+02 2.330580173293e-12
+2.424999999999e+03 4.850000000000e+02 8.810729923425e-13
+2.429999999999e+03 4.860000000000e+02 -1.847411112976e-12
+2.434999999999e+03 4.870000000000e+02 -9.947598300641e-13
+2.439999999999e+03 4.880000000000e+02 1.620037437533e-12
+2.444999999999e+03 4.890000000000e+02 3.410605131648e-13
+2.449999999999e+03 4.900000000000e+02 -1.421085471520e-13
+2.454999999999e+03 4.910000000000e+02 5.684341886081e-14
+2.459999999999e+03 4.920000000000e+02 1.506350599811e-12
+2.464999999999e+03 4.930000000000e+02 -2.842170943040e-12
+2.469999999999e+03 4.940000000000e+02 -1.847411112976e-12
+2.474999999999e+03 4.950000000000e+02 3.410605131648e-13
+2.479999999999e+03 4.960000000000e+02 -1.989519660128e-13
+2.484999999999e+03 4.970000000000e+02 -1.648459146963e-12
+2.489999999999e+03 4.980000000000e+02 -1.961097950698e-12
+2.494999999999e+03 4.990000000000e+02 -2.643218977028e-12
+2.499999999999e+03 5.000000000000e+02 -2.302158463863e-12
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/logplotall.gp b/testsuite/integrators/richardson_extrapolation/error_scaling/logplotall.gp
new file mode 100644
index 0000000..6bced0a
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/logplotall.gp
@@ -0,0 +1,58 @@
+set datafile separator ',';
+set terminal png size 1300,975 enhanced font "Helvetica,16" truecolor
+set output 'exponential_scaling_all.png';
+
+set title "Error Scaling of Bulirsch-Stoer Algorithm";
+set autoscale;
+set xrange [0:8];
+set yrange [-24.0:0.0];
+set xlabel "log(Number of Steps)";
+set ylabel "log(Absolute Error)";
+set pointsize 1.1;
+set style fill transparent solid 0.5
+
+# 2nd order plot
+a_2 = 1;
+b_2 = 0;
+f_2(x) = a_2*x + b_2;
+fit f_2(x) "<(sed -n '1,500p' exponential_scaling_2ndOrder.csv)" using (log($1)):(log($2)) via a_2,b_2;
+ti_2 = sprintf("= %.2fx+%.2f", a_2, b_2);
+
+# 4th order plot
+a_4 = 1;
+b_4 = 0;
+f_4(x) = a_4*x + b_4;
+fit f_4(x) "<(sed -n '1,500p' exponential_scaling_4thOrder.csv)" using (log($1)):(log($2)) via a_4,b_4;
+ti_4 = sprintf("= %.2fx+%.2f", a_4, b_4);
+
+# 6th order plot
+a_6 = 1;
+b_6 = 0;
+f_6(x) = a_6*x + b_6;
+fit f_6(x) "<(sed -n '1,300p' exponential_scaling_6thOrder.csv)" using (log($1)):(log($2)) via a_6,b_6;
+ti_6 = sprintf("= %.2fx+%.2f", a_6, b_6);
+
+# 8th order plot
+a_8 = 1;
+b_8 = 0;
+f_8(x) = a_8*x + b_8;
+fit f_8(x) "<(sed -n '1,70p' exponential_scaling_8thOrder.csv)" using (log($1)):(log($2)) via a_8,b_8;
+ti_8 = sprintf("= %.2fx+%.2f", a_8, b_8);
+
+# 10th order plot
+a_10 = 1;
+b_10 = 0;
+f_10(x) = a_10*x + b_10;
+fit f_10(x) "<(sed -n '1,25p' exponential_scaling_10thOrder.csv)" using (log($1)):(log($2)) via a_10,b_10;
+ti_10 = sprintf("= %.2fx+%.2f", a_10, b_10);
+
+plot "exponential_scaling_2ndOrder.csv" using (log($1)):(log($2)) title "Fixed Order (2) Bulirsch-Stoer Error" pt 3 lt rgb "#CC4400" with points, \
+     f_2(x) lw 2 lt rgb "#BB2200" title ti_2, \
+     "exponential_scaling_4thOrder.csv" using (log($1)):(log($2)) title "Fixed Order (4) Bulirsch-Stoer Error" pt 3 lt rgb "#99CC33" with points, \
+     f_4(x) lw 2 lt rgb "#669900" title ti_4, \
+     "exponential_scaling_6thOrder.csv" using (log($1)):(log($2)) title "Fixed Order (6) Bulirsch-Stoer Error" pt 3 lt rgb "#33CCCC" with points, \
+     f_6(x) lw 2 lt rgb "#006666" title ti_6, \
+     "exponential_scaling_8thOrder.csv" using (log($1)):(log($2)) title "Fixed Order (8) Bulirsch-Stoer Error" pt 3 lt rgb "#FF9933" with points, \
+     f_8(x) lw 2 lt rgb "#996600" title ti_8, \
+     "exponential_scaling_10thOrder.csv" using (log($1)):(log($2)) title "Fixed Order (10) Bulirsch-Stoer Error" pt 3 lt rgb "#FF6699" with points, \
+     f_10(x) lw 2 lt rgb "#CC0066" title ti_10
\ No newline at end of file
diff --git a/testsuite/integrators/richardson_extrapolation/error_scaling/plot_error_data.py b/testsuite/integrators/richardson_extrapolation/error_scaling/plot_error_data.py
new file mode 100644
index 0000000..9d0777d
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/error_scaling/plot_error_data.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+from xpdeint.XSILFile import XSILFile
+
+def firstElementOrNone(enumerable):
+  for element in enumerable:
+    return element
+  return None
+
+def writeToFile(filename, steps, err_y):
+   f = open(filename, 'w')
+
+   for i in range(len(steps)):
+      f.write(("%1.1f" % steps[i]) + "," + ("%.12e" % err_y[i]) + "\n")
+
+   f.close() 
+
+xsilFile_2ndOrder = XSILFile("exponential_scaling_2ndOrder_expected.xsil")
+xsilFile_4thOrder = XSILFile("exponential_scaling_4thOrder_expected.xsil")
+xsilFile_6thOrder = XSILFile("exponential_scaling_6thOrder_expected.xsil")
+xsilFile_8thOrder = XSILFile("exponential_scaling_8thOrder_expected.xsil")
+xsilFile_10thOrder = XSILFile("exponential_scaling_10thOrder_expected.xsil")
+
+steps_2ndOrder = firstElementOrNone(_["array"] for _ in xsilFile_2ndOrder.xsilObjects[0].dependentVariables if _["name"] == "stepsR")
+err_y_2ndOrder = firstElementOrNone(_["array"] for _ in xsilFile_2ndOrder.xsilObjects[0].dependentVariables if _["name"] == "err_yR")
+
+steps_4thOrder = firstElementOrNone(_["array"] for _ in xsilFile_4thOrder.xsilObjects[0].dependentVariables if _["name"] == "stepsR")
+err_y_4thOrder = firstElementOrNone(_["array"] for _ in xsilFile_4thOrder.xsilObjects[0].dependentVariables if _["name"] == "err_yR")
+
+steps_6thOrder = firstElementOrNone(_["array"] for _ in xsilFile_6thOrder.xsilObjects[0].dependentVariables if _["name"] == "stepsR")
+err_y_6thOrder = firstElementOrNone(_["array"] for _ in xsilFile_6thOrder.xsilObjects[0].dependentVariables if _["name"] == "err_yR")
+
+steps_8thOrder = firstElementOrNone(_["array"] for _ in xsilFile_8thOrder.xsilObjects[0].dependentVariables if _["name"] == "stepsR")
+err_y_8thOrder = firstElementOrNone(_["array"] for _ in xsilFile_8thOrder.xsilObjects[0].dependentVariables if _["name"] == "err_yR")
+
+steps_10thOrder = firstElementOrNone(_["array"] for _ in xsilFile_10thOrder.xsilObjects[0].dependentVariables if _["name"] == "stepsR")
+err_y_10thOrder = firstElementOrNone(_["array"] for _ in xsilFile_10thOrder.xsilObjects[0].dependentVariables if _["name"] == "err_yR")
+
+writeToFile("exponential_scaling_2ndOrder.csv", steps_2ndOrder, err_y_2ndOrder)
+writeToFile("exponential_scaling_4thOrder.csv", steps_4thOrder, err_y_4thOrder)
+writeToFile("exponential_scaling_6thOrder.csv", steps_6thOrder, err_y_6thOrder)
+writeToFile("exponential_scaling_8thOrder.csv", steps_8thOrder, err_y_8thOrder)
+writeToFile("exponential_scaling_10thOrder.csv", steps_10thOrder, err_y_10thOrder)
+
+from subprocess import call
+
+call(["gnuplot", "logplotall.gp"])
diff --git a/examples/bessel_transform2.xmds b/testsuite/integrators/richardson_extrapolation/vibstring_mm.xmds
similarity index 64%
copy from examples/bessel_transform2.xmds
copy to testsuite/integrators/richardson_extrapolation/vibstring_mm.xmds
index c0ba5b6..498be91 100644
--- a/examples/bessel_transform2.xmds
+++ b/testsuite/integrators/richardson_extrapolation/vibstring_mm.xmds
@@ -1,17 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>bessel_transform2</name>
-  <author>Graham Dennis</author>
+  
+  <testing>
+    <xsil_file name="vibstring_mm.xsil" expected="vibstring_mm_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+      <moment_group number="2" absolute_tolerance="1e-3" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+  
+  <name>vibstring_mm</name>
+  <author>Emily McAlister and Graham Dennis</author>
   <description>
-    Solve the wave equation on a disk of radius 1 utilising cylindrical symmetry
-    by using the Bessel function transform.
+    Vibrating string
   </description>
   
   <features>
     <benchmark />
-    <!-- <error_check /> -->
     <bing />
-    <validation kind="run-time" />
+    <fftw plan="estimate" />
     <globals>
       <![CDATA[
       const real T = 10.0;
@@ -25,8 +31,7 @@
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <!-- Volume prefactor = 2 \pi is to cover the suppressed integration over \theta -->
-      <dimension name="x" lattice="100"  domain="(0, 1)" transform="bessel" order="3" volume_prefactor="2.0*M_PI"/>
+      <dimension name="x" lattice="100"  domain="(0, 1)" />
     </transverse_dimensions>
   </geometry>
   
@@ -36,17 +41,17 @@
     </components>
     <initialisation>
       <![CDATA[
-        u = exp(-100.0*(x-0.25)*(x-0.25));
+        u = exp(-100.0*(x-0.5)*(x-0.5));
         uDot = 0.0;
       ]]>
     </initialisation>
   </vector>
   
   <sequence>
-    <integrate algorithm="ARK45" tolerance="1e-6" interval="40e-3" steps="400">
-      <samples>100 100</samples>
+    <integrate algorithm="MM" interval="2e-3" steps="100">
+      <samples>50 50</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="kx" type="real">
+        <operator kind="ex" constant="yes">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
@@ -60,7 +65,7 @@
       </operators>
     </integrate>
   </sequence>
-  <output>
+  <output format="binary">
       <sampling_group basis="x" initial_sample="yes">
         <moments>amp</moments>
         <dependencies>main</dependencies>
@@ -68,12 +73,12 @@
           amp = u.Re();
         ]]>
       </sampling_group>
-      <sampling_group basis="kx" initial_sample="no">
+      <sampling_group basis="kx(50)" initial_sample="no">
         <moments>amp</moments>
         <dependencies>main</dependencies>
         <![CDATA[
           amp = u.Re();
-        
+
         ]]>
       </sampling_group>
   </output>
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected.xsil b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected.xsil
new file mode 100644
index 0000000..bd7b11e
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected.xsil
@@ -0,0 +1,125 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="vibstring_mm_expected.xsil" name="vibstring_mm.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+      <moment_group absolute_tolerance="1e-3" number="2" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+  
+  <name>vibstring_mm</name>
+  <author>Emily McAlister</author>
+  <description>
+    Vibrating string
+  </description>
+  
+  <features>
+    <benchmark/>
+    <bing/>
+    <fftw plan="estimate"/>
+    <globals>
+      <![CDATA[
+      const real T = 10.0;
+      const real mass = 1e-3;
+      const real length = 1.0;
+      const real mu = mass/length;
+      ]]>
+    </globals>
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension domain="(0, 1)" lattice="100" name="x"/>
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector initial_basis="x" name="main" type="complex">
+    <components>
+      u uDot
+    </components>
+    <initialisation>
+      <![CDATA[
+        u = exp(-100.0*(x-0.5)*(x-0.5));
+        uDot = 0.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    <integrate algorithm="MM" interval="2e-3" steps="100">
+      <samples>50 50</samples>
+      <operators>
+        <operator constant="yes" kind="ex">
+          <operator_names>L</operator_names>
+          <![CDATA[
+            L = -T*kx*kx/mu;
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          du_dt = uDot;
+          duDot_dt = L[u];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  <output format="binary">
+      <sampling_group basis="x" initial_sample="yes">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+        ]]>
+      </sampling_group>
+      <sampling_group basis="kx(50)" initial_sample="no">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+
+        ]]>
+      </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t x amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>51</Dim>
+    <Dim>100</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Binary" UnsignedLong="uint32" precision="double" Type="Remote" Encoding="LittleEndian"/>
+vibstring_mm_expected_mg0.dat
+    </Stream>
+  </Array>
+</XSIL>
+
+<XSIL Name="moment_group_2">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t kx amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>50</Dim>
+    <Dim>50</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Binary" UnsignedLong="uint32" precision="double" Type="Remote" Encoding="LittleEndian"/>
+vibstring_mm_expected_mg1.dat
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg0.dat b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg0.dat
new file mode 100755
index 0000000..92bacb5
Binary files /dev/null and b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg0.dat differ
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg1.dat b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg1.dat
new file mode 100755
index 0000000..00bdf08
Binary files /dev/null and b/testsuite/integrators/richardson_extrapolation/vibstring_mm_expected_mg1.dat differ
diff --git a/examples/vibstring_dct.xmds b/testsuite/integrators/richardson_extrapolation/vibstring_re.xmds
similarity index 63%
copy from examples/vibstring_dct.xmds
copy to testsuite/integrators/richardson_extrapolation/vibstring_re.xmds
index 1bb89bb..159f105 100644
--- a/examples/vibstring_dct.xmds
+++ b/testsuite/integrators/richardson_extrapolation/vibstring_re.xmds
@@ -1,17 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>vibstring_dct</name>
-  <author>Graham Dennis</author>
+  
+  <testing>
+    <xsil_file name="vibstring_re.xsil" expected="vibstring_re_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5">
+      <moment_group number="1" absolute_tolerance="1e-7" relative_tolerance="1e-6" />
+      <moment_group number="2" absolute_tolerance="1e-3" relative_tolerance="1e-6" />
+    </xsil_file>
+  </testing>
+  
+  <name>vibstring_re</name>
+  <author>Emily McAlister and Graham Dennis</author>
   <description>
-    Vibrating string using a Discrete Cosine transform (i.e. even boundary conditions on both sides)
+    Vibrating string - Test for Richardson Extrapolation
   </description>
   
   <features>
     <benchmark />
-    <error_check />
     <bing />
     <fftw plan="estimate" />
-
     <globals>
       <![CDATA[
       const real T = 10.0;
@@ -25,11 +31,11 @@
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="x" lattice="50"  domain="(0.5, 1.0)" transform="dct"/>
+      <dimension name="x" lattice="100"  domain="(0, 1)" />
     </transverse_dimensions>
   </geometry>
   
-  <vector name="main" initial_basis="x" type="real">
+  <vector name="main" initial_basis="x" type="complex">
     <components>
       u uDot
     </components>
@@ -42,17 +48,8 @@
   </vector>
   
   <sequence>
-    <integrate algorithm="RK4" interval="2e-3" steps="100">
+    <integrate algorithm="REMM" interval="2e-3" steps="100">
       <samples>50 50</samples>
-      <computed_vector name="moment_creator" dimensions="" type="real">
-        <components>moment</components>
-        <evaluation>
-          <dependencies basis="kx"> main </dependencies>
-          <![CDATA[
-            moment = mod2(u);
-          ]]>
-        </evaluation>
-      </computed_vector>
       <operators>
         <operator kind="ex" constant="yes">
           <operator_names>L</operator_names>
@@ -61,29 +58,27 @@
           ]]>
         </operator>
         <integration_vectors>main</integration_vectors>
-        <dependencies>moment_creator</dependencies>
         <![CDATA[
           du_dt = uDot;
           duDot_dt = L[u];
-          moment;
         ]]>
       </operators>
     </integrate>
   </sequence>
-  <output>
-      <sampling_group basis="x(50)" initial_sample="yes">
+  <output format="binary">
+      <sampling_group basis="x" initial_sample="yes">
         <moments>amp</moments>
         <dependencies>main</dependencies>
         <![CDATA[
-          amp = u;
+          amp = u.Re();
         ]]>
       </sampling_group>
       <sampling_group basis="kx(50)" initial_sample="no">
         <moments>amp</moments>
         <dependencies>main</dependencies>
         <![CDATA[
-          amp = u;
-        
+          amp = u.Re();
+
         ]]>
       </sampling_group>
   </output>
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_re_expected.xsil b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected.xsil
new file mode 100644
index 0000000..4e714ac
--- /dev/null
+++ b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected.xsil
@@ -0,0 +1,125 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="vibstring_re_expected.xsil" name="vibstring_re.xsil" relative_tolerance="1e-5">
+      <moment_group absolute_tolerance="1e-7" number="1" relative_tolerance="1e-6"/>
+      <moment_group absolute_tolerance="1e-3" number="2" relative_tolerance="1e-6"/>
+    </xsil_file>
+  </testing>
+  
+  <name>vibstring_re</name>
+  <author>Emily McAlister and Graham Dennis</author>
+  <description>
+    Vibrating string - Test for Richardson Extrapolation
+  </description>
+  
+  <features>
+    <benchmark/>
+    <bing/>
+    <fftw plan="estimate"/>
+    <globals>
+      <![CDATA[
+      const real T = 10.0;
+      const real mass = 1e-3;
+      const real length = 1.0;
+      const real mu = mass/length;
+      ]]>
+    </globals>
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension domain="(0, 1)" lattice="100" name="x"/>
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector initial_basis="x" name="main" type="complex">
+    <components>
+      u uDot
+    </components>
+    <initialisation>
+      <![CDATA[
+        u = exp(-100.0*(x-0.5)*(x-0.5));
+        uDot = 0.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    <integrate algorithm="REMM" interval="2e-3" steps="100">
+      <samples>50 50</samples>
+      <operators>
+        <operator constant="yes" kind="ex">
+          <operator_names>L</operator_names>
+          <![CDATA[
+            L = -T*kx*kx/mu;
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          du_dt = uDot;
+          duDot_dt = L[u];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  <output format="binary">
+      <sampling_group basis="x" initial_sample="yes">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+        ]]>
+      </sampling_group>
+      <sampling_group basis="kx(50)" initial_sample="no">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+
+        ]]>
+      </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t x amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>51</Dim>
+    <Dim>100</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Binary" UnsignedLong="uint64" precision="double" Type="Remote" Encoding="LittleEndian"/>
+vibstring_re_expected_mg0.dat
+    </Stream>
+  </Array>
+</XSIL>
+
+<XSIL Name="moment_group_2">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t kx amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>50</Dim>
+    <Dim>50</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Binary" UnsignedLong="uint64" precision="double" Type="Remote" Encoding="LittleEndian"/>
+vibstring_re_expected_mg1.dat
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg0.dat b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg0.dat
new file mode 100644
index 0000000..9319da6
Binary files /dev/null and b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg0.dat differ
diff --git a/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg1.dat b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg1.dat
new file mode 100644
index 0000000..94ce96f
Binary files /dev/null and b/testsuite/integrators/richardson_extrapolation/vibstring_re_expected_mg1.dat differ
diff --git a/testsuite/mpi/kubo_mpi_paths.xmds b/testsuite/mpi/kubo_adaptive_mpi_paths.xmds
similarity index 77%
copy from testsuite/mpi/kubo_mpi_paths.xmds
copy to testsuite/mpi/kubo_adaptive_mpi_paths.xmds
index f0c0fad..b32487e 100644
--- a/testsuite/mpi/kubo_mpi_paths.xmds
+++ b/testsuite/mpi/kubo_adaptive_mpi_paths.xmds
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
   <testing>
-    <command_line>mpirun -n 2 ./kubo_mpi_paths</command_line>
-    <xsil_file name="kubo_mpi_paths.xsil" expected="kubo_mpi_paths_expected.xsil" absolute_tolerance="4e-2" relative_tolerance="4e-2" />
+    <command_line>mpirun -n 2 ./kubo_adaptive_mpi_paths</command_line>
+    <xsil_file name="kubo_adaptive_mpi_paths.xsil" expected="kubo_mpi_paths_expected.xsil" absolute_tolerance="4e-2" relative_tolerance="4e-2" />
   </testing>
   
-  <name>kubo_mpi_paths</name>
+  <name>kubo_adaptive_mpi_paths</name>
   <author>Graham Dennis / Michael Hush</author>
   <description>
     Example Kubo oscillator simulation 
@@ -15,10 +15,10 @@
     <propagation_dimension> t </propagation_dimension>
   </geometry>
   
-  <driver name="mpi-multi-path" paths="10000" />
+  <driver name="adaptive-mpi-multi-path" paths="10000" />
   
   <vector name="main">
-    <components type="complex">
+    <components>
       z
     </components>
     <initialisation>
diff --git a/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.dat b/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.dat
index a21a25b..559a995 100644
Binary files a/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.dat and b/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.dat differ
diff --git a/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.xsil b/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.xsil
index b1a5114..53ad37a 100644
--- a/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.xsil
+++ b/testsuite/mpi/kubo_integer_dimensions_mpi_break_expected.xsil
@@ -1,9 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<simulation xmds-version="2">
+<?xml version="1.0" ?><simulation xmds-version="2">
   <testing>
     <command_line>mpirun -n 2 ./kubo_integer_dimensions_mpi</command_line>
-    <xsil_file name="kubo_integer_dimensions_mpi.xsil" expected="kubo_integer_dimensions_mpi_expected.xsil" absolute_tolerance="5e-2" relative_tolerance="1e-1" />
-    <xsil_file name="kubo_integer_dimensions_mpi_break.xsil" expected="kubo_integer_dimensions_mpi_break_expected.xsil" absolute_tolerance="5e-2" relative_tolerance="1e-1" />
+    <xsil_file absolute_tolerance="5e-2" expected="kubo_integer_dimensions_mpi_expected.xsil" name="kubo_integer_dimensions_mpi.xsil" relative_tolerance="1e-1"/>
+    <xsil_file absolute_tolerance="5e-2" expected="kubo_integer_dimensions_mpi_break_expected.xsil" name="kubo_integer_dimensions_mpi_break.xsil" relative_tolerance="1e-1"/>
   </testing>
   
   <name>kubo_integer_dimensions_mpi</name>
@@ -15,37 +14,33 @@
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="j" type="integer" lattice="1024" domain="(1, 1024)" />
+      <dimension domain="(1, 1024)" lattice="1024" name="j" type="integer"/>
     </transverse_dimensions>
   </geometry>
   
-  <driver name="distributed-mpi" />
-  
-  <features>
-    <benchmark />
-    <bing />
-    <stochastic>
-      <noise kind="gaussian" prefix="n" num="1" seed="157 9348 234"/>
-      <!-- If there is no seed attribute then seeds will be chosen randomly at run-time -->
-    </stochastic>
-  </features>
+  <driver name="distributed-mpi"/>
   
   <vector name="main" type="complex">
     <components>
       z
     </components>
-    <initialisation noises="">
+    <initialisation>
       <![CDATA[
         z = 1.0;
       ]]>
     </initialisation>
   </vector>
   
+  <noise_vector kind="wiener" name="noise" seed="157 9348 234" type="real">
+    <components>n_1</components>
+  </noise_vector>
+  
   <sequence>
     <integrate algorithm="RK9" interval="10" steps="1000" tolerance="1e-8">
       <samples>500 10</samples>
-      <operators noises="n">
+      <operators>
         <integration_vectors>main</integration_vectors>
+        <dependencies>noise</dependencies>
         <![CDATA[
           dz_dt(j => j) = i*z*n_1;
         ]]>
diff --git a/testsuite/mpi/kubo_integer_dimensions_mpi_expected.xsil b/testsuite/mpi/kubo_integer_dimensions_mpi_expected.xsil
index 9516d32..6b5186b 100644
--- a/testsuite/mpi/kubo_integer_dimensions_mpi_expected.xsil
+++ b/testsuite/mpi/kubo_integer_dimensions_mpi_expected.xsil
@@ -1,9 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<simulation xmds-version="2">
+<?xml version="1.0" ?><simulation xmds-version="2">
   <testing>
     <command_line>mpirun -n 2 ./kubo_integer_dimensions_mpi</command_line>
-    <xsil_file name="kubo_integer_dimensions_mpi.xsil" expected="kubo_integer_dimensions_mpi_expected.xsil" absolute_tolerance="5e-2" relative_tolerance="1e-1" />
-    <xsil_file name="kubo_integer_dimensions_mpi_break.xsil" expected="kubo_integer_dimensions_mpi_break_expected.xsil" absolute_tolerance="5e-2" relative_tolerance="1e-1" />
+    <xsil_file absolute_tolerance="5e-2" expected="kubo_integer_dimensions_mpi_expected.xsil" name="kubo_integer_dimensions_mpi.xsil" relative_tolerance="1e-1"/>
+    <xsil_file absolute_tolerance="5e-2" expected="kubo_integer_dimensions_mpi_break_expected.xsil" name="kubo_integer_dimensions_mpi_break.xsil" relative_tolerance="1e-1"/>
   </testing>
   
   <name>kubo_integer_dimensions_mpi</name>
@@ -15,37 +14,33 @@
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="j" type="integer" lattice="1024" domain="(1, 1024)" />
+      <dimension domain="(1, 1024)" lattice="1024" name="j" type="integer"/>
     </transverse_dimensions>
   </geometry>
   
-  <driver name="distributed-mpi" />
-  
-  <features>
-    <benchmark />
-    <bing />
-    <stochastic>
-      <noise kind="gaussian" prefix="n" num="1" seed="157 9348 234"/>
-      <!-- If there is no seed attribute then seeds will be chosen randomly at run-time -->
-    </stochastic>
-  </features>
+  <driver name="distributed-mpi"/>
   
   <vector name="main" type="complex">
     <components>
       z
     </components>
-    <initialisation noises="">
+    <initialisation>
       <![CDATA[
         z = 1.0;
       ]]>
     </initialisation>
   </vector>
   
+  <noise_vector kind="wiener" name="noise" seed="157 9348 234" type="real">
+    <components>n_1</components>
+  </noise_vector>
+  
   <sequence>
     <integrate algorithm="RK9" interval="10" steps="1000" tolerance="1e-8">
       <samples>500 10</samples>
-      <operators noises="n">
+      <operators>
         <integration_vectors>main</integration_vectors>
+        <dependencies>noise</dependencies>
         <![CDATA[
           dz_dt(j => j) = i*z*n_1;
         ]]>
diff --git a/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg0.dat b/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg0.dat
index 2244856..1d9260a 100644
Binary files a/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg0.dat and b/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg0.dat differ
diff --git a/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg1.dat b/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg1.dat
index ed97370..423cb19 100644
Binary files a/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg1.dat and b/testsuite/mpi/kubo_integer_dimensions_mpi_expected_mg1.dat differ
diff --git a/testsuite/mpi/kubo_mpi_paths.xmds b/testsuite/mpi/kubo_mpi_paths.xmds
index f0c0fad..7b406b5 100644
--- a/testsuite/mpi/kubo_mpi_paths.xmds
+++ b/testsuite/mpi/kubo_mpi_paths.xmds
@@ -18,7 +18,7 @@
   <driver name="mpi-multi-path" paths="10000" />
   
   <vector name="main">
-    <components type="complex">
+    <components>
       z
     </components>
     <initialisation>
diff --git a/examples/diffusion_openmp.xmds b/testsuite/operators/constant_complex_ip_2d.xmds
similarity index 57%
copy from examples/diffusion_openmp.xmds
copy to testsuite/operators/constant_complex_ip_2d.xmds
index 710153b..618abc1 100644
--- a/examples/diffusion_openmp.xmds
+++ b/testsuite/operators/constant_complex_ip_2d.xmds
@@ -1,24 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>diffusion_mpi</name>
+  <testing>
+    <xsil_file name="constant_complex_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>constant_complex_ip_2d</name>
   <author>Graham Dennis</author>
   <description>
-    Simple one-dimensional diffusion with a pointless second dimension thrown in for fun
+    Simple two-dimensional diffusion using the IP operator (of complex type)
   </description>
   
   <features>
     <benchmark />
-    <!-- <error_check /> -->
     <bing />
-    <fftw plan="measure" threads="4" />
-    <openmp />
+    <fftw plan="estimate" />
   </features>
   
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="y" lattice="128" domain="(-1.0, 1.0)" />
-      <dimension name="x" lattice="256"  domain="(-10.0, 10.0)" />
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
     </transverse_dimensions>
   </geometry>
   
@@ -28,19 +30,19 @@
     </components>
     <initialisation>
       <![CDATA[
-        phi = exp(-y*y);
+        phi = exp(-y*y - 0.5*x*x);
       ]]>
     </initialisation>
   </vector>
   
   <sequence>
-    <integrate algorithm="RK9" interval="10.0" steps="2400" tolerance="1e-5">
-      <samples>24 4</samples>
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
+      <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" constant="yes" type="complex">
           <operator_names>L</operator_names>
           <![CDATA[
-            L = -0.02*ky*ky;
+            L = -0.02*(ky*ky + kx*kx);
           ]]>
         </operator>
         <integration_vectors>main</integration_vectors>
@@ -51,14 +53,7 @@
     </integrate>
   </sequence>
   
-  <output>
-      <sampling_group basis="y x(0)" initial_sample="yes">
-        <moments>dens</moments>
-        <dependencies>main</dependencies>
-        <![CDATA[
-          dens = mod2(phi);
-        ]]>
-      </sampling_group>
+  <output format="binary">
       <sampling_group basis="y x" initial_sample="yes">
         <moments>dens</moments>
         <dependencies>main</dependencies>
@@ -67,4 +62,4 @@
         ]]>
       </sampling_group>
   </output>
-</simulation>
+</simulation>
\ No newline at end of file
diff --git a/testsuite/operators/constant_complex_separated_ip_2d.xmds b/testsuite/operators/constant_complex_separated_ip_2d.xmds
new file mode 100644
index 0000000..ac9c99f
--- /dev/null
+++ b/testsuite/operators/constant_complex_separated_ip_2d.xmds
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <testing>
+    <xsil_file name="constant_complex_separated_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>constant_complex_separated_ip_2d</name>
+  <author>Graham Dennis</author>
+  <description>
+    Simple two-dimensional diffusion using the IP operator (of complex type)
+  </description>
+  
+  <features>
+    <benchmark />
+    <bing />
+    <fftw plan="estimate" />
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector name="main" initial_basis="x y" type="complex">
+    <components>
+      phi
+    </components>
+    <initialisation>
+      <![CDATA[
+        phi = exp(-y*y - 0.5*x*x);
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
+      <samples>24</samples>
+      <operators>
+        <operator kind="ip" constant="yes" type="complex" dimensions="x">
+          <operator_names>Lx</operator_names>
+          <![CDATA[
+          Lx = -0.02*(kx*kx);
+          ]]>
+        </operator>
+        <operator kind="ip" constant="yes" type="complex" dimensions="y">
+          <operator_names>Ly</operator_names>
+          <![CDATA[
+          Ly = -0.02*(ky*ky);
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          dphi_dt = Lx[phi] + Ly[phi];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  
+  <output format="binary">
+      <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          dens = mod2(phi);
+        ]]>
+      </sampling_group>
+  </output>
+</simulation>
\ No newline at end of file
diff --git a/examples/diffusion.xmds b/testsuite/operators/constant_real_ip_2d.xmds
similarity index 56%
copy from examples/diffusion.xmds
copy to testsuite/operators/constant_real_ip_2d.xmds
index 749e3e3..02bfdd9 100644
--- a/examples/diffusion.xmds
+++ b/testsuite/operators/constant_real_ip_2d.xmds
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>diffusion</name>
+  <testing>
+    <xsil_file name="constant_real_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>constant_real_ip_2d</name>
   <author>Graham Dennis</author>
   <description>
-    Simple one-dimensional diffusion with a pointless second dimension thrown in for fun
+    Simple two-dimensional diffusion using the IP operator (of real type)
   </description>
   
   <features>
     <benchmark />
-    <error_check />
     <bing />
-    <fftw plan="exhaustive" />
+    <fftw plan="estimate" />
   </features>
   
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="x" lattice="32"  domain="(-10.0, 10.0)" />
-      <dimension name="y" lattice="128" domain="(-1.0, 1.0)" />
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
     </transverse_dimensions>
   </geometry>
   
@@ -27,19 +30,19 @@
     </components>
     <initialisation>
       <![CDATA[
-        phi = exp(-y*y);
+      phi = exp(-y*y - 0.5*x*x);
       ]]>
     </initialisation>
   </vector>
   
   <sequence>
-    <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" constant="yes" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
-            L = -0.02*ky*ky;
+          L = -0.02*(ky*ky + kx*kx);
           ]]>
         </operator>
         <integration_vectors>main</integration_vectors>
@@ -50,14 +53,13 @@
     </integrate>
   </sequence>
   
-  <output>
-      <sampling_group basis="x(4) y(8)" initial_sample="yes">
-        <moments>dens empty</moments>
+  <output format="binary">
+    <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
         <dependencies>main</dependencies>
         <![CDATA[
           dens = mod2(phi);
-          empty = x+100*y;
         ]]>
       </sampling_group>
   </output>
-</simulation>
+</simulation>
\ No newline at end of file
diff --git a/testsuite/operators/derivative_2d_expected.xsil b/testsuite/operators/derivative_2d_expected.xsil
new file mode 100644
index 0000000..314ba0b
--- /dev/null
+++ b/testsuite/operators/derivative_2d_expected.xsil
@@ -0,0 +1,88 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <testing>
+    <xsil_file absolute_tolerance="1e-7" expected="derivative_2d_expected.xsil" name="constant_complex_ip_2d.xsil" relative_tolerance="1e-5"/>
+  </testing>
+  
+  <name>constant_complex_ip_2d</name>
+  <author>Graham Dennis</author>
+  <description>
+    Simple two-dimensional diffusion using the IP operator (of complex type)
+  </description>
+  
+  <features>
+    <benchmark/>
+    <bing/>
+    <fftw plan="estimate"/>
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension domain="(-1.0, 1.0)" lattice="32" name="y"/>
+      <dimension domain="(-1.0, 1.0)" lattice="32" name="x"/>
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector initial_basis="x y" name="main" type="complex">
+    <components>
+      phi
+    </components>
+    <initialisation>
+      <![CDATA[
+        phi = exp(-y*y - 0.5*x*x);
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
+      <samples>24</samples>
+      <operators>
+        <operator constant="yes" kind="ip" type="complex">
+          <operator_names>L</operator_names>
+          <![CDATA[
+            L = -0.02*(ky*ky + kx*kx);
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          dphi_dt = L[phi];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  
+  <output format="binary">
+      <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          dens = mod2(phi);
+        ]]>
+      </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">3</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>4</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t y x dens 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>25</Dim>
+    <Dim>32</Dim>
+    <Dim>32</Dim>
+    <Dim>4</Dim>
+    <Stream><Metalink Format="Binary" UnsignedLong="uint64" precision="double" Type="Remote" Encoding="LittleEndian"/>
+derivative_2d_expected_mg0.dat
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/testsuite/operators/derivative_2d_expected_mg0.dat b/testsuite/operators/derivative_2d_expected_mg0.dat
new file mode 100644
index 0000000..c27529f
Binary files /dev/null and b/testsuite/operators/derivative_2d_expected_mg0.dat differ
diff --git a/examples/diffusion.xmds b/testsuite/operators/nonconstant_complex_ip_2d.xmds
similarity index 55%
copy from examples/diffusion.xmds
copy to testsuite/operators/nonconstant_complex_ip_2d.xmds
index 749e3e3..0acc744 100644
--- a/examples/diffusion.xmds
+++ b/testsuite/operators/nonconstant_complex_ip_2d.xmds
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>diffusion</name>
+  <testing>
+    <xsil_file name="nonconstant_complex_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>nonconstant_complex_ip_2d</name>
   <author>Graham Dennis</author>
   <description>
-    Simple one-dimensional diffusion with a pointless second dimension thrown in for fun
+    Simple one-dimensional diffusion using the IP operator (of complex type)
   </description>
   
   <features>
     <benchmark />
-    <error_check />
     <bing />
-    <fftw plan="exhaustive" />
+    <fftw plan="estimate" />
   </features>
   
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="x" lattice="32"  domain="(-10.0, 10.0)" />
-      <dimension name="y" lattice="128" domain="(-1.0, 1.0)" />
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
     </transverse_dimensions>
   </geometry>
   
@@ -27,19 +30,19 @@
     </components>
     <initialisation>
       <![CDATA[
-        phi = exp(-y*y);
+      phi = exp(-y*y - 0.5*x*x);
       ]]>
     </initialisation>
   </vector>
   
   <sequence>
-    <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" constant="no" type="complex">
           <operator_names>L</operator_names>
           <![CDATA[
-            L = -0.02*ky*ky;
+          L = -0.02*(ky*ky + kx*kx);
           ]]>
         </operator>
         <integration_vectors>main</integration_vectors>
@@ -50,14 +53,13 @@
     </integrate>
   </sequence>
   
-  <output>
-      <sampling_group basis="x(4) y(8)" initial_sample="yes">
-        <moments>dens empty</moments>
+  <output format="binary">
+    <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
         <dependencies>main</dependencies>
         <![CDATA[
           dens = mod2(phi);
-          empty = x+100*y;
         ]]>
       </sampling_group>
   </output>
-</simulation>
+</simulation>
\ No newline at end of file
diff --git a/testsuite/operators/nonconstant_complex_separated_ip_2d.xmds b/testsuite/operators/nonconstant_complex_separated_ip_2d.xmds
new file mode 100644
index 0000000..79201ae
--- /dev/null
+++ b/testsuite/operators/nonconstant_complex_separated_ip_2d.xmds
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+  <testing>
+    <xsil_file name="nonconstant_complex_separated_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>nonconstant_complex_separated_ip_2d</name>
+  <author>Graham Dennis</author>
+  <description>
+    Simple one-dimensional diffusion using the IP operator (of complex type)
+  </description>
+  
+  <features>
+    <benchmark />
+    <bing />
+    <fftw plan="estimate" />
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector name="main" initial_basis="x y" type="complex">
+    <components>
+      phi
+    </components>
+    <initialisation>
+      <![CDATA[
+      phi = exp(-y*y - 0.5*x*x);
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
+      <samples>24</samples>
+      <operators>
+        <operator kind="ip" constant="no" type="complex" dimensions="x">
+          <operator_names>Lx</operator_names>
+          <![CDATA[
+          Lx = -0.02*(kx*kx);
+          ]]>
+        </operator>
+        <operator kind="ip" constant="no" type="complex" dimensions="y">
+          <operator_names>Ly</operator_names>
+          <![CDATA[
+          Ly = -0.02*(ky*ky);
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          dphi_dt = Lx[phi] + Ly[phi];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  
+  <output format="binary">
+    <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          dens = mod2(phi);
+        ]]>
+      </sampling_group>
+  </output>
+</simulation>
\ No newline at end of file
diff --git a/examples/diffusion.xmds b/testsuite/operators/nonconstant_real_ip_2d.xmds
similarity index 56%
copy from examples/diffusion.xmds
copy to testsuite/operators/nonconstant_real_ip_2d.xmds
index 749e3e3..3081c64 100644
--- a/examples/diffusion.xmds
+++ b/testsuite/operators/nonconstant_real_ip_2d.xmds
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>diffusion</name>
+  <testing>
+    <xsil_file name="nonconstant_real_ip_2d.xsil" expected="derivative_2d_expected.xsil" absolute_tolerance="1e-7" relative_tolerance="1e-5" />
+  </testing>
+  
+  <name>nonconstant_real_ip_2d</name>
   <author>Graham Dennis</author>
   <description>
-    Simple one-dimensional diffusion with a pointless second dimension thrown in for fun
+    Simple one-dimensional diffusion using the IP operator (of double type)
   </description>
   
   <features>
     <benchmark />
-    <error_check />
     <bing />
-    <fftw plan="exhaustive" />
+    <fftw plan="estimate" />
   </features>
   
   <geometry>
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
-      <dimension name="x" lattice="32"  domain="(-10.0, 10.0)" />
-      <dimension name="y" lattice="128" domain="(-1.0, 1.0)" />
+      <dimension name="y" lattice="32" domain="(-1.0, 1.0)" />
+      <dimension name="x" lattice="32" domain="(-1.0, 1.0)" />
     </transverse_dimensions>
   </geometry>
   
@@ -27,19 +30,19 @@
     </components>
     <initialisation>
       <![CDATA[
-        phi = exp(-y*y);
+      phi = exp(-y*y - 0.5*x*x);
       ]]>
     </initialisation>
   </vector>
   
   <sequence>
-    <integrate algorithm="ARK45" interval="10.0" steps="2400" tolerance="1e-5">
+    <integrate algorithm="RK4" interval="10.0" steps="2400" tolerance="1e-5">
       <samples>24</samples>
       <operators>
-        <operator kind="ip" constant="yes" basis="x ky" type="real">
+        <operator kind="ip" constant="no" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
-            L = -0.02*ky*ky;
+          L = -0.02*(ky*ky + kx*kx);
           ]]>
         </operator>
         <integration_vectors>main</integration_vectors>
@@ -50,14 +53,13 @@
     </integrate>
   </sequence>
   
-  <output>
-      <sampling_group basis="x(4) y(8)" initial_sample="yes">
-        <moments>dens empty</moments>
+  <output format="binary">
+    <sampling_group basis="y x" initial_sample="yes">
+        <moments>dens</moments>
         <dependencies>main</dependencies>
         <![CDATA[
           dens = mod2(phi);
-          empty = x+100*y;
         ]]>
       </sampling_group>
   </output>
-</simulation>
+</simulation>
\ No newline at end of file
diff --git a/examples/bessel_transform2.xmds b/testsuite/transforms/bessel_neumann_wave_equation.xmds
similarity index 76%
copy from examples/bessel_transform2.xmds
copy to testsuite/transforms/bessel_neumann_wave_equation.xmds
index c0ba5b6..be38a18 100644
--- a/examples/bessel_transform2.xmds
+++ b/testsuite/transforms/bessel_neumann_wave_equation.xmds
@@ -1,15 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <simulation xmds-version="2">
-  <name>bessel_transform2</name>
+  <testing>
+    <xsil_file name="bessel_neumann_wave_equation.xsil" expected="bessel_neumann_wave_equation_expected.xsil" absolute_tolerance="1e-6" relative_tolerance="1e-5" />
+  </testing>
+
+  <name>bessel_neumann_wave_equation</name>
   <author>Graham Dennis</author>
   <description>
     Solve the wave equation on a disk of radius 1 utilising cylindrical symmetry
-    by using the Bessel function transform.
+    by using the Bessel function transform.  The boundary condition at r=1 is d/dr u = 0
   </description>
   
   <features>
     <benchmark />
-    <!-- <error_check /> -->
     <bing />
     <validation kind="run-time" />
     <globals>
@@ -26,7 +29,8 @@
     <propagation_dimension> t </propagation_dimension>
     <transverse_dimensions>
       <!-- Volume prefactor = 2 \pi is to cover the suppressed integration over \theta -->
-      <dimension name="x" lattice="100"  domain="(0, 1)" transform="bessel" order="3" volume_prefactor="2.0*M_PI"/>
+      <!-- transform="bessel-neumann" means cylindrical symmetry with zero derivative boundary conditions at the outer boundary -->
+      <dimension name="x" lattice="100"  domain="(0, 1)" transform="bessel-neumann" order="0" volume_prefactor="2.0*M_PI"/>
     </transverse_dimensions>
   </geometry>
   
@@ -43,10 +47,11 @@
   </vector>
   
   <sequence>
+    
     <integrate algorithm="ARK45" tolerance="1e-6" interval="40e-3" steps="400">
       <samples>100 100</samples>
       <operators>
-        <operator kind="ex" constant="yes" basis="kx" type="real">
+        <operator kind="ex" basis="kx" type="real">
           <operator_names>L</operator_names>
           <![CDATA[
             L = -T*kx*kx/mu;
@@ -60,7 +65,8 @@
       </operators>
     </integrate>
   </sequence>
-  <output>
+  
+  <output format="hdf5">
       <sampling_group basis="x" initial_sample="yes">
         <moments>amp</moments>
         <dependencies>main</dependencies>
diff --git a/testsuite/transforms/bessel_neumann_wave_equation_expected.h5 b/testsuite/transforms/bessel_neumann_wave_equation_expected.h5
new file mode 100644
index 0000000..91808f2
Binary files /dev/null and b/testsuite/transforms/bessel_neumann_wave_equation_expected.h5 differ
diff --git a/testsuite/transforms/bessel_neumann_wave_equation_expected.xsil b/testsuite/transforms/bessel_neumann_wave_equation_expected.xsil
new file mode 100644
index 0000000..56650a1
--- /dev/null
+++ b/testsuite/transforms/bessel_neumann_wave_equation_expected.xsil
@@ -0,0 +1,126 @@
+<?xml version="1.0" ?><simulation xmds-version="2">
+  <testing>
+    <xsil_file absolute_tolerance="1e-6" expected="bessel_neumann_wave_equation_expected.xsil" name="bessel_neumann_wave_equation.xsil" relative_tolerance="1e-5"/>
+  </testing>
+
+  <name>bessel_neumann_wave_equation</name>
+  <author>Graham Dennis</author>
+  <description>
+    Solve the wave equation on a disk of radius 1 utilising cylindrical symmetry
+    by using the Bessel function transform.  The boundary condition at r=1 is d/dr u = 0
+  </description>
+  
+  <features>
+    <benchmark/>
+    <bing/>
+    <validation kind="run-time"/>
+    <globals>
+      <![CDATA[
+      const real T = 10.0;
+      const real mass = 1e-3;
+      const real length = 1.0;
+      const real mu = mass/length;
+      ]]>
+    </globals>
+  </features>
+  
+  <geometry>
+    <propagation_dimension> t </propagation_dimension>
+    <transverse_dimensions>
+      <!-- Volume prefactor = 2 \pi is to cover the suppressed integration over \theta -->
+      <!-- transform="bessel-neumann" means cylindrical symmetry with zero derivative boundary conditions at the outer boundary -->
+      <dimension domain="(0, 1)" lattice="100" name="x" order="0" transform="bessel-neumann" volume_prefactor="2.0*M_PI"/>
+    </transverse_dimensions>
+  </geometry>
+  
+  <vector initial_basis="x" name="main" type="complex">
+    <components>
+      u uDot
+    </components>
+    <initialisation>
+      <![CDATA[
+        u = exp(-100.0*(x-0.25)*(x-0.25));
+        uDot = 0.0;
+      ]]>
+    </initialisation>
+  </vector>
+  
+  <sequence>
+    
+    <integrate algorithm="ARK45" interval="40e-3" steps="400" tolerance="1e-6">
+      <samples>100 100</samples>
+      <operators>
+        <operator basis="kx" kind="ex" type="real">
+          <operator_names>L</operator_names>
+          <![CDATA[
+            L = -T*kx*kx/mu;
+          ]]>
+        </operator>
+        <integration_vectors>main</integration_vectors>
+        <![CDATA[
+          du_dt = uDot;
+          duDot_dt = L[u];
+        ]]>
+      </operators>
+    </integrate>
+  </sequence>
+  
+  <output format="hdf5">
+      <sampling_group basis="x" initial_sample="yes">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+        ]]>
+      </sampling_group>
+      <sampling_group basis="kx" initial_sample="no">
+        <moments>amp</moments>
+        <dependencies>main</dependencies>
+        <![CDATA[
+          amp = u.Re();
+        
+        ]]>
+      </sampling_group>
+  </output>
+
+<info>
+Script compiled with XMDS2 version VERSION_PLACEHOLDER (SUBVERSION_REVISION_PLACEHOLDER)
+See http://www.xmds.org for more information.
+</info>
+
+<XSIL Name="moment_group_1">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t x amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>101</Dim>
+    <Dim>100</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="HDF5" Type="Remote" Group="/1"/>
+bessel_neumann_wave_equation_expected.h5
+    </Stream>
+  </Array>
+</XSIL>
+
+<XSIL Name="moment_group_2">
+  <Param Name="n_independent">2</Param>
+  <Array Name="variables" Type="Text">
+    <Dim>3</Dim>
+    <Stream><Metalink Format="Text" Delimiter=" \n"/>
+t kx amp 
+    </Stream>
+  </Array>
+  <Array Name="data" Type="double">
+    <Dim>100</Dim>
+    <Dim>100</Dim>
+    <Dim>3</Dim>
+    <Stream><Metalink Format="HDF5" Type="Remote" Group="/2"/>
+bessel_neumann_wave_equation_expected.h5
+    </Stream>
+  </Array>
+</XSIL>
+</simulation>
diff --git a/xpdeint/Features/Arguments.py b/xpdeint/Features/Arguments.py
index 26038fe..34de3b6 100644
--- a/xpdeint/Features/Arguments.py
+++ b/xpdeint/Features/Arguments.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.838402
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Arguments.tmpl'
+__CHEETAH_genTime__ = 1389652444.597173
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Arguments.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/AsciiFormat.py b/xpdeint/Features/AsciiFormat.py
index 102fd4e..4a6012c 100644
--- a/xpdeint/Features/AsciiFormat.py
+++ b/xpdeint/Features/AsciiFormat.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.807748
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/AsciiFormat.tmpl'
+__CHEETAH_genTime__ = 1389652441.578176
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/AsciiFormat.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/AutoVectorise.py b/xpdeint/Features/AutoVectorise.py
index 7fd02d4..9ecd42f 100644
--- a/xpdeint/Features/AutoVectorise.py
+++ b/xpdeint/Features/AutoVectorise.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.787463
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/AutoVectorise.tmpl'
+__CHEETAH_genTime__ = 1389652441.821844
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/AutoVectorise.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Benchmark.py b/xpdeint/Features/Benchmark.py
index 87388e7..ae7dd75 100644
--- a/xpdeint/Features/Benchmark.py
+++ b/xpdeint/Features/Benchmark.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.826092
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Benchmark.tmpl'
+__CHEETAH_genTime__ = 1389652441.224025
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Benchmark.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/BinaryFormat.py b/xpdeint/Features/BinaryFormat.py
index 825c9d7..700fec8 100644
--- a/xpdeint/Features/BinaryFormat.py
+++ b/xpdeint/Features/BinaryFormat.py
@@ -35,10 +35,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.937738
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/BinaryFormat.tmpl'
-__CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
+__CHEETAH_genTime__ = 1389652442.817779
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/BinaryFormat.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:18 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -512,26 +512,14 @@ if (_outputfield_index_pointer != _outputfield_old_index_pointer + 1)
 }
 ''')
         else: # generated from line 220, col 3
-            write(u'''if (_component & 1) {
-  if (fwrite(&''')
-            _v = VFFSL(SL,"variable.arrayName",True) # u'${variable.arrayName}' on line 222, col 15
-            if _v is not None: write(_filter(_v, rawExpr=u'${variable.arrayName}')) # from line 222, col 15.
-            write(u'''[_''')
-            _v = VFFSL(SL,"variable.vector.id",True) # u'${variable.vector.id}' on line 222, col 38
-            if _v is not None: write(_filter(_v, rawExpr=u'${variable.vector.id}')) # from line 222, col 38.
-            write(u'''_index_pointer + _component/2].Im(), sizeof(real), 1, fpBinary) != 1) {
-    _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\\n");
-  }
-} else {
-  if (fwrite(&''')
-            _v = VFFSL(SL,"variable.arrayName",True) # u'${variable.arrayName}' on line 226, col 15
-            if _v is not None: write(_filter(_v, rawExpr=u'${variable.arrayName}')) # from line 226, col 15.
-            write(u'''[_''')
-            _v = VFFSL(SL,"variable.vector.id",True) # u'${variable.vector.id}' on line 226, col 38
-            if _v is not None: write(_filter(_v, rawExpr=u'${variable.vector.id}')) # from line 226, col 38.
-            write(u'''_index_pointer + _component/2].Re(), sizeof(real), 1, fpBinary) != 1) {
-    _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\\n");
-  }
+            write(u'''if (fwrite(&(reinterpret_cast<real*>(''')
+            _v = VFFSL(SL,"variable.arrayName",True) # u'${variable.arrayName}' on line 221, col 38
+            if _v is not None: write(_filter(_v, rawExpr=u'${variable.arrayName}')) # from line 221, col 38.
+            write(u''')[2*_''')
+            _v = VFFSL(SL,"variable.vector.id",True) # u'${variable.vector.id}' on line 221, col 64
+            if _v is not None: write(_filter(_v, rawExpr=u'${variable.vector.id}')) # from line 221, col 64.
+            write(u'''_index_pointer + _component]), sizeof(real), 1, fpBinary) != 1) {
+  _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\\n");
 }
 ''')
         # 
diff --git a/xpdeint/Features/BinaryFormat.tmpl b/xpdeint/Features/BinaryFormat.tmpl
index 1a90e42..c7dfb6e 100644
--- a/xpdeint/Features/BinaryFormat.tmpl
+++ b/xpdeint/Features/BinaryFormat.tmpl
@@ -218,14 +218,8 @@ if (fwrite(&${variable.arrayName}[_${variable.vector.id}_index_pointer + _compon
   _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\n");
 }
   @else
-if (_component & 1) {
-  if (fwrite(&${variable.arrayName}[_${variable.vector.id}_index_pointer + _component/2].Im(), sizeof(real), 1, fpBinary) != 1) {
-    _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\n");
-  }
-} else {
-  if (fwrite(&${variable.arrayName}[_${variable.vector.id}_index_pointer + _component/2].Re(), sizeof(real), 1, fpBinary) != 1) {
-    _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\n");
-  }
+if (fwrite(&(reinterpret_cast<real*>(${variable.arrayName})[2*_${variable.vector.id}_index_pointer + _component]), sizeof(real), 1, fpBinary) != 1) {
+  _LOG(_ERROR_LOG_LEVEL, "Error writing output data.\n");
 }
   @end if
   @#
diff --git a/xpdeint/Features/Bing.py b/xpdeint/Features/Bing.py
index 0d9d22b..f2ba0d1 100644
--- a/xpdeint/Features/Bing.py
+++ b/xpdeint/Features/Bing.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.872355
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Bing.tmpl'
+__CHEETAH_genTime__ = 1389652441.294047
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Bing.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/CFlags.py b/xpdeint/Features/CFlags.py
index 9c5f667..db081fb 100644
--- a/xpdeint/Features/CFlags.py
+++ b/xpdeint/Features/CFlags.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.916453
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/CFlags.tmpl'
+__CHEETAH_genTime__ = 1389652441.14769
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/CFlags.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/ChunkedOutput.py b/xpdeint/Features/ChunkedOutput.py
index 97cfbac..267cd1e 100644
--- a/xpdeint/Features/ChunkedOutput.py
+++ b/xpdeint/Features/ChunkedOutput.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.931505
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/ChunkedOutput.tmpl'
+__CHEETAH_genTime__ = 1389652442.101867
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/ChunkedOutput.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Diagnostics.py b/xpdeint/Features/Diagnostics.py
index b42a44b..1aaa25d 100644
--- a/xpdeint/Features/Diagnostics.py
+++ b/xpdeint/Features/Diagnostics.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.97162
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Diagnostics.tmpl'
+__CHEETAH_genTime__ = 1389652441.742647
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Diagnostics.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/ErrorCheck.py b/xpdeint/Features/ErrorCheck.py
index a088a30..dde25aa 100644
--- a/xpdeint/Features/ErrorCheck.py
+++ b/xpdeint/Features/ErrorCheck.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.051289
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/ErrorCheck.tmpl'
+__CHEETAH_genTime__ = 1389652443.486569
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/ErrorCheck.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Globals.py b/xpdeint/Features/Globals.py
index c02f3e1..baf483c 100644
--- a/xpdeint/Features/Globals.py
+++ b/xpdeint/Features/Globals.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.008777
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Globals.tmpl'
+__CHEETAH_genTime__ = 1389652441.764421
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Globals.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Feb 22 16:33:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/HDF5Format.py b/xpdeint/Features/HDF5Format.py
index 7377d2a..2bba532 100644
--- a/xpdeint/Features/HDF5Format.py
+++ b/xpdeint/Features/HDF5Format.py
@@ -35,10 +35,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.095543
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/HDF5Format.tmpl'
-__CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
+__CHEETAH_genTime__ = 1389652444.071779
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/HDF5Format.tmpl'
+__CHEETAH_srcLastModified__ = 'Sun Nov 24 20:15:20 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -254,44 +254,51 @@ snprintf(_h5Filename, 200, "%s.h5", ''')
 
 /* Open the file */
 hid_t hdf5_file = H5Fopen(_h5Filename, H5F_ACC_RDWR, H5P_DEFAULT);
+if (hdf5_file < 0) {
+  _LOG(_WARNING_LOG_LEVEL, "Failed to open HDF5 file \'%s\', will try to create it.", _h5Filename);
+  hdf5_file = H5Fcreate(_h5Filename, H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
+  if (hdf5_file < 0) {
+    _LOG(_ERROR_LOG_LEVEL, "Failed to create HDF5 file \'%s\'. Bailing.", _h5Filename);
+  }
+}
 
 /* Create the group for this data */
 hid_t group;
 if (!H5Lexists(hdf5_file, "/''')
-        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 92, col 29
-        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 92, col 29.
+        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 99, col 29
+        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 99, col 29.
         write(u'''", H5P_DEFAULT))
   group = H5Gcreate(hdf5_file, "/''')
-        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 93, col 34
-        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 93, col 34.
+        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 100, col 34
+        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 100, col 34.
         write(u'''", H5P_DEFAULT);
 else
   group = H5Gopen(hdf5_file, "/''')
-        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 95, col 32
-        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 95, col 32.
+        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 102, col 32
+        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 102, col 32.
         write(u'''");
 
 if (''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 97, col 5
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 97, col 5.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 104, col 5
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 104, col 5.
         write(u''') {
   fprintf(''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 98, col 11
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 98, col 11.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 105, col 11
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 105, col 11.
         write(u''', "    <Stream><Metalink Format=\\"HDF5\\" Type=\\"Remote\\" Group=\\"/''')
-        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 98, col 80
-        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 98, col 80.
+        _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 105, col 80
+        if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 105, col 80.
         write(u'''\\"/>\\n");
   fprintf(''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 99, col 11
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 99, col 11.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 106, col 11
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 106, col 11.
         write(u''', "%s.h5\\n", ''')
-        _v = VFFSL(SL,"baseFilename",True) # u'${baseFilename}' on line 99, col 27
-        if _v is not None: write(_filter(_v, rawExpr=u'${baseFilename}')) # from line 99, col 27.
+        _v = VFFSL(SL,"baseFilename",True) # u'${baseFilename}' on line 106, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'${baseFilename}')) # from line 106, col 27.
         write(u''');
   fprintf(''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 100, col 11
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 100, col 11.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 107, col 11
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 107, col 11.
         write(u''', "    </Stream>\\n");
 }
 
@@ -299,191 +306,191 @@ if (''')
 hsize_t coordinate_length;
 hid_t coordinate_dataspace;
 ''')
-        for dim in field.dimensions: # generated from line 106, col 3
+        for dim in field.dimensions: # generated from line 113, col 3
             dimRep = dim.inBasis(basis)
             write(u'''coordinate_length = ''')
-            _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 108, col 21
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 108, col 21.
+            _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 115, col 21
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 115, col 21.
             write(u''';
 coordinate_dataspace = H5Screate_simple(1, &coordinate_length, NULL);
 ''')
             dataType = {'real': 'H5T_NATIVE_REAL', 'long': 'H5T_NATIVE_LONG'}[VFFSL(SL,"dimRep.type",True)]
             write(u'''hid_t dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 111, col 15
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 111, col 15.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 118, col 15
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 118, col 15.
             write(u''';
 if (!H5Lexists(hdf5_file, "/''')
-            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 112, col 29
-            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 112, col 29.
+            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 119, col 29
+            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 119, col 29.
             write(u'''/''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 112, col 40
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 112, col 40.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 119, col 40
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 119, col 40.
             write(u'''", H5P_DEFAULT))
   dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 113, col 11
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 113, col 11.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 120, col 11
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 120, col 11.
             write(u''' = H5Dcreate(hdf5_file, "/''')
-            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 113, col 51
-            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 113, col 51.
+            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 120, col 51
+            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 120, col 51.
             write(u'''/''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 113, col 62
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 113, col 62.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 120, col 62
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 120, col 62.
             write(u'''", ''')
-            _v = VFFSL(SL,"dataType",True) # u'${dataType}' on line 113, col 79
-            if _v is not None: write(_filter(_v, rawExpr=u'${dataType}')) # from line 113, col 79.
+            _v = VFFSL(SL,"dataType",True) # u'${dataType}' on line 120, col 79
+            if _v is not None: write(_filter(_v, rawExpr=u'${dataType}')) # from line 120, col 79.
             write(u''', coordinate_dataspace, H5P_DEFAULT);
 else
   dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 115, col 11
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 115, col 11.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 122, col 11
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 122, col 11.
             write(u''' = H5Dopen(hdf5_file, "/''')
-            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 115, col 49
-            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 115, col 49.
+            _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 122, col 49
+            if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 122, col 49.
             write(u'''/''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 115, col 60
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 115, col 60.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 122, col 60
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 122, col 60.
             write(u'''");
 ''')
-            if isinstance(dimRep, SplitUniformDimensionRepresentation): # generated from line 116, col 5
+            if isinstance(dimRep, SplitUniformDimensionRepresentation): # generated from line 123, col 5
                 dimArrayName = ''.join([str(VFFSL(SL,"dimRep.name",True)),u'_data'])
-                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 118, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 118, col 1.
+                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 125, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 125, col 1.
                 write(u'''* ''')
-                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 118, col 17
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 118, col 17.
+                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 125, col 17
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 125, col 17.
                 write(u''' = (''')
-                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 118, col 36
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 118, col 36.
+                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 125, col 36
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 125, col 36.
                 write(u'''*)xmds_malloc(''')
-                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 118, col 64
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 118, col 64.
+                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 125, col 64
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 125, col 64.
                 write(u''' * sizeof(''')
-                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 118, col 97
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 118, col 97.
+                _v = VFFSL(SL,"dimRep.type",True) # u'${dimRep.type}' on line 125, col 97
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.type}')) # from line 125, col 97.
                 write(u'''));
 for (long _i0 = 0; _i0 < ''')
-                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 119, col 26
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 119, col 26.
+                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 126, col 26
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 126, col 26.
                 write(u'''; _i0++) {
   ''')
-                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 120, col 3
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 120, col 3.
+                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 127, col 3
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 127, col 3.
                 write(u'''[_i0] = ''')
-                _v = VFFSL(SL,"dimRep.arrayName",True) # u'${dimRep.arrayName}' on line 120, col 26
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.arrayName}')) # from line 120, col 26.
+                _v = VFFSL(SL,"dimRep.arrayName",True) # u'${dimRep.arrayName}' on line 127, col 26
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.arrayName}')) # from line 127, col 26.
                 write(u'''[(_i0 + (''')
-                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 120, col 54
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 120, col 54.
+                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 127, col 54
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 127, col 54.
                 write(u'''+1)/2) % ''')
-                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 120, col 86
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 120, col 86.
+                _v = VFFSL(SL,"dimRep.globalLattice",True) # u'${dimRep.globalLattice}' on line 127, col 86
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.globalLattice}')) # from line 127, col 86.
                 write(u'''];
 }
 ''')
-            else: # generated from line 122, col 5
+            else: # generated from line 129, col 5
                 dimArrayName = dimRep.arrayName
             write(u'''H5Dwrite(dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 125, col 18
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 125, col 18.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 132, col 18
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 132, col 18.
             write(u''', ''')
-            _v = VFFSL(SL,"dataType",True) # u'$dataType' on line 125, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'$dataType')) # from line 125, col 34.
+            _v = VFFSL(SL,"dataType",True) # u'$dataType' on line 132, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'$dataType')) # from line 132, col 34.
             write(u''', H5S_ALL, H5S_ALL, H5P_DEFAULT, ''')
-            _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 125, col 76
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 125, col 76.
+            _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 132, col 76
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 132, col 76.
             write(u''');
 #if defined(HAVE_HDF5_HL)
   H5DSset_scale(dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 127, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 127, col 25.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 134, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 134, col 25.
             write(u''', "''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 127, col 42
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 127, col 42.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 134, col 42
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 134, col 42.
             write(u'''");
 #endif
 
 ''')
-            if isinstance(dimRep, SplitUniformDimensionRepresentation): # generated from line 130, col 5
+            if isinstance(dimRep, SplitUniformDimensionRepresentation): # generated from line 137, col 5
                 write(u'''xmds_free(''')
-                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 131, col 11
-                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 131, col 11.
+                _v = VFFSL(SL,"dimArrayName",True) # u'${dimArrayName}' on line 138, col 11
+                if _v is not None: write(_filter(_v, rawExpr=u'${dimArrayName}')) # from line 138, col 11.
                 write(u''');
 ''')
             write(u'''H5Sclose(coordinate_dataspace);
 ''')
         write(u'''
 hsize_t file_dims[] = {''')
-        _v = ', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions) # u"${', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions)}" on line 136, col 24
-        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions)}")) # from line 136, col 24.
+        _v = ', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions) # u"${', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions)}" on line 143, col 24
+        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join(dim.inBasis(basis).globalLattice for dim in field.dimensions)}")) # from line 143, col 24.
         write(u'''};
 hid_t file_dataspace = H5Screate_simple(''')
-        _v = VFFSL(SL,"len",False)(field.dimensions) # u'${len(field.dimensions)}' on line 137, col 41
-        if _v is not None: write(_filter(_v, rawExpr=u'${len(field.dimensions)}')) # from line 137, col 41.
+        _v = VFFSL(SL,"len",False)(field.dimensions) # u'${len(field.dimensions)}' on line 144, col 41
+        if _v is not None: write(_filter(_v, rawExpr=u'${len(field.dimensions)}')) # from line 144, col 41.
         write(u''', file_dims, NULL);
 
 ''')
-        for variable in dependentVariables: # generated from line 139, col 3
-            if VFFSL(SL,"variable.vector.type",True) == 'real': # generated from line 140, col 5
+        for variable in dependentVariables: # generated from line 146, col 3
+            if VFFSL(SL,"variable.vector.type",True) == 'real': # generated from line 147, col 5
                 variable['separatedComponents'] = list(enumerate(VFFSL(SL,"variable.components",True)))
-            else: # generated from line 142, col 5
+            else: # generated from line 149, col 5
                 components = []
                 variable['separatedComponents'] = components
-                for offset, componentName in enumerate(VFFSL(SL,"variable.components",True)): # generated from line 145, col 7
+                for offset, componentName in enumerate(VFFSL(SL,"variable.components",True)): # generated from line 152, col 7
                     components.extend([(2*offset, componentName + 'R'), (2*offset+1, componentName + 'I')])
-            for offset, componentName in VFFSL(SL,"variable.separatedComponents",True): # generated from line 149, col 5
+            for offset, componentName in VFFSL(SL,"variable.separatedComponents",True): # generated from line 156, col 5
                 write(u'''hid_t dataset_''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 150, col 15
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 150, col 15.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 157, col 15
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 157, col 15.
                 write(u''';
 if (!H5Lexists(hdf5_file, "/''')
-                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 151, col 29
-                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 151, col 29.
+                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 158, col 29
+                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 158, col 29.
                 write(u'''/''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 151, col 40
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 151, col 40.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 158, col 40
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 158, col 40.
                 write(u'''", H5P_DEFAULT))
   dataset_''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 152, col 11
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 152, col 11.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 159, col 11
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 159, col 11.
                 write(u''' = H5Dcreate(hdf5_file, "/''')
-                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 152, col 53
-                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 152, col 53.
+                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 159, col 53
+                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 159, col 53.
                 write(u'''/''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 152, col 64
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 152, col 64.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 159, col 64
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 159, col 64.
                 write(u'''", H5T_NATIVE_REAL, file_dataspace, H5P_DEFAULT);
 else
   dataset_''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 154, col 11
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 154, col 11.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 161, col 11
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 161, col 11.
                 write(u''' = H5Dopen(hdf5_file, "/''')
-                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 154, col 51
-                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 154, col 51.
+                _v = VFFSL(SL,"groupID",True) # u'${groupID}' on line 161, col 51
+                if _v is not None: write(_filter(_v, rawExpr=u'${groupID}')) # from line 161, col 51.
                 write(u'''/''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 154, col 62
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 154, col 62.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 161, col 62
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 161, col 62.
                 write(u'''");
 #if defined(HAVE_HDF5_HL)
 ''')
-                for dimNum, dim in enumerate(field.dimensions): # generated from line 156, col 7
+                for dimNum, dim in enumerate(field.dimensions): # generated from line 163, col 7
                     write(u'''  H5DSattach_scale(dataset_''')
-                    _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 157, col 28
-                    if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 157, col 28.
+                    _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 164, col 28
+                    if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 164, col 28.
                     write(u''', dataset_''')
-                    _v = VFN(VFN(VFFSL(SL,"dim",True),"inBasis",False)(basis),"name",True) # u'${dim.inBasis(basis).name}' on line 157, col 54
-                    if _v is not None: write(_filter(_v, rawExpr=u'${dim.inBasis(basis).name}')) # from line 157, col 54.
+                    _v = VFN(VFN(VFFSL(SL,"dim",True),"inBasis",False)(basis),"name",True) # u'${dim.inBasis(basis).name}' on line 164, col 54
+                    if _v is not None: write(_filter(_v, rawExpr=u'${dim.inBasis(basis).name}')) # from line 164, col 54.
                     write(u''', ''')
-                    _v = VFFSL(SL,"dimNum",True) # u'${dimNum}' on line 157, col 82
-                    if _v is not None: write(_filter(_v, rawExpr=u'${dimNum}')) # from line 157, col 82.
+                    _v = VFFSL(SL,"dimNum",True) # u'${dimNum}' on line 164, col 82
+                    if _v is not None: write(_filter(_v, rawExpr=u'${dimNum}')) # from line 164, col 82.
                     write(u''');
 ''')
                 write(u'''#endif
 ''')
-        for dim in field.dimensions: # generated from line 162, col 3
+        for dim in field.dimensions: # generated from line 169, col 3
             dimRep = dim.inBasis(basis)
             write(u'''H5Dclose(dataset_''')
-            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 164, col 18
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 164, col 18.
+            _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 171, col 18
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 171, col 18.
             write(u''');
 ''')
         write(u'''
@@ -492,32 +499,32 @@ else
         featureOrdering = ['Driver']
         featureDict = dict.copy()
         featureDict['extraIndent'] = 0
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('binaryWriteOutWriteDataBegin', VFFSL(SL,"featureOrdering",True), featureDict) # u"${insertCodeForFeatures('binaryWriteOutWriteDataBegin', $featureOrdering, featureDict)}" on line 171, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('binaryWriteOutWriteDataBegin', $featureOrdering, featureDict)}")) # from line 171, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('binaryWriteOutWriteDataBegin', VFFSL(SL,"featureOrdering",True), featureDict) # u"${insertCodeForFeatures('binaryWriteOutWriteDataBegin', $featureOrdering, featureDict)}" on line 178, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('binaryWriteOutWriteDataBegin', $featureOrdering, featureDict)}")) # from line 178, col 1.
         extraIndent = featureDict['extraIndent']
         dict['operation'] = 'write'
         dict['variables'] = dict['dependentVariables']
         write(u'''
 if (''')
-        _v = VFN(VFFSL(SL,"field",True),"sizeInBasis",False)(basis) # u'${field.sizeInBasis(basis)}' on line 176, col 5
-        if _v is not None: write(_filter(_v, rawExpr=u'${field.sizeInBasis(basis)}')) # from line 176, col 5.
+        _v = VFN(VFFSL(SL,"field",True),"sizeInBasis",False)(basis) # u'${field.sizeInBasis(basis)}' on line 183, col 5
+        if _v is not None: write(_filter(_v, rawExpr=u'${field.sizeInBasis(basis)}')) # from line 183, col 5.
         write(u''') {
   ''')
-        _v = VFFSL(SL,"processData",False)(dict) # u'${processData(dict), autoIndent=True, extraIndent=extraIndent}' on line 177, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${processData(dict), autoIndent=True, extraIndent=extraIndent}')) # from line 177, col 3.
+        _v = VFFSL(SL,"processData",False)(dict) # u'${processData(dict), autoIndent=True, extraIndent=extraIndent}' on line 184, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${processData(dict), autoIndent=True, extraIndent=extraIndent}')) # from line 184, col 3.
         write(u'''}
 
 ''')
         #  This is where the rest of the magic MPI code goes
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('binaryWriteOutWriteDataEnd', VFFSL(SL,"featureOrdering",True), featureDict) # u"${insertCodeForFeaturesInReverseOrder('binaryWriteOutWriteDataEnd', $featureOrdering, featureDict)}" on line 181, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('binaryWriteOutWriteDataEnd', $featureOrdering, featureDict)}")) # from line 181, col 1.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('binaryWriteOutWriteDataEnd', VFFSL(SL,"featureOrdering",True), featureDict) # u"${insertCodeForFeaturesInReverseOrder('binaryWriteOutWriteDataEnd', $featureOrdering, featureDict)}" on line 188, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('binaryWriteOutWriteDataEnd', $featureOrdering, featureDict)}")) # from line 188, col 1.
         write(u'''
 ''')
-        for variable in dependentVariables: # generated from line 183, col 3
-            for offset, componentName in VFFSL(SL,"variable.separatedComponents",True): # generated from line 184, col 5
+        for variable in dependentVariables: # generated from line 190, col 3
+            for offset, componentName in VFFSL(SL,"variable.separatedComponents",True): # generated from line 191, col 5
                 write(u'''H5Dclose(dataset_''')
-                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 185, col 18
-                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 185, col 18.
+                _v = VFFSL(SL,"componentName",True) # u'${componentName}' on line 192, col 18
+                if _v is not None: write(_filter(_v, rawExpr=u'${componentName}')) # from line 192, col 18.
                 write(u''');
 ''')
         write(u'''
diff --git a/xpdeint/Features/HDF5Format.tmpl b/xpdeint/Features/HDF5Format.tmpl
index ad8f3b7..63bcefc 100644
--- a/xpdeint/Features/HDF5Format.tmpl
+++ b/xpdeint/Features/HDF5Format.tmpl
@@ -86,6 +86,13 @@ snprintf(_h5Filename, 200, "%s.h5", ${baseFilename});
 
 /* Open the file */
 hid_t hdf5_file = H5Fopen(_h5Filename, H5F_ACC_RDWR, H5P_DEFAULT);
+if (hdf5_file < 0) {
+  _LOG(_WARNING_LOG_LEVEL, "Failed to open HDF5 file '%s', will try to create it.", _h5Filename);
+  hdf5_file = H5Fcreate(_h5Filename, H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
+  if (hdf5_file < 0) {
+    _LOG(_ERROR_LOG_LEVEL, "Failed to create HDF5 file '%s'. Bailing.", _h5Filename);
+  }
+}
 
 /* Create the group for this data */
 hid_t group;
diff --git a/xpdeint/Features/HaltNonFinite.py b/xpdeint/Features/HaltNonFinite.py
index 78eb162..0ac938d 100644
--- a/xpdeint/Features/HaltNonFinite.py
+++ b/xpdeint/Features/HaltNonFinite.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.043321
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/HaltNonFinite.tmpl'
+__CHEETAH_genTime__ = 1389652441.848037
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/HaltNonFinite.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/MaxIterations.py b/xpdeint/Features/MaxIterations.py
index 5ef8ed2..6ef6a6d 100644
--- a/xpdeint/Features/MaxIterations.py
+++ b/xpdeint/Features/MaxIterations.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.048385
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/MaxIterations.tmpl'
+__CHEETAH_genTime__ = 1389652441.170423
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/MaxIterations.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/OpenMP.py b/xpdeint/Features/OpenMP.py
index 759d8b3..e0b504a 100644
--- a/xpdeint/Features/OpenMP.py
+++ b/xpdeint/Features/OpenMP.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.203906
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/OpenMP.tmpl'
+__CHEETAH_genTime__ = 1389652442.598129
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/OpenMP.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Oct 18 19:50:44 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Output.py b/xpdeint/Features/Output.py
index 9f4cf7e..8651873 100644
--- a/xpdeint/Features/Output.py
+++ b/xpdeint/Features/Output.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.205964
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Output.tmpl'
+__CHEETAH_genTime__ = 1389652442.829152
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Output.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Sep  3 14:15:51 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/OutputFormat.py b/xpdeint/Features/OutputFormat.py
index b5b68cd..9acc971 100644
--- a/xpdeint/Features/OutputFormat.py
+++ b/xpdeint/Features/OutputFormat.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.224401
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/OutputFormat.tmpl'
+__CHEETAH_genTime__ = 1389652442.430215
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/OutputFormat.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 29 13:43:25 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -230,7 +230,7 @@ void _close_xsil_file(FILE*& fp)
         #  Find the end tag in a case-insensitive way
         indexForEndTag = VFN(VFN(VFFSL(SL,"expandedInputScript",True),"lower",False)(),"rfind",False)('</simulation>')
         xsilOutputHeader = VFFSL(SL,"expandedInputScript",True)[0:VFFSL(SL,"indexForEndTag",True)]
-        _orig_filter_32065636 = _filter
+        _orig_filter_54581106 = _filter
         _filter = self._CHEETAH__currentFilter = VFFSL(SL,"PrintfSafeFilter",True)(self).filter
         for line in VFN(VFFSL(SL,"xsilOutputHeader",True),"splitlines",False)(): # generated from line 92, col 5
             write(u'''  fprintf(fp, "''')
@@ -249,7 +249,7 @@ void _close_xsil_file(FILE*& fp)
         write(u''')\\n");
   fprintf(fp, "See http://www.xmds.org for more information.\\n");
 ''')
-        _filter = self._CHEETAH__currentFilter = _orig_filter_32065636
+        _filter = self._CHEETAH__currentFilter = _orig_filter_54581106
         # 
         featureOrderingXSILInfo = ['Arguments', 'Stochastic']
         write(u'''  ''')
diff --git a/xpdeint/Features/Stochastic.py b/xpdeint/Features/Stochastic.py
index 0d4a022..2d083a4 100644
--- a/xpdeint/Features/Stochastic.py
+++ b/xpdeint/Features/Stochastic.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.398146
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Stochastic.tmpl'
+__CHEETAH_genTime__ = 1389652442.100429
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Stochastic.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/Basis.py b/xpdeint/Features/Transforms/Basis.py
index 1c50eda..906e577 100644
--- a/xpdeint/Features/Transforms/Basis.py
+++ b/xpdeint/Features/Transforms/Basis.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.263763
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/Basis.tmpl'
+__CHEETAH_genTime__ = 1389652441.85928
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/Basis.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/BesselBasis.py b/xpdeint/Features/Transforms/BesselBasis.py
index 73f6d1e..4545773 100644
--- a/xpdeint/Features/Transforms/BesselBasis.py
+++ b/xpdeint/Features/Transforms/BesselBasis.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.310537
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/BesselBasis.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri Sep 14 16:04:46 2012'
+__CHEETAH_genTime__ = 1389652441.851409
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselBasis.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -114,8 +114,8 @@ class BesselBasis(Basis):
         # 
         order = forwardDimRep._order
         write(u'''const real besselFactor = ''')
-        _v = VFN(VFFSL(SL,"forwardDimRep",True),"besselJFunctionCall",False)(VFFSL(SL,"order",True), ''.join([u'_normbesseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"forwardIndex",True)),u'] * _normbesseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"backwardIndex",True)),u'] * _besseljnorm_',str(VFFSL(SL,"forwardDimRep.parent.name",True))])) # u"${forwardDimRep.besselJFunctionCall($order, c'_normbesseljzeros_${forwardDimRep.p [...]
-        if _v is not None: write(_filter(_v, rawExpr=u"${forwardDimRep.besselJFunctionCall($order, c'_normbesseljzeros_${forwardDimRep.parent.name}[${forwardIndex}] * _normbesseljzeros_${forwardDimRep.parent.name}[${backwardIndex}] * _besseljnorm_${forwardDimRep.parent.name}')}")) # from line 29, col 27.
+        _v = VFN(VFFSL(SL,"forwardDimRep",True),"besselJFunctionCall",False)(VFFSL(SL,"order",True), ''.join([u'_besseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"forwardIndex",True)),u'] * _besseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"backwardIndex",True)),u'] / _besseljS_',str(VFFSL(SL,"forwardDimRep.parent.name",True))])) # u"${forwardDimRep.besselJFunctionCall($order, c'_besseljzeros_${forwardDimRep.parent.name}[${f [...]
+        if _v is not None: write(_filter(_v, rawExpr=u"${forwardDimRep.besselJFunctionCall($order, c'_besseljzeros_${forwardDimRep.parent.name}[${forwardIndex}] * _besseljzeros_${forwardDimRep.parent.name}[${backwardIndex}] / _besseljS_${forwardDimRep.parent.name}')}")) # from line 29, col 27.
         write(u''';
 ''')
         # 
diff --git a/xpdeint/Features/Transforms/BesselBasis.tmpl b/xpdeint/Features/Transforms/BesselBasis.tmpl
index b9f0cfd..414b399 100644
--- a/xpdeint/Features/Transforms/BesselBasis.tmpl
+++ b/xpdeint/Features/Transforms/BesselBasis.tmpl
@@ -26,7 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 @def transformMatricesForDimRepsAtIndices($forwardDimRep, $backwardDimRep, $forwardIndex, $backwardIndex)
   @#
   @set $order = forwardDimRep._order
-const real besselFactor = ${forwardDimRep.besselJFunctionCall($order, c'_normbesseljzeros_${forwardDimRep.parent.name}[${forwardIndex}] * _normbesseljzeros_${forwardDimRep.parent.name}[${backwardIndex}] * _besseljnorm_${forwardDimRep.parent.name}')};
+const real besselFactor = ${forwardDimRep.besselJFunctionCall($order, c'_besseljzeros_${forwardDimRep.parent.name}[${forwardIndex}] * _besseljzeros_${forwardDimRep.parent.name}[${backwardIndex}] / _besseljS_${forwardDimRep.parent.name}')};
   @#
   @super(forwardDimRep, backwardDimRep, forwardIndex, backwardIndex)
   @#
diff --git a/xpdeint/Features/AutoVectorise.py b/xpdeint/Features/Transforms/BesselNeumannTransform.py
similarity index 69%
copy from xpdeint/Features/AutoVectorise.py
copy to xpdeint/Features/Transforms/BesselNeumannTransform.py
index 7fd02d4..2442001 100644
--- a/xpdeint/Features/AutoVectorise.py
+++ b/xpdeint/Features/Transforms/BesselNeumannTransform.py
@@ -23,7 +23,7 @@ from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valu
 from Cheetah.CacheRegion import CacheRegion
 import Cheetah.Filters as Filters
 import Cheetah.ErrorCatchers as ErrorCatchers
-from xpdeint.Features._AutoVectorise import _AutoVectorise
+from xpdeint.Features.Transforms._BesselTransform import _BesselTransform
 
 ##################################################
 ## MODULE CONSTANTS
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322830.787463
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:30 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/AutoVectorise.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652441.124987
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 28 08:44:05 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -48,7 +48,7 @@ if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
 ##################################################
 ## CLASSES
 
-class AutoVectorise(_AutoVectorise):
+class BesselNeumannTransform(_BesselTransform):
 
     ##################################################
     ## CHEETAH GENERATED METHODS
@@ -56,7 +56,7 @@ class AutoVectorise(_AutoVectorise):
 
     def __init__(self, *args, **KWs):
 
-        super(AutoVectorise, self).__init__(*args, **KWs)
+        super(BesselNeumannTransform, self).__init__(*args, **KWs)
         if not self._CHEETAH__instanceInitialized:
             cheetahKWArgs = {}
             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
@@ -65,38 +65,11 @@ class AutoVectorise(_AutoVectorise):
             self._initCheetahInstance(**cheetahKWArgs)
         
 
-    def description(self, **KWS):
+    def globalsForDim(self, dimName, basisDict, **KWS):
 
 
 
-        ## Generated from @def description: Auto-vectorisation at line 24, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        write(u'''Auto-vectorisation''')
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
-    def defines(self, **KWS):
-
-
-
-        ## CHEETAH: generated from @def defines at line 28, col 1.
+        ## CHEETAH: generated from @def globalsForDim($dimName, $basisDict) at line 24, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -112,12 +85,22 @@ class AutoVectorise(_AutoVectorise):
         ## START - generated method body
         
         # 
-        _v = super(AutoVectorise, self).defines()
-        if _v is not None: write(_filter(_v))
-        # 
-        write(u'''
-#define _MAKE_AUTOVEC_VARIABLE(x) real* const __restrict__ x ## _autovec = (real*) x
-#define _AUTOVEC(x) (x ## _autovec)
+        besselOrder = basisDict['order']
+        lattice = basisDict['lattice']
+        write(u'''const real _besseljzeros_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 28, col 26
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 28, col 26.
+        write(u'''[] = {''')
+        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"besselJPrimeZeros",False)(besselOrder, lattice)) # u'${wrapArray($besselJPrimeZeros(besselOrder, lattice))}' on line 28, col 42
+        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($besselJPrimeZeros(besselOrder, lattice))}')) # from line 28, col 42.
+        write(u'''};
+const real _besseljS_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 29, col 22
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 29, col 22.
+        write(u''' = ''')
+        _v = VFFSL(SL,"besselNeumannSFactor",False)(besselOrder, lattice) # u'${besselNeumannSFactor(besselOrder, lattice)}' on line 29, col 35
+        if _v is not None: write(_filter(_v, rawExpr=u'${besselNeumannSFactor(besselOrder, lattice)}')) # from line 29, col 35.
+        write(u''';
 ''')
         # 
         
@@ -147,11 +130,11 @@ class AutoVectorise(_AutoVectorise):
         ## START - generated method body
         
         # 
-        # AutoVectorise.tmpl
+        # BesselNeumannTransform.tmpl
         # 
-        # Created by Graham Dennis on 2008-02-07.
+        # Created by Graham Dennis on 2013-11-26.
         # 
-        # Copyright (c) 2008-2012, Graham Dennis
+        # Copyright (c) 2013, Graham Dennis
         # 
         # This program is free software: you can redistribute it and/or modify
         # it under the terms of the GNU General Public License as published by
@@ -167,7 +150,6 @@ class AutoVectorise(_AutoVectorise):
         # along with this program.  If not, see <http://www.gnu.org/licenses/>.
         # 
         write(u'''
-
 ''')
         
         ########################################
@@ -193,17 +175,13 @@ class AutoVectorise(_AutoVectorise):
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    featureName = 'AutoVectorise'
-
-    uselib = ['vectorise']
-
-    _mainCheetahMethod_for_AutoVectorise= 'writeBody'
+    _mainCheetahMethod_for_BesselNeumannTransform= 'writeBody'
 
 ## END CLASS DEFINITION
 
-if not hasattr(AutoVectorise, '_initCheetahAttributes'):
-    templateAPIClass = getattr(AutoVectorise, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(AutoVectorise)
+if not hasattr(BesselNeumannTransform, '_initCheetahAttributes'):
+    templateAPIClass = getattr(BesselNeumannTransform, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(BesselNeumannTransform)
 
 
 # CHEETAH was developed by Tavis Rudd and Mike Orr
@@ -214,6 +192,6 @@ if not hasattr(AutoVectorise, '_initCheetahAttributes'):
 ## if run from command line:
 if __name__ == '__main__':
     from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=AutoVectorise()).run()
+    CmdLineIface(templateObj=BesselNeumannTransform()).run()
 
 
diff --git a/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl b/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl
new file mode 100644
index 0000000..921fa0b
--- /dev/null
+++ b/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl
@@ -0,0 +1,31 @@
+@*
+BesselNeumannTransform.tmpl
+
+Created by Graham Dennis on 2013-11-26.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.Features.Transforms._BesselTransform
+
+ at def globalsForDim($dimName, $basisDict)
+  @#
+  @set $besselOrder = basisDict['order']
+  @set $lattice = basisDict['lattice']
+const real _besseljzeros_${dimName}[] = {${wrapArray($besselJPrimeZeros(besselOrder, lattice))}};
+const real _besseljS_${dimName} = ${besselNeumannSFactor(besselOrder, lattice)};
+  @#
+ at end def
diff --git a/xpdeint/Geometry/GeometryElement.py b/xpdeint/Features/Transforms/BesselTransform.py
similarity index 69%
copy from xpdeint/Geometry/GeometryElement.py
copy to xpdeint/Features/Transforms/BesselTransform.py
index 12bb5c7..241c21d 100644
--- a/xpdeint/Geometry/GeometryElement.py
+++ b/xpdeint/Features/Transforms/BesselTransform.py
@@ -23,7 +23,7 @@ from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valu
 from Cheetah.CacheRegion import CacheRegion
 import Cheetah.Filters as Filters
 import Cheetah.ErrorCatchers as ErrorCatchers
-from xpdeint.Geometry._FieldElement import _FieldElement
+from xpdeint.Features.Transforms._BesselTransform import _BesselTransform
 
 ##################################################
 ## MODULE CONSTANTS
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.7714
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/GeometryElement.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652441.060889
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselTransform.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -48,7 +48,7 @@ if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
 ##################################################
 ## CLASSES
 
-class GeometryElement(_FieldElement):
+class BesselTransform(_BesselTransform):
 
     ##################################################
     ## CHEETAH GENERATED METHODS
@@ -56,7 +56,7 @@ class GeometryElement(_FieldElement):
 
     def __init__(self, *args, **KWs):
 
-        super(GeometryElement, self).__init__(*args, **KWs)
+        super(BesselTransform, self).__init__(*args, **KWs)
         if not self._CHEETAH__instanceInitialized:
             cheetahKWArgs = {}
             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
@@ -65,11 +65,11 @@ class GeometryElement(_FieldElement):
             self._initCheetahInstance(**cheetahKWArgs)
         
 
-    def description(self, **KWS):
+    def globalsForDim(self, dimName, basisDict, **KWS):
 
 
 
-        ## Generated from @def description: Geometry at line 27, col 1.
+        ## CHEETAH: generated from @def globalsForDim($dimName, $basisDict) at line 24, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -84,7 +84,25 @@ class GeometryElement(_FieldElement):
         ########################################
         ## START - generated method body
         
-        write(u'''Geometry''')
+        # 
+        besselOrder = basisDict['order'] + basisDict['orderOffset']
+        lattice = basisDict['lattice']
+        write(u'''const real _besseljzeros_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 28, col 26
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 28, col 26.
+        write(u'''[] = {''')
+        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"besselJZeros",False)(besselOrder, lattice)) # u'${wrapArray($besselJZeros(besselOrder, lattice))}' on line 28, col 42
+        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($besselJZeros(besselOrder, lattice))}')) # from line 28, col 42.
+        write(u'''};
+const real _besseljS_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 29, col 22
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 29, col 22.
+        write(u''' = ''')
+        _v = VFFSL(SL,"besselJZeros",False)(besselOrder, lattice+1)[-1] # u'${besselJZeros(besselOrder, lattice+1)[-1]}' on line 29, col 35
+        if _v is not None: write(_filter(_v, rawExpr=u'${besselJZeros(besselOrder, lattice+1)[-1]}')) # from line 29, col 35.
+        write(u''';
+''')
+        # 
         
         ########################################
         ## END - generated method body
@@ -112,11 +130,11 @@ class GeometryElement(_FieldElement):
         ## START - generated method body
         
         # 
-        # GeometryElement.tmpl
+        # BesselTransform.tmpl
         # 
-        # Created by Graham Dennis on 2007-08-28.
+        # Created by Graham Dennis on 2013-11-26.
         # 
-        # Copyright (c) 2007-2012, Graham Dennis
+        # Copyright (c) 2013, Graham Dennis
         # 
         # This program is free software: you can redistribute it and/or modify
         # it under the terms of the GNU General Public License as published by
@@ -133,10 +151,6 @@ class GeometryElement(_FieldElement):
         # 
         write(u'''
 ''')
-        # 
-        #   Description of template
-        write(u'''
-''')
         
         ########################################
         ## END - generated method body
@@ -161,17 +175,13 @@ class GeometryElement(_FieldElement):
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    name = "geometry"
-
-    globalNameSpaceName = "geometry"
-
-    _mainCheetahMethod_for_GeometryElement= 'writeBody'
+    _mainCheetahMethod_for_BesselTransform= 'writeBody'
 
 ## END CLASS DEFINITION
 
-if not hasattr(GeometryElement, '_initCheetahAttributes'):
-    templateAPIClass = getattr(GeometryElement, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(GeometryElement)
+if not hasattr(BesselTransform, '_initCheetahAttributes'):
+    templateAPIClass = getattr(BesselTransform, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(BesselTransform)
 
 
 # CHEETAH was developed by Tavis Rudd and Mike Orr
@@ -182,6 +192,6 @@ if not hasattr(GeometryElement, '_initCheetahAttributes'):
 ## if run from command line:
 if __name__ == '__main__':
     from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=GeometryElement()).run()
+    CmdLineIface(templateObj=BesselTransform()).run()
 
 
diff --git a/xpdeint/Features/Transforms/BesselTransform.tmpl b/xpdeint/Features/Transforms/BesselTransform.tmpl
new file mode 100644
index 0000000..7df7ad8
--- /dev/null
+++ b/xpdeint/Features/Transforms/BesselTransform.tmpl
@@ -0,0 +1,31 @@
+@*
+BesselTransform.tmpl
+
+Created by Graham Dennis on 2013-11-26.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.Features.Transforms._BesselTransform
+
+ at def globalsForDim($dimName, $basisDict)
+  @#
+  @set $besselOrder = basisDict['order'] + basisDict['orderOffset']
+  @set $lattice = basisDict['lattice']
+const real _besseljzeros_${dimName}[] = {${wrapArray($besselJZeros(besselOrder, lattice))}};
+const real _besseljS_${dimName} = ${besselJZeros(besselOrder, lattice+1)[-1]};
+  @#
+ at end def
diff --git a/xpdeint/Features/Transforms/EPBasis.py b/xpdeint/Features/Transforms/EPBasis.py
index 1def642..1bb0efc 100644
--- a/xpdeint/Features/Transforms/EPBasis.py
+++ b/xpdeint/Features/Transforms/EPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.438919
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/EPBasis.tmpl'
+__CHEETAH_genTime__ = 1389652443.922267
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/EPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3.py b/xpdeint/Features/Transforms/FourierTransformFFTW3.py
index 946dd93..3a18c93 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.420053
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/FourierTransformFFTW3.tmpl'
+__CHEETAH_genTime__ = 1389652444.286109
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py b/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
index 25aaec5..d600c5e 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
@@ -37,9 +37,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.647409
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.tmpl'
+__CHEETAH_genTime__ = 1389652445.358905
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py b/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
index f84ee64..95075c1 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.469302
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.tmpl'
+__CHEETAH_genTime__ = 1389652441.271709
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussEPBasis.py b/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
index 3822912..c54055f 100644
--- a/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.514099
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/HermiteGaussEPBasis.tmpl'
+__CHEETAH_genTime__ = 1389652442.22311
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussEPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py b/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
index 3f49cc4..a8490a8 100644
--- a/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.542513
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.tmpl'
+__CHEETAH_genTime__ = 1389652441.642986
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jul  3 14:24:15 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py b/xpdeint/Features/Transforms/HermiteGaussTransform.py
similarity index 69%
copy from xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
copy to xpdeint/Features/Transforms/HermiteGaussTransform.py
index 0f65831..7beee0a 100644
--- a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
+++ b/xpdeint/Features/Transforms/HermiteGaussTransform.py
@@ -23,7 +23,7 @@ from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valu
 from Cheetah.CacheRegion import CacheRegion
 import Cheetah.Filters as Filters
 import Cheetah.ErrorCatchers as ErrorCatchers
-from xpdeint.ScriptElement import ScriptElement
+from xpdeint.Features.Transforms._HermiteGaussTransform import _HermiteGaussTransform
 
 ##################################################
 ## MODULE CONSTANTS
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.491777
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652441.952265
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:49:57 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -48,7 +48,7 @@ if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
 ##################################################
 ## CLASSES
 
-class UniformRandomVariable(ScriptElement):
+class HermiteGaussTransform(_HermiteGaussTransform):
 
     ##################################################
     ## CHEETAH GENERATED METHODS
@@ -56,7 +56,7 @@ class UniformRandomVariable(ScriptElement):
 
     def __init__(self, *args, **KWs):
 
-        super(UniformRandomVariable, self).__init__(*args, **KWs)
+        super(HermiteGaussTransform, self).__init__(*args, **KWs)
         if not self._CHEETAH__instanceInitialized:
             cheetahKWArgs = {}
             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
@@ -65,16 +65,11 @@ class UniformRandomVariable(ScriptElement):
             self._initCheetahInstance(**cheetahKWArgs)
         
 
-    def makeNoises(self, **KWS):
+    def globalsForDim(self, dimName, basisDict, **KWS):
 
 
-        """
-        Return the code for the contents of the makeNoises function for
-          a uniform random variable.  
-          Essentially, this is generator specific code, hence the lack of anything here.
-        """
 
-        ## CHEETAH: generated from @def makeNoises at line 24, col 1.
+        ## CHEETAH: generated from @def globalsForDim($dimName, $basisDict) at line 24, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -90,8 +85,22 @@ class UniformRandomVariable(ScriptElement):
         ## START - generated method body
         
         # 
-        _v = VFFSL(SL,"generator.constructArrayUniformRandomNumbers",True) # u'${generator.constructArrayUniformRandomNumbers}' on line 31, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${generator.constructArrayUniformRandomNumbers}')) # from line 31, col 1.
+        lattice = basisDict['lattice']
+        write(u'''const real _hermite_zeros_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 27, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 27, col 27.
+        write(u'''[] = {''')
+        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"hermiteZeros",False)(lattice)) # u'${wrapArray($hermiteZeros(lattice))}' on line 27, col 43
+        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($hermiteZeros(lattice))}')) # from line 27, col 43.
+        write(u'''};
+const real _hermite_gauss_weights_''')
+        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 28, col 35
+        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 28, col 35.
+        write(u'''[] = {''')
+        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"hermiteGaussWeights",False)(lattice)) # u'${wrapArray($hermiteGaussWeights(lattice))}' on line 28, col 51
+        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($hermiteGaussWeights(lattice))}')) # from line 28, col 51.
+        write(u'''};
+''')
         # 
         
         ########################################
@@ -120,11 +129,11 @@ class UniformRandomVariable(ScriptElement):
         ## START - generated method body
         
         # 
-        # UniformRandomVariable.tmpl
+        # HermiteGaussTransform.tmpl
         # 
-        # Created by Joe Hope on 2009-08-22.
+        # Created by Graham Dennis on 2013-11-26.
         # 
-        # Copyright (c) 2009-2012, Joe Hope
+        # Copyright (c) 2013, Graham Dennis
         # 
         # This program is free software: you can redistribute it and/or modify
         # it under the terms of the GNU General Public License as published by
@@ -165,13 +174,13 @@ class UniformRandomVariable(ScriptElement):
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    _mainCheetahMethod_for_UniformRandomVariable= 'writeBody'
+    _mainCheetahMethod_for_HermiteGaussTransform= 'writeBody'
 
 ## END CLASS DEFINITION
 
-if not hasattr(UniformRandomVariable, '_initCheetahAttributes'):
-    templateAPIClass = getattr(UniformRandomVariable, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(UniformRandomVariable)
+if not hasattr(HermiteGaussTransform, '_initCheetahAttributes'):
+    templateAPIClass = getattr(HermiteGaussTransform, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(HermiteGaussTransform)
 
 
 # CHEETAH was developed by Tavis Rudd and Mike Orr
@@ -182,6 +191,6 @@ if not hasattr(UniformRandomVariable, '_initCheetahAttributes'):
 ## if run from command line:
 if __name__ == '__main__':
     from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=UniformRandomVariable()).run()
+    CmdLineIface(templateObj=HermiteGaussTransform()).run()
 
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl b/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl
new file mode 100644
index 0000000..6b1a46d
--- /dev/null
+++ b/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl
@@ -0,0 +1,30 @@
+@*
+HermiteGaussTransform.tmpl
+
+Created by Graham Dennis on 2013-11-26.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.Features.Transforms._HermiteGaussTransform
+
+ at def globalsForDim($dimName, $basisDict)
+  @#
+  @set $lattice = basisDict['lattice']
+const real _hermite_zeros_${dimName}[] = {${wrapArray($hermiteZeros(lattice))}};
+const real _hermite_gauss_weights_${dimName}[] = {${wrapArray($hermiteGaussWeights(lattice))}};
+  @#
+ at end def
diff --git a/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py b/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
index f0b3afd..0085e58 100644
--- a/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.579578
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.tmpl'
+__CHEETAH_genTime__ = 1389652442.176968
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/MMT.py b/xpdeint/Features/Transforms/MMT.py
index d05e254..5bc4bc9 100644
--- a/xpdeint/Features/Transforms/MMT.py
+++ b/xpdeint/Features/Transforms/MMT.py
@@ -35,10 +35,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.616411
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/MMT.tmpl'
-__CHEETAH_srcLastModified__ = 'Thu Nov  8 17:22:48 2012'
+__CHEETAH_genTime__ = 1389652442.061539
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/MMT.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:49:57 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -139,100 +139,11 @@ class MMT(_MMT):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def besselGlobalsForDim(self, dimName, basisDict, **KWS):
-
-
-
-        ## CHEETAH: generated from @def besselGlobalsForDim($dimName, $basisDict) at line 50, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        # 
-        besselOrder = basisDict['order'] + basisDict['orderOffset']
-        lattice = basisDict['lattice']
-        write(u'''const real _normbesseljzeros_''')
-        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 54, col 30
-        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 54, col 30.
-        write(u'''[] = {''')
-        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"normalisedBesselJZeros",False)(besselOrder, lattice)) # u'${wrapArray($normalisedBesselJZeros(besselOrder, lattice))}' on line 54, col 46
-        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($normalisedBesselJZeros(besselOrder, lattice))}')) # from line 54, col 46.
-        write(u'''};
-const real _besseljnorm_''')
-        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 55, col 25
-        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 55, col 25.
-        write(u''' = ''')
-        _v = VFFSL(SL,"besselJZeros",False)(besselOrder, lattice+1)[-1] # u'${besselJZeros(besselOrder, lattice+1)[-1]}' on line 55, col 38
-        if _v is not None: write(_filter(_v, rawExpr=u'${besselJZeros(besselOrder, lattice+1)[-1]}')) # from line 55, col 38.
-        write(u''';
-''')
-        # 
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
-    def hermiteGaussGlobalsForDim(self, dimName, basisDict, **KWS):
-
-
-
-        ## CHEETAH: generated from @def hermiteGaussGlobalsForDim($dimName, $basisDict) at line 59, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        # 
-        lattice = basisDict['lattice']
-        write(u'''const real _hermite_zeros_''')
-        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 62, col 27
-        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 62, col 27.
-        write(u'''[] = {''')
-        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"hermiteZeros",False)(lattice)) # u'${wrapArray($hermiteZeros(lattice))}' on line 62, col 43
-        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($hermiteZeros(lattice))}')) # from line 62, col 43.
-        write(u'''};
-const real _hermite_gauss_weights_''')
-        _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 63, col 35
-        if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 63, col 35.
-        write(u'''[] = {''')
-        _v = VFFSL(SL,"wrapArray",False)(VFFSL(SL,"hermiteGaussWeights",False)(lattice)) # u'${wrapArray($hermiteGaussWeights(lattice))}' on line 63, col 51
-        if _v is not None: write(_filter(_v, rawExpr=u'${wrapArray($hermiteGaussWeights(lattice))}')) # from line 63, col 51.
-        write(u'''};
-''')
-        # 
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
     def mainBegin(self, dict, **KWS):
 
 
 
-        ## CHEETAH: generated from @def mainBegin($dict) at line 67, col 1.
+        ## CHEETAH: generated from @def mainBegin($dict) at line 50, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -250,72 +161,72 @@ const real _hermite_gauss_weights_''')
         # 
         write(u'''
 ''')
-        if 'mpi' in VFFSL(SL,"simulationBuildVariant",True): # generated from line 70, col 3
+        if 'mpi' in VFFSL(SL,"simulationBuildVariant",True): # generated from line 53, col 3
             write(u'''#if defined(CBLAS_VECLIB)
 // We are using MPI. If we let vecLib spawn threads then overall performance will suffer
   setenv("VECLIB_MAXIMUM_THREADS", "1", 1);
 #endif
 ''')
         # 
-        for dimName, basisDict in VFN(VFFSL(SL,"basisMap",True),"items",False)(): # generated from line 77, col 3
-            for field in [field for field in VFFSL(SL,"fields",True) if field.hasDimensionName(dimName)]: # generated from line 78, col 5
-                if field == VFFSL(SL,"geometry",True): # generated from line 79, col 7
+        for dimName, basisDict in VFN(VFFSL(SL,"basisMap",True),"items",False)(): # generated from line 60, col 3
+            for field in [field for field in VFFSL(SL,"fields",True) if field.hasDimensionName(dimName)]: # generated from line 61, col 5
+                if field == VFFSL(SL,"geometry",True): # generated from line 62, col 7
                     continue
-                for (fieldDimRep, geometryDimRep) in zip(field.dimensionWithName(dimName).representations, VFN(VFN(VFFSL(SL,"geometry",True),"dimensionWithName",False)(dimName),"representations",True)): # generated from line 82, col 7
-                    if not fieldDimRep or not isinstance(fieldDimRep, NonUniformDimensionRepresentation) or geometryDimRep.arrayName == fieldDimRep.arrayName: # generated from line 83, col 9
+                for (fieldDimRep, geometryDimRep) in zip(field.dimensionWithName(dimName).representations, VFN(VFN(VFFSL(SL,"geometry",True),"dimensionWithName",False)(dimName),"representations",True)): # generated from line 65, col 7
+                    if not fieldDimRep or not isinstance(fieldDimRep, NonUniformDimensionRepresentation) or geometryDimRep.arrayName == fieldDimRep.arrayName: # generated from line 66, col 9
                         continue
-                    if geometryDimRep.runtimeLattice == fieldDimRep.runtimeLattice: # generated from line 86, col 9
+                    if geometryDimRep.runtimeLattice == fieldDimRep.runtimeLattice: # generated from line 69, col 9
                         write(u'''memcpy(''')
-                        _v = VFFSL(SL,"fieldDimRep.arrayName",True) # u'${fieldDimRep.arrayName}' on line 87, col 8
-                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.arrayName}')) # from line 87, col 8.
+                        _v = VFFSL(SL,"fieldDimRep.arrayName",True) # u'${fieldDimRep.arrayName}' on line 70, col 8
+                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.arrayName}')) # from line 70, col 8.
                         write(u''', ''')
-                        _v = VFFSL(SL,"geometryDimRep.arrayName",True) # u'${geometryDimRep.arrayName}' on line 87, col 34
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.arrayName}')) # from line 87, col 34.
+                        _v = VFFSL(SL,"geometryDimRep.arrayName",True) # u'${geometryDimRep.arrayName}' on line 70, col 34
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.arrayName}')) # from line 70, col 34.
                         write(u''', sizeof(real)*''')
-                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'${geometryDimRep.globalLattice}' on line 87, col 76
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.globalLattice}')) # from line 87, col 76.
+                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'${geometryDimRep.globalLattice}' on line 70, col 76
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.globalLattice}')) # from line 70, col 76.
                         write(u''');
 memcpy(''')
-                        _v = VFFSL(SL,"fieldDimRep.stepSizeArrayName",True) # u'${fieldDimRep.stepSizeArrayName}' on line 88, col 8
-                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.stepSizeArrayName}')) # from line 88, col 8.
+                        _v = VFFSL(SL,"fieldDimRep.stepSizeArrayName",True) # u'${fieldDimRep.stepSizeArrayName}' on line 71, col 8
+                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.stepSizeArrayName}')) # from line 71, col 8.
                         write(u''', ''')
-                        _v = VFFSL(SL,"geometryDimRep.stepSizeArrayName",True) # u'${geometryDimRep.stepSizeArrayName}' on line 88, col 42
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.stepSizeArrayName}')) # from line 88, col 42.
+                        _v = VFFSL(SL,"geometryDimRep.stepSizeArrayName",True) # u'${geometryDimRep.stepSizeArrayName}' on line 71, col 42
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.stepSizeArrayName}')) # from line 71, col 42.
                         write(u''', sizeof(real) * ''')
-                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'${geometryDimRep.globalLattice}' on line 88, col 94
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.globalLattice}')) # from line 88, col 94.
+                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'${geometryDimRep.globalLattice}' on line 71, col 94
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.globalLattice}')) # from line 71, col 94.
                         write(u''');
 ''')
-                    else: # generated from line 89, col 9
+                    else: # generated from line 72, col 9
                         write(u'''for (long _i0=0; _i0 < ''')
-                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 90, col 24
-                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 90, col 24.
+                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 73, col 24
+                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 73, col 24.
                         write(u'''; _i0++) {
   ''')
-                        _v = VFFSL(SL,"fieldDimRep.arrayName",True) # u'${fieldDimRep.arrayName}' on line 91, col 3
-                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.arrayName}')) # from line 91, col 3.
+                        _v = VFFSL(SL,"fieldDimRep.arrayName",True) # u'${fieldDimRep.arrayName}' on line 74, col 3
+                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.arrayName}')) # from line 74, col 3.
                         write(u'''[_i0] = ''')
-                        _v = VFFSL(SL,"geometryDimRep.arrayName",True) # u'${geometryDimRep.arrayName}' on line 91, col 35
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.arrayName}')) # from line 91, col 35.
+                        _v = VFFSL(SL,"geometryDimRep.arrayName",True) # u'${geometryDimRep.arrayName}' on line 74, col 35
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.arrayName}')) # from line 74, col 35.
                         write(u'''[_i0 * (''')
-                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'$geometryDimRep.globalLattice' on line 91, col 70
-                        if _v is not None: write(_filter(_v, rawExpr=u'$geometryDimRep.globalLattice')) # from line 91, col 70.
+                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'$geometryDimRep.globalLattice' on line 74, col 70
+                        if _v is not None: write(_filter(_v, rawExpr=u'$geometryDimRep.globalLattice')) # from line 74, col 70.
                         write(u''' / ''')
-                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 91, col 102
-                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 91, col 102.
+                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 74, col 102
+                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 74, col 102.
                         write(u''')];
   ''')
-                        _v = VFFSL(SL,"fieldDimRep.stepSizeArrayName",True) # u'${fieldDimRep.stepSizeArrayName}' on line 92, col 3
-                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.stepSizeArrayName}')) # from line 92, col 3.
+                        _v = VFFSL(SL,"fieldDimRep.stepSizeArrayName",True) # u'${fieldDimRep.stepSizeArrayName}' on line 75, col 3
+                        if _v is not None: write(_filter(_v, rawExpr=u'${fieldDimRep.stepSizeArrayName}')) # from line 75, col 3.
                         write(u'''[_i0] = ''')
-                        _v = VFFSL(SL,"geometryDimRep.stepSizeArrayName",True) # u'${geometryDimRep.stepSizeArrayName}' on line 92, col 43
-                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.stepSizeArrayName}')) # from line 92, col 43.
+                        _v = VFFSL(SL,"geometryDimRep.stepSizeArrayName",True) # u'${geometryDimRep.stepSizeArrayName}' on line 75, col 43
+                        if _v is not None: write(_filter(_v, rawExpr=u'${geometryDimRep.stepSizeArrayName}')) # from line 75, col 43.
                         write(u'''[_i0 * (''')
-                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'$geometryDimRep.globalLattice' on line 92, col 86
-                        if _v is not None: write(_filter(_v, rawExpr=u'$geometryDimRep.globalLattice')) # from line 92, col 86.
+                        _v = VFFSL(SL,"geometryDimRep.globalLattice",True) # u'$geometryDimRep.globalLattice' on line 75, col 86
+                        if _v is not None: write(_filter(_v, rawExpr=u'$geometryDimRep.globalLattice')) # from line 75, col 86.
                         write(u''' / ''')
-                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 92, col 118
-                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 92, col 118.
+                        _v = VFFSL(SL,"fieldDimRep.globalLattice",True) # u'$fieldDimRep.globalLattice' on line 75, col 118
+                        if _v is not None: write(_filter(_v, rawExpr=u'$fieldDimRep.globalLattice')) # from line 75, col 118.
                         write(u''')];
 }
 ''')
@@ -373,8 +284,6 @@ memcpy(''')
 
 
 
-
-
 ''')
         
         ########################################
diff --git a/xpdeint/Features/Transforms/MMT.tmpl b/xpdeint/Features/Transforms/MMT.tmpl
index e2661dc..9bf08c7 100644
--- a/xpdeint/Features/Transforms/MMT.tmpl
+++ b/xpdeint/Features/Transforms/MMT.tmpl
@@ -47,23 +47,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
   @#
 @end def
 
- at def besselGlobalsForDim($dimName, $basisDict)
-  @#
-  @set $besselOrder = basisDict['order'] + basisDict['orderOffset']
-  @set $lattice = basisDict['lattice']
-const real _normbesseljzeros_${dimName}[] = {${wrapArray($normalisedBesselJZeros(besselOrder, lattice))}};
-const real _besseljnorm_${dimName} = ${besselJZeros(besselOrder, lattice+1)[-1]};
-  @#
- at end def
-
- at def hermiteGaussGlobalsForDim($dimName, $basisDict)
-  @#
-  @set $lattice = basisDict['lattice']
-const real _hermite_zeros_${dimName}[] = {${wrapArray($hermiteZeros(lattice))}};
-const real _hermite_gauss_weights_${dimName}[] = {${wrapArray($hermiteGaussWeights(lattice))}};
-  @#
- at end def
-
 @def mainBegin($dict)
   @#
 
diff --git a/xpdeint/Features/Transforms/NoTransformMPI.py b/xpdeint/Features/Transforms/NoTransformMPI.py
index bf0be87..be38fc1 100644
--- a/xpdeint/Features/Transforms/NoTransformMPI.py
+++ b/xpdeint/Features/Transforms/NoTransformMPI.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.638611
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/NoTransformMPI.tmpl'
+__CHEETAH_genTime__ = 1389652442.157351
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/NoTransformMPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Feb 23 00:45:53 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/TransformMultiplexer.py b/xpdeint/Features/Transforms/TransformMultiplexer.py
index e922dc2..7cdcaab 100644
--- a/xpdeint/Features/Transforms/TransformMultiplexer.py
+++ b/xpdeint/Features/Transforms/TransformMultiplexer.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.742398
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/TransformMultiplexer.tmpl'
+__CHEETAH_genTime__ = 1389652444.353614
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/TransformMultiplexer.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/_BesselTransform.py b/xpdeint/Features/Transforms/_BesselTransform.py
new file mode 100755
index 0000000..178276c
--- /dev/null
+++ b/xpdeint/Features/Transforms/_BesselTransform.py
@@ -0,0 +1,238 @@
+#!/usr/bin/env python
+# encoding: utf-8
+"""
+_BesselTransform.py
+
+Created by Graham Dennis on 2013-11-26.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+
+from xpdeint.Features.Transforms.MMT import MMT
+
+from xpdeint.Features.Transforms.BesselBasis import BesselBasis
+
+from xpdeint.Geometry.BesselDimensionRepresentation import BesselDimensionRepresentation
+from xpdeint.Geometry.BesselNeumannDimensionRepresentation import BesselNeumannDimensionRepresentation
+from xpdeint.Geometry.SphericalBesselDimensionRepresentation import SphericalBesselDimensionRepresentation
+
+from xpdeint.ParserException import ParserException, error_missing_python_library
+
+# We don't directly import mpmath so that mpmath isn't a requirement for xpdeint
+# unless you use MMT's.
+mpmath = None
+
+# Again, don't directly import numpy
+numpy = None
+scipy = None
+
+
+def require_mpmath():
+  global mpmath
+  if not mpmath:
+    try:
+      import mpmath
+    except ImportError:
+      error_missing_python_library("mpmath")
+    
+    if not hasattr(mpmath, 'besselj'):
+      mpmath.besselj = mpmath.jn
+    mpmath.mp.prec = 64
+    
+
+def require_numpy():
+  global numpy
+  if not numpy:
+    try:
+      import numpy
+    except ImportError:
+      error_missing_python_library("numpy")
+
+def require_scipy():
+  require_numpy()
+  global scipy
+  if not scipy:
+    try:
+      import scipy
+      import scipy.special
+      import scipy.optimize
+    except ImportError:
+      error_missing_python_library("scipy")
+
+def besselJZeros(m, a, b):
+  require_mpmath()
+  if not hasattr(mpmath, 'besseljzero'):
+    besseljn = lambda x: mpmath.besselj(m, x)
+    results = [mpmath.findroot(besseljn, mpmath.pi*(kp - 1./4 + 0.5*m)) for kp in range(a, b+1)]
+  else:
+    results = [mpmath.besseljzero(m, i) for i in xrange(a, b+1)]
+  # Check that we haven't found double roots or missed a root. All roots should be separated by approximately pi
+  assert all([0.6*mpmath.pi < (b - a) < 1.4*mpmath.pi for a, b in zip(results[:-1], results[1:])]), "Separation of Bessel zeros was incorrect."
+  return results
+
+def besselJPrimeZeros(m, a, b):
+  require_mpmath()
+  results = [mpmath.besseljzero(m, i, derivative=1) for i in xrange(a, b+1)]
+  return results
+
+def besselNeumannMatrix(m, besseljzeros, besselValues, S):
+  require_scipy()
+  N = len(besseljzeros)
+  matrix = numpy.zeros([N, N])
+  for i in xrange(N):
+    for j in xrange(N):
+      matrix[i,j] = (2.0 / S) * scipy.special.jn(m, besseljzeros[i] * besseljzeros[j] / S) \
+          / (besselValues[i] * besselValues[j])
+  return matrix
+  
+def besselNeumannSFactor(m, besseljzeros):
+  require_scipy()
+  besseljzeros_for_matrix = besseljzeros[:-1]
+  N = len(besseljzeros_for_matrix)
+  print "Computing the Bessel-Neumann transform S factor for lattice size %i (this will be performed once and saved for each lattice size)..." % (N)
+  besselValues = []
+  for i in xrange(N):
+    x = numpy.abs(scipy.special.jn(m, besseljzeros[i]))
+    if m > 0:
+      x *= numpy.sqrt(1.0 - m*m / (besseljzeros[i] * besseljzeros[i]))
+    besselValues.append(x)
+
+  def f(S):
+    matrix = besselNeumannMatrix(m, besseljzeros_for_matrix, besselValues, S)
+    determinant = numpy.linalg.det(matrix)
+    result = numpy.abs(determinant) - 1.0
+    return result
+  
+  S, results = scipy.optimize.brentq(f, besseljzeros[-2], besseljzeros[-1], full_output=True)
+  return S
+
+
+class _BesselTransform(MMT):
+  transformName = 'BesselTransform'
+  
+  def __init__(self, *args, **KWs):
+    MMT.__init__(self, *args, **KWs)
+    dataCache = self.getVar('dataCache')
+    
+    self.besselJZeroCache = dataCache.setdefault('besselJZeros', {})
+    self.besselJPrimeZeroCache = dataCache.setdefault('besselJPrimeZeros', {})
+    self.besselNeumannSCache = dataCache.setdefault('besselNeumannSFactor', {})
+  
+  def newDimension(self, name, lattice, minimum, maximum,
+                   parent, transformName, aliases = set(),
+                   spectralLattice = None,
+                   type = 'real', volumePrefactor = None,
+                   xmlElement = None):
+    assert type == 'real'
+    assert transformName in ['bessel', 'spherical-bessel', 'bessel-neumann']
+    if not spectralLattice:
+      spectralLattice = lattice
+    dim = super(_BesselTransform, self).newDimension(name, max(lattice, spectralLattice), minimum, maximum,
+                                                     parent, transformName, aliases, 
+                                                     type, volumePrefactor, xmlElement)
+    self.basisMap[dim.name] = transformName # Needs to be constructed basis here
+    
+    # Bessel functions
+    order = 0
+    if xmlElement.hasAttribute('order'):
+      features = self.getVar('features')
+      orderString = xmlElement.getAttribute('order')
+      try:
+        order = int(orderString)
+      except ValueError:
+        raise ParserException(xmlElement, "Cannot understand '%s' as a meaningful order. "
+                                          "Order values must be non-negative integers." \
+                                          % xmlElement.getAttribute('order'))
+      else:
+        if order < 0:
+          raise ParserException(xmlElement, "The 'order' attribute for Bessel transforms must be non-negative integers.")
+    orderOffset = 0
+    dimRepClass = BesselDimensionRepresentation
+    if transformName == 'bessel-neumann':
+      weightOrder = order
+      dimRepClass = BesselNeumannDimensionRepresentation
+    else:
+      weightOrder = order + 1
+    
+    if transformName == 'spherical-bessel':
+      dimRepClass = SphericalBesselDimensionRepresentation
+      if not self.hasattr('uselib'):
+        self.uselib = []
+      self.uselib.append('gsl')
+      orderOffset = 0.5
+    
+    basis = BesselBasis(parent = self, **self.argumentsToTemplateConstructors)
+    
+    self.basisMap[dim.name] = dict(
+      globalsFunction = self.globalsForDim,
+      order = order,
+      orderOffset = orderOffset,
+      lattice = lattice,
+      transformations = dict([
+        ((name, 'k' + name), BesselBasis(parent = self, **self.argumentsToTemplateConstructors))
+      ])
+    )
+    
+    if not float(minimum) == 0.0:
+      raise ParserException(xmlElement, "The domain for Bessel transform dimensions must begin at 0.")
+    
+    # Real space representation
+    xspace = dimRepClass(name = name, type = type, runtimeLattice = lattice,
+                         stepSizeArray = True, parent = dim,
+                         tag = self.coordinateSpaceTag,
+                         _maximum = maximum, _order = order, _weightOrder = weightOrder,
+                         **self.argumentsToTemplateConstructors)
+    dim.addRepresentation(xspace)
+    
+    # Spectral space representation
+    kspace = dimRepClass(name = 'k' + name, type = type, runtimeLattice = spectralLattice,
+                         stepSizeArray = True, parent = dim,
+                         _maximum = '(_besseljS_%(name)s/((real)%(maximum)s))' % locals(),
+                         _order = order, _weightOrder = weightOrder,
+                         reductionMethod = dimRepClass.ReductionMethod.fixedStep,
+                         tag = self.spectralSpaceTag,
+                         **self.argumentsToTemplateConstructors)
+    dim.addRepresentation(kspace)
+    
+    return dim
+  
+  def besselJZeros(self, m, k):
+    if not m in self.besselJZeroCache:
+      self.besselJZeroCache[m] = besselJZeros(m, 1, k)
+    else:
+      if len(self.besselJZeroCache[m]) < k:
+        self.besselJZeroCache[m].extend(besselJZeros(m, len(self.besselJZeroCache[m])+1, k))
+    
+    return self.besselJZeroCache[m][:k]
+  
+  def besselJPrimeZeros(self, m, k):
+    if not m in self.besselJPrimeZeroCache:
+      self.besselJPrimeZeroCache[m] = besselJPrimeZeros(m, 1, k)
+    else:
+      if len(self.besselJPrimeZeroCache[m]) < k:
+        self.besselJPrimeZeroCache[m].extend(besselJPrimeZeros(m, len(self.besselJPrimeZeroCache[m])+1, k))
+    
+    return self.besselJPrimeZeroCache[m][:k]
+  
+  def besselNeumannSFactor(self, m, k):
+    require_numpy()
+    if not (m, k) in self.besselNeumannSCache:
+      zeros = map(numpy.double, self.besselJPrimeZeros(m, k+1))
+      S = besselNeumannSFactor(m, zeros)
+      self.besselNeumannSCache[(m, k)] = float(S)
+    
+    return self.besselNeumannSCache[(m, k)]
diff --git a/xpdeint/Features/Transforms/_FourierTransformFFTW3.py b/xpdeint/Features/Transforms/_FourierTransformFFTW3.py
index d3fade9..9dbd82b 100755
--- a/xpdeint/Features/Transforms/_FourierTransformFFTW3.py
+++ b/xpdeint/Features/Transforms/_FourierTransformFFTW3.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python,
+#!/usr/bin/env python
 # encoding: utf-8
 """
 _FourierTransform.py
diff --git a/xpdeint/Features/Transforms/_HermiteGaussTransform.py b/xpdeint/Features/Transforms/_HermiteGaussTransform.py
new file mode 100755
index 0000000..f6987f5
--- /dev/null
+++ b/xpdeint/Features/Transforms/_HermiteGaussTransform.py
@@ -0,0 +1,223 @@
+#!/usr/bin/env python
+# encoding: utf-8
+"""
+_HermiteGaussTransform.py
+
+Created by Graham Dennis on 2013-11-26.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+
+from xpdeint.Features.Transforms.MMT import MMT
+
+from xpdeint.Features.Transforms.HermiteGaussEPBasis import HermiteGaussEPBasis
+from xpdeint.Features.Transforms.HermiteGaussFourierEPBasis import HermiteGaussFourierEPBasis
+from xpdeint.Features.Transforms.HermiteGaussTwiddleBasis import HermiteGaussTwiddleBasis
+
+from xpdeint.Geometry.UniformDimensionRepresentation import UniformDimensionRepresentation
+from xpdeint.Geometry.HermiteGaussDimensionRepresentation import HermiteGaussDimensionRepresentation
+
+from xpdeint.ParserException import ParserException
+
+# We don't directly import numpy so that numpy isn't a requirement for xpdeint
+# unless you use MMT's.
+numpy = None
+
+def require_numpy():
+  global numpy
+  if not numpy:
+    import numpy
+
+
+def normalisedExtremeHermite(n, x):
+  """
+  Evaluate the normalised 'extreme' Hermite polynomial H_n(x) exp(-x^2/2)/(sqrt(n! 2^n sqrt(pi))).
+  """
+  require_numpy()
+  assert isinstance(n, int)
+  x = numpy.array(x)
+  expFactor = numpy.exp(-x*x/(2*n))
+  expFactor2 = numpy.exp(-x*x/n)
+  hermites = [None, 0.0, numpy.power(numpy.pi, -0.25) * expFactor]
+  for j in range(1, n+1):
+    hermites[:2] = hermites[1:]
+    hermites[2] = x * numpy.sqrt(2./j) * hermites[1] * expFactor \
+                  - numpy.sqrt((j-1.)/j) * hermites[0] * expFactor2
+  return hermites[2]
+
+
+def hermiteZeros(n):
+  """Return the n zeros of the nth Hermite polynomial H_n(x)."""
+  # This method works by constructing a matrix T_n such that |T_n - xI| = H_n(x)
+  # where I is the identity matrix. The matrix T_n is tridiagonal and is constructed
+  # via the recurrence relationship
+  #
+  #           b p (x) = (x - a ) p   (x) - b   p   (x)
+  #            j j            j   j-1       j-1 j-2
+  #
+  # The constructed matrix has a_j on the diagonal and sqrt(b_j) on the two neighbouring diagonals.
+  #
+  # The recurrence relationship for H_n(x) has a_n = 0 and b_n = sqrt(n/2).
+  # To improve the accuracy and speed of the calculation of the roots we note that the roots are symmetric
+  # about zero and the Hermite functions can be written as
+  #
+  #                          2
+  #            H (x) = J   (x ) for even x, and 
+  #             n       n/2
+  #
+  #                                2
+  #            H (x) = x K       (x ) for odd x.
+  #             n         (n-1)/2
+  #
+  # For even n, the recurrence relation for J_n is defined by a_n = 2n - 3/2, b_n = sqrt( n (n - 1/2) ).
+  # For odd n, the recurrence relation for K_n is defined by a_n = 2n - 1/2, b_n = sqrt( n (n + 1/2) ).
+  
+  require_numpy()
+  assert isinstance(n, int)
+  positiveRoots = n//2
+  if (n & 1) == 0:
+    # n is even
+    a = 2*numpy.arange(1, positiveRoots + 1) - 1.5
+    b = numpy.sqrt(numpy.arange(1, positiveRoots) * (numpy.arange(1, positiveRoots) - 0.5))
+  else:
+    # n is odd
+    a = 2*numpy.arange(1, positiveRoots + 1) - 0.5
+    b = numpy.sqrt(numpy.arange(1, positiveRoots) * (numpy.arange(1, positiveRoots) + 0.5))
+  nproots = numpy.sqrt(numpy.linalg.eigvalsh(numpy.diag(a) + numpy.diag(b, -1)))
+  roots = list(nproots)
+  # Add the negative roots
+  roots.extend(-nproots)
+  # if n is odd, add zero as a root
+  if (n & 1) == 1: roots.append(0.0)
+  roots.sort()
+  # Convert back to python float format for storage.
+  return map(float, roots)
+
+def hermiteGaussWeightsFromZeros(n, roots):
+  assert isinstance(n, int)
+  require_numpy()
+  roots = numpy.array(roots)
+  weights = numpy.exp(-roots*roots/(n-1)) / (n * normalisedExtremeHermite(n-1, roots) ** 2)
+  # Convert back to python float format for storage
+  return map(float, weights)
+
+class _HermiteGaussTransform(MMT):
+  transformName = 'HermiteGaussTransform'
+  
+  def __init__(self, *args, **KWs):
+    MMT.__init__(self, *args, **KWs)
+    dataCache = self.getVar('dataCache')
+    
+    self.hermiteCache = dataCache.setdefault('hermiteGauss', {})
+  
+  def newDimension(self, name, lattice, minimum, maximum,
+                   parent, transformName, aliases = set(),
+                   spectralLattice = None,
+                   type = 'real', volumePrefactor = None,
+                   xmlElement = None):
+    assert type == 'real'
+    assert transformName in ['hermite-gauss']
+    if not spectralLattice:
+      spectralLattice = lattice
+    dim = super(_HermiteGaussTransform, self).newDimension(name, max(lattice, spectralLattice), minimum, maximum,
+                                                           parent, transformName, aliases, 
+                                                           type, volumePrefactor, xmlElement)
+    self.basisMap[dim.name] = transformName # Needs to be constructed basis here
+    
+    # Hermite-gauss basis (harmonic oscillator)
+    coordinate2SpectralBasisChange = HermiteGaussEPBasis(parent = self, **self.argumentsToTemplateConstructors)
+    spectralBasisTwiddleChange = HermiteGaussTwiddleBasis(parent = self, **self.argumentsToTemplateConstructors)
+    # This is how we used to do 'nx' -> 'kx' transforms
+    fourier2SpectralBasisChange = HermiteGaussFourierEPBasis(parent = self, **self.argumentsToTemplateConstructors)
+    
+    self.basisMap[dim.name] = dict(
+      globalsFunction = self.globalsForDim,
+      lattice = lattice,
+      transformations = dict([
+        ((name, 'n' + name), coordinate2SpectralBasisChange),
+        ((name + '_4f', 'n' + name), coordinate2SpectralBasisChange),
+        (('k' + name, 'n' + name + '_twiddle'), coordinate2SpectralBasisChange),
+        (('n' + name, 'n' + name + '_twiddle'), spectralBasisTwiddleChange),
+        # This is how the 'nx' -> 'kx' transforms used to be done, but it's slower.
+        # This transform should never be chosen because the cost estimates should prevent it, but we keep it here
+        # anyway for reference.
+        (('k' + name, 'n' + name), fourier2SpectralBasisChange)
+      ])
+    )
+    
+    if not float(minimum) == 0.0:
+      raise ParserException(xmlElement, "For 'hermite-gauss' transformed dimensions, use the 'length_scale' attribute "
+                                        "instead of 'domain'.")
+    
+    # Real space representation
+    xspace = HermiteGaussDimensionRepresentation(
+      name = name, type = type, runtimeLattice = lattice, _maximum = maximum,
+      stepSizeArray = True, parent = dim, tag = self.coordinateSpaceTag,
+      **self.argumentsToTemplateConstructors
+    )
+    dim.addRepresentation(xspace)
+    
+    # Spectral space representation
+    nspace = UniformDimensionRepresentation(
+      name = 'n' + name, type = 'long', runtimeLattice = spectralLattice,
+      _minimum = '0', _maximum = spectralLattice, _stepSize = '1',
+      parent = dim, tag = self.spectralSpaceTag,
+      reductionMethod = UniformDimensionRepresentation.ReductionMethod.fixedStep,
+      **self.argumentsToTemplateConstructors
+    )
+    dim.addRepresentation(nspace)
+    
+    # Fourier space representation
+    # FIXME: We may want to make this have a fixedStep ReductionMethod, but that requires support from
+    # the DimRep and from FourierTransformFFTW3MPI in the case that this dimension is distributed.
+    kspace = HermiteGaussDimensionRepresentation(
+      name = 'k' + name, type = type, runtimeLattice = lattice, _maximum = "(1.0 / (%s))" % maximum,
+      stepSizeArray = True, parent = dim, tag = self.auxiliarySpaceTag,
+      **self.argumentsToTemplateConstructors
+    )
+    dim.addRepresentation(kspace)
+    
+    twiddleSpace = UniformDimensionRepresentation(
+        name = 'n' + name + '_twiddle', type = 'long', runtimeLattice = spectralLattice,
+        _minimum = '0', _maximum = spectralLattice, _stepSize = '1',
+        parent = dim, tag = self.auxiliarySpaceTag,
+        reductionMethod = UniformDimensionRepresentation.ReductionMethod.fixedStep,
+        **self.argumentsToTemplateConstructors
+    )
+    dim.addRepresentation(twiddleSpace)
+    
+    fourFieldCoordinateSpace = HermiteGaussDimensionRepresentation(
+      name = name + '_4f', type = type, runtimeLattice = lattice, _maximum = maximum,
+      stepSizeArray = True, parent = dim, tag = self.auxiliarySpaceTag, fieldCount = 4.0,
+      **self.argumentsToTemplateConstructors
+    )
+    dim.addRepresentation(fourFieldCoordinateSpace)
+    return dim
+  
+  def hermiteZeros(self, n):
+    zerosCache = self.hermiteCache.setdefault('zeros',{})
+    if not n in zerosCache:
+      zerosCache[n] = hermiteZeros(n)
+    return zerosCache[n]
+  
+  def hermiteGaussWeights(self, n):
+    weightsCache = self.hermiteCache.setdefault('weights',{})
+    if not n in weightsCache:
+      weightsCache[n] = hermiteGaussWeightsFromZeros(n, self.hermiteZeros(n))
+    return weightsCache[n]
+  
+
diff --git a/xpdeint/Features/Transforms/_MMT.py b/xpdeint/Features/Transforms/_MMT.py
index 50fa7bf..a4f68dd 100755
--- a/xpdeint/Features/Transforms/_MMT.py
+++ b/xpdeint/Features/Transforms/_MMT.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python,
+#!/usr/bin/env python
 # encoding: utf-8
 """
 _MMT.py
@@ -24,125 +24,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from xpdeint.Features.Transforms._Transform import _Transform
 
-from xpdeint.Features.Transforms.BesselBasis import BesselBasis
-from xpdeint.Features.Transforms.HermiteGaussEPBasis import HermiteGaussEPBasis
-from xpdeint.Features.Transforms.HermiteGaussFourierEPBasis import HermiteGaussFourierEPBasis
-from xpdeint.Features.Transforms.HermiteGaussTwiddleBasis import HermiteGaussTwiddleBasis
-
 from xpdeint.Geometry.DimensionRepresentation import DimensionRepresentation
-from xpdeint.Geometry.UniformDimensionRepresentation import UniformDimensionRepresentation
-from xpdeint.Geometry.BesselDimensionRepresentation import BesselDimensionRepresentation
-from xpdeint.Geometry.SphericalBesselDimensionRepresentation import SphericalBesselDimensionRepresentation
-from xpdeint.Geometry.HermiteGaussDimensionRepresentation import HermiteGaussDimensionRepresentation
-
-from xpdeint.ParserException import ParserException
-
-import operator
-
-# We don't directly import mpmath so that mpmath isn't a requirement for xpdeint
-# unless you use MMT's.
-mpmath = None
-
-# Again, don't directly import numpy
-numpy = None
-
-def require_mpmath():
-  global mpmath
-  if not mpmath:
-    import mpmath
-    if not hasattr(mpmath, 'besselj'):
-      mpmath.besselj = mpmath.jn
-    mpmath.mp.prec = 64
-    
-
-def require_numpy():
-  global numpy
-  if not numpy:
-    import numpy
-
-def normalisedExtremeHermite(n, x):
-  """
-  Evaluate the normalised 'extreme' Hermite polynomial H_n(x) exp(-x^2/2)/(sqrt(n! 2^n sqrt(pi))).
-  """
-  require_numpy()
-  assert isinstance(n, int)
-  x = numpy.array(x)
-  expFactor = numpy.exp(-x*x/(2*n))
-  expFactor2 = numpy.exp(-x*x/n)
-  hermites = [None, 0.0, numpy.power(numpy.pi, -0.25) * expFactor]
-  for j in range(1, n+1):
-    hermites[:2] = hermites[1:]
-    hermites[2] = x * numpy.sqrt(2./j) * hermites[1] * expFactor \
-                  - numpy.sqrt((j-1.)/j) * hermites[0] * expFactor2
-  return hermites[2]
-
-
-def hermiteZeros(n):
-  """Return the n zeros of the nth Hermite polynomial H_n(x)."""
-  # This method works by constructing a matrix T_n such that |T_n - xI| = H_n(x)
-  # where I is the identity matrix. The matrix T_n is tridiagonal and is constructed
-  # via the recurrence relationship
-  #
-  #           b p (x) = (x - a ) p   (x) - b   p   (x)
-  #            j j            j   j-1       j-1 j-2
-  #
-  # The constructed matrix has a_j on the diagonal and sqrt(b_j) on the two neighbouring diagonals.
-  #
-  # The recurrence relationship for H_n(x) has a_n = 0 and b_n = sqrt(n/2).
-  # To improve the accuracy and speed of the calculation of the roots we note that the roots are symmetric
-  # about zero and the Hermite functions can be written as
-  #
-  #                          2
-  #            H (x) = J   (x ) for even x, and 
-  #             n       n/2
-  #
-  #                                2
-  #            H (x) = x K       (x ) for odd x.
-  #             n         (n-1)/2
-  #
-  # For even n, the recurrence relation for J_n is defined by a_n = 2n - 3/2, b_n = sqrt( n (n - 1/2) ).
-  # For odd n, the recurrence relation for K_n is defined by a_n = 2n - 1/2, b_n = sqrt( n (n + 1/2) ).
-  
-  require_numpy()
-  assert isinstance(n, int)
-  positiveRoots = n//2
-  if (n & 1) == 0:
-    # n is even
-    a = 2*numpy.arange(1, positiveRoots + 1) - 1.5
-    b = numpy.sqrt(numpy.arange(1, positiveRoots) * (numpy.arange(1, positiveRoots) - 0.5))
-  else:
-    # n is odd
-    a = 2*numpy.arange(1, positiveRoots + 1) - 0.5
-    b = numpy.sqrt(numpy.arange(1, positiveRoots) * (numpy.arange(1, positiveRoots) + 0.5))
-  nproots = numpy.sqrt(numpy.linalg.eigvalsh(numpy.diag(a) + numpy.diag(b, -1)))
-  roots = list(nproots)
-  # Add the negative roots
-  roots.extend(-nproots)
-  # if n is odd, add zero as a root
-  if (n & 1) == 1: roots.append(0.0)
-  roots.sort()
-  # Convert back to python float format for storage.
-  return map(float, roots)
 
-def hermiteGaussWeightsFromZeros(n, roots):
-  assert isinstance(n, int)
-  require_numpy()
-  roots = numpy.array(roots)
-  weights = numpy.exp(-roots*roots/(n-1)) / (n * normalisedExtremeHermite(n-1, roots) ** 2)
-  # Convert back to python float format for storage
-  return map(float, weights)
-
-
-def besselJZeros(m, a, b):
-  require_mpmath()
-  if not hasattr(mpmath, 'besseljzero'):
-    besseljn = lambda x: mpmath.besselj(m, x)
-    results = [mpmath.findroot(besseljn, mpmath.pi*(kp - 1./4 + 0.5*m)) for kp in range(a, b+1)]
-  else:
-    results = [mpmath.besseljzero(m, i) for i in xrange(a, b+1)]
-  # Check that we haven't found double roots or missed a root. All roots should be separated by approximately pi
-  assert all([0.6*mpmath.pi < (b - a) < 1.4*mpmath.pi for a, b in zip(results[:-1], results[1:])]), "Separation of Bessel zeros was incorrect."
-  return results
 
 class _MMT (_Transform):
   transformName = 'MMT'
@@ -154,10 +37,6 @@ class _MMT (_Transform):
   def __init__(self, *args, **KWs):
     _Transform.__init__(self, *args, **KWs)
     self.basisMap = {}
-    dataCache = self.getVar('dataCache')
-    
-    self.besselJZeroCache = dataCache.setdefault('besselJZeros', {})
-    self.hermiteCache = dataCache.setdefault('hermiteGauss', {})
   
   @property
   def children(self):
@@ -169,147 +48,6 @@ class _MMT (_Transform):
     return '\n'.join([basisDict.get('globalsFunction')(dimName, basisDict) \
                           for dimName, basisDict in self.basisMap.items() if basisDict.get('globalsFunction')])
   
-  def newDimension(self, name, lattice, minimum, maximum,
-                   parent, transformName, aliases = set(),
-                   spectralLattice = None,
-                   type = 'real', volumePrefactor = None,
-                   xmlElement = None):
-    assert type == 'real'
-    assert transformName in ['bessel', 'spherical-bessel', 'hermite-gauss']
-    if not spectralLattice:
-      spectralLattice = lattice
-    dim = super(_MMT, self).newDimension(name, max(lattice, spectralLattice), minimum, maximum,
-                                         parent, transformName, aliases, 
-                                         type, volumePrefactor, xmlElement)
-    self.basisMap[dim.name] = transformName # Needs to be constructed basis here
-    
-    if transformName in ('bessel', 'spherical-bessel'):
-      # Bessel functions
-      order = 0
-      if xmlElement.hasAttribute('order'):
-        features = self.getVar('features')
-        orderString = xmlElement.getAttribute('order')
-        try:
-          order = int(orderString)
-        except ValueError:
-          raise ParserException(xmlElement, "Cannot understand '%s' as a meaningful order. "
-                                            "Order values must be non-negative integers." \
-                                            % xmlElement.getAttribute('order'))
-        else:
-          if order < 0:
-            raise ParserException(xmlElement, "The 'order' attribute for Bessel transforms must be non-negative integers.")
-      orderOffset = 0
-      dimRepClass = BesselDimensionRepresentation
-      
-      if transformName == 'spherical-bessel':
-        dimRepClass = SphericalBesselDimensionRepresentation
-        if not self.hasattr('uselib'):
-          self.uselib = []
-        self.uselib.append('gsl')
-        orderOffset = 0.5
-      
-      self.basisMap[dim.name] = dict(
-        globalsFunction = self.besselGlobalsForDim,
-        order = order,
-        orderOffset = orderOffset,
-        lattice = lattice,
-        transformations = dict([
-          ((name, 'k' + name), BesselBasis(parent = self, **self.argumentsToTemplateConstructors))
-        ])
-      )
-      
-      if not float(minimum) == 0.0:
-        raise ParserException(xmlElement, "The domain for Bessel transform dimensions must begin at 0.")
-      
-      # Real space representation
-      xspace = dimRepClass(name = name, type = type, runtimeLattice = lattice,
-                           stepSizeArray = True, parent = dim,
-                           tag = self.coordinateSpaceTag,
-                           _maximum = maximum, _order = order,
-                           **self.argumentsToTemplateConstructors)
-      dim.addRepresentation(xspace)
-      
-      # Spectral space representation
-      kspace = dimRepClass(name = 'k' + name, type = type, runtimeLattice = spectralLattice,
-                           stepSizeArray = True, parent = dim,
-                           _maximum = '(_besseljnorm_%(name)s/((real)%(maximum)s))' % locals(),
-                           _order = order,
-                           reductionMethod = dimRepClass.ReductionMethod.fixedStep,
-                           tag = self.spectralSpaceTag,
-                           **self.argumentsToTemplateConstructors)
-      dim.addRepresentation(kspace)
-      
-    elif transformName == 'hermite-gauss':
-      # Hermite-gauss basis (harmonic oscillator)
-      coordinate2SpectralBasisChange = HermiteGaussEPBasis(parent = self, **self.argumentsToTemplateConstructors)
-      spectralBasisTwiddleChange = HermiteGaussTwiddleBasis(parent = self, **self.argumentsToTemplateConstructors)
-      # This is how we used to do 'nx' -> 'kx' transforms
-      fourier2SpectralBasisChange = HermiteGaussFourierEPBasis(parent = self, **self.argumentsToTemplateConstructors)
-      
-      self.basisMap[dim.name] = dict(
-        globalsFunction = self.hermiteGaussGlobalsForDim,
-        lattice = lattice,
-        transformations = dict([
-          ((name, 'n' + name), coordinate2SpectralBasisChange),
-          ((name + '_4f', 'n' + name), coordinate2SpectralBasisChange),
-          (('k' + name, 'n' + name + '_twiddle'), coordinate2SpectralBasisChange),
-          (('n' + name, 'n' + name + '_twiddle'), spectralBasisTwiddleChange),
-          # This is how the 'nx' -> 'kx' transforms used to be done, but it's slower.
-          # This transform should never be chosen because the cost estimates should prevent it, but we keep it here
-          # anyway for reference.
-          (('k' + name, 'n' + name), fourier2SpectralBasisChange)
-        ])
-      )
-      
-      if not float(minimum) == 0.0:
-        raise ParserException(xmlElement, "For 'hermite-gauss' transformed dimensions, use the 'length_scale' attribute "
-                                          "instead of 'domain'.")
-      
-      # Real space representation
-      xspace = HermiteGaussDimensionRepresentation(
-        name = name, type = type, runtimeLattice = lattice, _maximum = maximum,
-        stepSizeArray = True, parent = dim, tag = self.coordinateSpaceTag,
-        **self.argumentsToTemplateConstructors
-      )
-      dim.addRepresentation(xspace)
-      
-      # Spectral space representation
-      nspace = UniformDimensionRepresentation(
-        name = 'n' + name, type = 'long', runtimeLattice = spectralLattice,
-        _minimum = '0', _maximum = spectralLattice, _stepSize = '1',
-        parent = dim, tag = self.spectralSpaceTag,
-        reductionMethod = UniformDimensionRepresentation.ReductionMethod.fixedStep,
-        **self.argumentsToTemplateConstructors
-      )
-      dim.addRepresentation(nspace)
-      
-      # Fourier space representation
-      # FIXME: We may want to make this have a fixedStep ReductionMethod, but that requires support from
-      # the DimRep and from FourierTransformFFTW3MPI in the case that this dimension is distributed.
-      kspace = HermiteGaussDimensionRepresentation(
-        name = 'k' + name, type = type, runtimeLattice = lattice, _maximum = "(1.0 / (%s))" % maximum,
-        stepSizeArray = True, parent = dim, tag = self.auxiliarySpaceTag,
-        **self.argumentsToTemplateConstructors
-      )
-      dim.addRepresentation(kspace)
-      
-      twiddleSpace = UniformDimensionRepresentation(
-          name = 'n' + name + '_twiddle', type = 'long', runtimeLattice = spectralLattice,
-          _minimum = '0', _maximum = spectralLattice, _stepSize = '1',
-          parent = dim, tag = self.auxiliarySpaceTag,
-          reductionMethod = UniformDimensionRepresentation.ReductionMethod.fixedStep,
-          **self.argumentsToTemplateConstructors
-      )
-      dim.addRepresentation(twiddleSpace)
-      
-      fourFieldCoordinateSpace = HermiteGaussDimensionRepresentation(
-        name = name + '_4f', type = type, runtimeLattice = lattice, _maximum = maximum,
-        stepSizeArray = True, parent = dim, tag = self.auxiliarySpaceTag, fieldCount = 4.0,
-        **self.argumentsToTemplateConstructors
-      )
-      dim.addRepresentation(fourFieldCoordinateSpace)
-    return dim
-  
   def availableTransformations(self):
     results = []
     geometry = self.getVar('geometry')
@@ -336,30 +74,3 @@ class _MMT (_Transform):
     
     return results
   
-  def besselJZeros(self, m, k):
-    if not m in self.besselJZeroCache:
-      self.besselJZeroCache[m] = besselJZeros(m, 1, k)
-    else:
-      if len(self.besselJZeroCache[m]) < k:
-        self.besselJZeroCache[m].extend(besselJZeros(m, len(self.besselJZeroCache[m])+1, k))
-    
-    return self.besselJZeroCache[m][:k]
-  
-  def normalisedBesselJZeros(self, m, k):
-    zeros = self.besselJZeros(m, k+1)
-    norm = zeros[-1]
-    return [zero/norm for zero in zeros[:-1]]
-  
-  def hermiteZeros(self, n):
-    zerosCache = self.hermiteCache.setdefault('zeros',{})
-    if not n in zerosCache:
-      zerosCache[n] = hermiteZeros(n)
-    return zerosCache[n]
-  
-  def hermiteGaussWeights(self, n):
-    weightsCache = self.hermiteCache.setdefault('weights',{})
-    if not n in weightsCache:
-      weightsCache[n] = hermiteGaussWeightsFromZeros(n, self.hermiteZeros(n))
-    return weightsCache[n]
-  
-
diff --git a/xpdeint/Features/Transforms/__init__.py b/xpdeint/Features/Transforms/__init__.py
index 1073250..d60ad31 100644
--- a/xpdeint/Features/Transforms/__init__.py
+++ b/xpdeint/Features/Transforms/__init__.py
@@ -15,7 +15,12 @@ import FourierTransformFFTW3MPI
 FourierTransformFFTW3.FourierTransformFFTW3.mpiCapableSubclass = FourierTransformFFTW3MPI.FourierTransformFFTW3MPI
 transformClasses.update([(name, FourierTransformFFTW3.FourierTransformFFTW3) for name in ['dft', 'dct', 'dst', 'mpi']])
 
-import MMT
-transformClasses.update([(name, MMT.MMT) for name in ['bessel', 'spherical-bessel', 'hermite-gauss']])
+import BesselTransform
+transformClasses.update([(name, BesselTransform.BesselTransform) for name in ['bessel', 'spherical-bessel']])
+import BesselNeumannTransform
+transformClasses['bessel-neumann'] = BesselNeumannTransform.BesselNeumannTransform
+
+import HermiteGaussTransform
+transformClasses['hermite-gauss'] = HermiteGaussTransform.HermiteGaussTransform
 
 del transformClasses
\ No newline at end of file
diff --git a/xpdeint/Features/Validation.py b/xpdeint/Features/Validation.py
index fb342a6..703bc6b 100644
--- a/xpdeint/Features/Validation.py
+++ b/xpdeint/Features/Validation.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.669223
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Validation.tmpl'
+__CHEETAH_genTime__ = 1389652442.109893
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Validation.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Aug 22 16:32:53 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/BesselDimensionRepresentation.py b/xpdeint/Geometry/BesselDimensionRepresentation.py
index d3e20c9..a4dff9b 100644
--- a/xpdeint/Geometry/BesselDimensionRepresentation.py
+++ b/xpdeint/Geometry/BesselDimensionRepresentation.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.703494
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/BesselDimensionRepresentation.tmpl'
-__CHEETAH_srcLastModified__ = 'Wed Jul 11 19:41:11 2012'
+__CHEETAH_genTime__ = 1389652442.523392
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/BesselDimensionRepresentation.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -128,8 +128,8 @@ class BesselDimensionRepresentation(NonUniformDimensionRepresentation):
         
         # 
         write(u'''const real besselFactor = ''')
-        _v = VFFSL(SL,"besselJFunctionCall",False)(VFFSL(SL,"_order",True) + 1, ''.join([u'_normbesseljzeros_',str(VFFSL(SL,"parent.name",True)),u'[',str(VFFSL(SL,"index",True)),u'] * _besseljnorm_',str(VFFSL(SL,"parent.name",True))])) # u"${besselJFunctionCall($_order + 1, c'_normbesseljzeros_${parent.name}[${index}] * _besseljnorm_${parent.name}')}" on line 38, col 27
-        if _v is not None: write(_filter(_v, rawExpr=u"${besselJFunctionCall($_order + 1, c'_normbesseljzeros_${parent.name}[${index}] * _besseljnorm_${parent.name}')}")) # from line 38, col 27.
+        _v = VFFSL(SL,"besselJFunctionCall",False)(VFFSL(SL,"_weightOrder",True), ''.join([u'_besseljzeros_',str(VFFSL(SL,"parent.name",True)),u'[',str(VFFSL(SL,"index",True)),u']'])) # u"${besselJFunctionCall($_weightOrder, c'_besseljzeros_${parent.name}[${index}]')}" on line 38, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u"${besselJFunctionCall($_weightOrder, c'_besseljzeros_${parent.name}[${index}]')}")) # from line 38, col 27.
         write(u''';
 const real ''')
         _v = VFFSL(SL,"name",True) # u'${name}' on line 39, col 12
@@ -170,15 +170,18 @@ const real ''')
         ## START - generated method body
         
         # 
-        write(u'''_normbesseljzeros_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 47, col 19
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 47, col 19.
+        write(u'''(_besseljzeros_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 47, col 16
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 47, col 16.
         write(u'''[''')
-        _v = VFFSL(SL,"index",True) # u'$index' on line 47, col 34
-        if _v is not None: write(_filter(_v, rawExpr=u'$index')) # from line 47, col 34.
-        write(u'''] * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 47, col 44
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 47, col 44.
+        _v = VFFSL(SL,"index",True) # u'$index' on line 47, col 31
+        if _v is not None: write(_filter(_v, rawExpr=u'$index')) # from line 47, col 31.
+        write(u'''] / _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 47, col 51
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 47, col 51.
+        write(u''') * ''')
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 47, col 69
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 47, col 69.
         write(u'''_max''')
         # 
         
@@ -208,18 +211,18 @@ const real ''')
         ## START - generated method body
         
         # 
-        write(u'''2.0 / (besselFactor * besselFactor * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 53, col 51
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 53, col 51.
-        write(u''' * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 53, col 81
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 53, col 81.
+        write(u'''2.0 / (besselFactor * besselFactor * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 53, col 48
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 53, col 48.
+        write(u''' * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 53, col 75
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 53, col 75.
         write(u''') * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 53, col 99
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 53, col 99.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 53, col 93
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 53, col 93.
         write(u'''_max * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 53, col 113
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 53, col 113.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 53, col 107
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 53, col 107.
         write(u'''_max''')
         # 
         
@@ -379,7 +382,7 @@ const real ''')
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    instanceAttributes = ['_maximum', '_order']
+    instanceAttributes = ['_maximum', '_order', '_weightOrder']
 
     orderOffset = 0
 
diff --git a/xpdeint/Geometry/BesselDimensionRepresentation.tmpl b/xpdeint/Geometry/BesselDimensionRepresentation.tmpl
index 9d2fbc6..4d449fd 100644
--- a/xpdeint/Geometry/BesselDimensionRepresentation.tmpl
+++ b/xpdeint/Geometry/BesselDimensionRepresentation.tmpl
@@ -21,7 +21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *@
 @extends xpdeint.Geometry.NonUniformDimensionRepresentation
 
- at attr $instanceAttributes = ['_maximum', '_order']
+ at attr $instanceAttributes = ['_maximum', '_order', '_weightOrder']
 
 @attr $orderOffset = 0
 
@@ -35,7 +35,7 @@ jn(${order}, ${argument})@slurp
 
 @def gridAndStepAtIndex($index)
   @#
-const real besselFactor = ${besselJFunctionCall($_order + 1, c'_normbesseljzeros_${parent.name}[${index}] * _besseljnorm_${parent.name}')};
+const real besselFactor = ${besselJFunctionCall($_weightOrder, c'_besseljzeros_${parent.name}[${index}]')};
 const real ${name}_max = ${_maximum};
   @#
   @super(index)
@@ -44,13 +44,13 @@ const real ${name}_max = ${_maximum};
 
 @def gridAtIndex($index)
   @#
-_normbesseljzeros_${parent.name}[$index] * ${name}_max at slurp
+(_besseljzeros_${parent.name}[$index] / _besseljS_${parent.name}) * ${name}_max at slurp
   @#
 @end def
 
 @def stepWeightAtIndex($index)
   @#
-2.0 / (besselFactor * besselFactor * _besseljnorm_${parent.name} * _besseljnorm_${parent.name}) * ${name}_max * ${name}_max at slurp
+2.0 / (besselFactor * besselFactor * _besseljS_${parent.name} * _besseljS_${parent.name}) * ${name}_max * ${name}_max at slurp
   @#
 @end def
 
diff --git a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
similarity index 61%
copy from xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
copy to xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
index da9fb59..28af646 100644
--- a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
+++ b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
@@ -24,7 +24,6 @@ from Cheetah.CacheRegion import CacheRegion
 import Cheetah.Filters as Filters
 import Cheetah.ErrorCatchers as ErrorCatchers
 from xpdeint.Geometry.BesselDimensionRepresentation import BesselDimensionRepresentation
-from xpdeint.CallOnceGuards import callOnceGuard
 
 ##################################################
 ## MODULE CONSTANTS
@@ -34,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.795984
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri Sep 14 16:04:46 2012'
+__CHEETAH_genTime__ = 1389652443.007338
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 28 08:44:05 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -49,7 +48,7 @@ if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
 ##################################################
 ## CLASSES
 
-class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
+class BesselNeumannDimensionRepresentation(BesselDimensionRepresentation):
 
     ##################################################
     ## CHEETAH GENERATED METHODS
@@ -57,7 +56,7 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
 
     def __init__(self, *args, **KWs):
 
-        super(SphericalBesselDimensionRepresentation, self).__init__(*args, **KWs)
+        super(BesselNeumannDimensionRepresentation, self).__init__(*args, **KWs)
         if not self._CHEETAH__instanceInitialized:
             cheetahKWArgs = {}
             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
@@ -66,12 +65,11 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
             self._initCheetahInstance(**cheetahKWArgs)
         
 
-    @callOnceGuard
-    def includes(self, **KWS):
+    def gridAndStepAtIndex(self, index, **KWS):
 
 
 
-        ## CHEETAH: generated from @def includes at line 31, col 1.
+        ## CHEETAH: generated from @def gridAndStepAtIndex($index) at line 24, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -87,52 +85,35 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
         ## START - generated method body
         
         # 
-        write(u'''#include <gsl/gsl_sf_bessel.h>
+        write(u'''const real mSquaredFactor = ''')
+        if self._order == 0: # generated from line 27, col 3
+            write(u'''1.0''')
+        else: # generated from line 29, col 3
+            write(u'''1.0 - ''')
+            _v = VFFSL(SL,"_order",True) # u'${_order}' on line 30, col 7
+            if _v is not None: write(_filter(_v, rawExpr=u'${_order}')) # from line 30, col 7.
+            write(u''' * ''')
+            _v = VFFSL(SL,"_order",True) # u'${_order}' on line 30, col 19
+            if _v is not None: write(_filter(_v, rawExpr=u'${_order}')) # from line 30, col 19.
+            write(u''' / (_besseljzeros_''')
+            _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 30, col 46
+            if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 30, col 46.
+            write(u'''[''')
+            _v = VFFSL(SL,"index",True) # u'${index}' on line 30, col 61
+            if _v is not None: write(_filter(_v, rawExpr=u'${index}')) # from line 30, col 61.
+            write(u'''] * _besseljzeros_''')
+            _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 30, col 87
+            if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 30, col 87.
+            write(u'''[''')
+            _v = VFFSL(SL,"index",True) # u'${index}' on line 30, col 102
+            if _v is not None: write(_filter(_v, rawExpr=u'${index}')) # from line 30, col 102.
+            write(u'''])''')
+        write(u''';
 ''')
         # 
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
-    def besselJFunctionCall(self, order, argument, **KWS):
-
-
-
-        ## CHEETAH: generated from @def besselJFunctionCall($order, $argument) at line 37, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        write(u'''sqrt(1.0/M_PI_2) * ''')
-        if VFFSL(SL,"order",True) in [0, 1, 2]: # generated from line 39, col 3
-            write(u'''gsl_sf_bessel_j''')
-            _v = VFFSL(SL,"order",True) # u'${order}' on line 40, col 16
-            if _v is not None: write(_filter(_v, rawExpr=u'${order}')) # from line 40, col 16.
-            write(u'''(''')
-            _v = VFFSL(SL,"argument",True) # u'$argument' on line 40, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'$argument')) # from line 40, col 25.
-            write(u''')''')
-        else: # generated from line 41, col 3
-            write(u'''gsl_sf_bessel_jl(''')
-            _v = VFFSL(SL,"order",True) # u'$order' on line 42, col 18
-            if _v is not None: write(_filter(_v, rawExpr=u'$order')) # from line 42, col 18.
-            write(u''', ''')
-            _v = VFFSL(SL,"argument",True) # u'$argument' on line 42, col 26
-            if _v is not None: write(_filter(_v, rawExpr=u'$argument')) # from line 42, col 26.
-            write(u''')''')
+        _v = super(BesselNeumannDimensionRepresentation, self).gridAndStepAtIndex(index)
+        if _v is not None: write(_filter(_v))
+        # 
         
         ########################################
         ## END - generated method body
@@ -144,7 +125,7 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
 
 
 
-        ## CHEETAH: generated from @def stepWeightAtIndex($index) at line 46, col 1.
+        ## CHEETAH: generated from @def stepWeightAtIndex($index) at line 38, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -160,24 +141,18 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
         ## START - generated method body
         
         # 
-        write(u'''2.0 / (besselFactor * besselFactor * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 51
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 51.
-        write(u''' * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 81
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 81.
-        write(u''' * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 111
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 111.
+        write(u'''2.0 / (mSquaredFactor * besselFactor * besselFactor * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 40, col 65
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 40, col 65.
+        write(u''' * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 40, col 92
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 40, col 92.
         write(u''') * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 129
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 129.
-        write(u'''_max * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 143
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 143.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 40, col 110
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 40, col 110.
         write(u'''_max * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 157
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 157.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 40, col 124
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 40, col 124.
         write(u'''_max''')
         # 
         
@@ -207,11 +182,11 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
         ## START - generated method body
         
         # 
-        # SphericalBesselDimensionRepresentation.tmpl
+        # BesselNeumannDimensionRepresentation.tmpl
         # 
-        # Created by Graham Dennis on 2009-08-11.
+        # Created by Graham Dennis on 2013-11-27.
         # 
-        # Copyright (c) 2009-2012, Graham Dennis
+        # Copyright (c) 2013, Graham Dennis
         # 
         # This program is free software: you can redistribute it and/or modify
         # it under the terms of the GNU General Public License as published by
@@ -228,10 +203,6 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
         # 
         write(u'''
 
-
-
-
-
 ''')
         
         ########################################
@@ -257,17 +228,13 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    uslib = ['gsl']
-
-    orderOffset = 0.5
-
-    _mainCheetahMethod_for_SphericalBesselDimensionRepresentation= 'writeBody'
+    _mainCheetahMethod_for_BesselNeumannDimensionRepresentation= 'writeBody'
 
 ## END CLASS DEFINITION
 
-if not hasattr(SphericalBesselDimensionRepresentation, '_initCheetahAttributes'):
-    templateAPIClass = getattr(SphericalBesselDimensionRepresentation, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(SphericalBesselDimensionRepresentation)
+if not hasattr(BesselNeumannDimensionRepresentation, '_initCheetahAttributes'):
+    templateAPIClass = getattr(BesselNeumannDimensionRepresentation, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(BesselNeumannDimensionRepresentation)
 
 
 # CHEETAH was developed by Tavis Rudd and Mike Orr
@@ -278,6 +245,6 @@ if not hasattr(SphericalBesselDimensionRepresentation, '_initCheetahAttributes')
 ## if run from command line:
 if __name__ == '__main__':
     from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=SphericalBesselDimensionRepresentation()).run()
+    CmdLineIface(templateObj=BesselNeumannDimensionRepresentation()).run()
 
 
diff --git a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl
similarity index 54%
copy from xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl
copy to xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl
index 238fde1..eb45bea 100644
--- a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl
+++ b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl
@@ -1,9 +1,9 @@
 @*
-SphericalBesselDimensionRepresentation.tmpl
+BesselNeumannDimensionRepresentation.tmpl
 
-Created by Graham Dennis on 2009-08-11.
+Created by Graham Dennis on 2013-11-27.
 
-Copyright (c) 2009-2012, Graham Dennis
+Copyright (c) 2013, Graham Dennis
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -21,30 +21,22 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *@
 @extends xpdeint.Geometry.BesselDimensionRepresentation
 
- at from xpdeint.CallOnceGuards import callOnceGuard
-
- at attr $uslib = ['gsl']
-
- at attr $orderOffset = 0.5
-
-@@callOnceGuard
- at def includes
-  @#
-#include <gsl/gsl_sf_bessel.h>
+ at def gridAndStepAtIndex($index)
   @#
- at end def
-
- at def besselJFunctionCall($order, $argument)
-sqrt(1.0/M_PI_2) * @slurp
-  @if $order in [0, 1, 2]
-gsl_sf_bessel_j${order}($argument)@slurp
+const real mSquaredFactor = @slurp
+  @if self._order == 0
+1.0 at slurp
   @else
-gsl_sf_bessel_jl($order, $argument)@slurp
+1.0 - ${_order} * ${_order} / (_besseljzeros_${parent.name}[${index}] * _besseljzeros_${parent.name}[${index}])@slurp
   @end if
+;
+  @#
+  @super(index)
+  @#
 @end def
 
 @def stepWeightAtIndex($index)
   @#
-2.0 / (besselFactor * besselFactor * _besseljnorm_${parent.name} * _besseljnorm_${parent.name} * _besseljnorm_${parent.name}) * ${name}_max * ${name}_max * ${name}_max at slurp
+2.0 / (mSquaredFactor * besselFactor * besselFactor * _besseljS_${parent.name} * _besseljS_${parent.name}) * ${name}_max * ${name}_max at slurp
   @#
 @end def
diff --git a/xpdeint/Geometry/DimensionRepresentation.py b/xpdeint/Geometry/DimensionRepresentation.py
index 273d231..ac92936 100644
--- a/xpdeint/Geometry/DimensionRepresentation.py
+++ b/xpdeint/Geometry/DimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.759103
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/DimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1389652442.962443
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/DimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/FieldElement.py b/xpdeint/Geometry/FieldElement.py
index f2e1030..5afb53c 100644
--- a/xpdeint/Geometry/FieldElement.py
+++ b/xpdeint/Geometry/FieldElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.760514
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/FieldElement.tmpl'
+__CHEETAH_genTime__ = 1389652442.376462
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/FieldElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/GeometryElement.py b/xpdeint/Geometry/GeometryElement.py
index 12bb5c7..cf4b0d6 100644
--- a/xpdeint/Geometry/GeometryElement.py
+++ b/xpdeint/Geometry/GeometryElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.7714
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/GeometryElement.tmpl'
+__CHEETAH_genTime__ = 1389652442.401039
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/GeometryElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py b/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
index 3fd8267..564f85b 100644
--- a/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
+++ b/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.781387
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/HermiteGaussDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1389652443.107029
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/HermiteGaussDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jul 11 19:41:11 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/NonUniformDimensionRepresentation.py b/xpdeint/Geometry/NonUniformDimensionRepresentation.py
index 1741cb2..5ffaef5 100644
--- a/xpdeint/Geometry/NonUniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/NonUniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.831625
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/NonUniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1389652444.002856
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/NonUniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
index da9fb59..424b326 100644
--- a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
+++ b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
@@ -34,10 +34,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.795984
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri Sep 14 16:04:46 2012'
+__CHEETAH_genTime__ = 1389652443.026056
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -160,24 +160,24 @@ class SphericalBesselDimensionRepresentation(BesselDimensionRepresentation):
         ## START - generated method body
         
         # 
-        write(u'''2.0 / (besselFactor * besselFactor * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 51
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 51.
-        write(u''' * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 81
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 81.
-        write(u''' * _besseljnorm_''')
-        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 111
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 111.
+        write(u'''2.0 / (besselFactor * besselFactor * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 48
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 48.
+        write(u''' * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 75
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 75.
+        write(u''' * _besseljS_''')
+        _v = VFFSL(SL,"parent.name",True) # u'${parent.name}' on line 48, col 102
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.name}')) # from line 48, col 102.
         write(u''') * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 129
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 129.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 120
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 120.
         write(u'''_max * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 143
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 143.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 134
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 134.
         write(u'''_max * ''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 157
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 157.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 48, col 148
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 48, col 148.
         write(u'''_max''')
         # 
         
diff --git a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl
index 238fde1..41c8853 100644
--- a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl
+++ b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl
@@ -45,6 +45,6 @@ gsl_sf_bessel_jl($order, $argument)@slurp
 
 @def stepWeightAtIndex($index)
   @#
-2.0 / (besselFactor * besselFactor * _besseljnorm_${parent.name} * _besseljnorm_${parent.name} * _besseljnorm_${parent.name}) * ${name}_max * ${name}_max * ${name}_max at slurp
+2.0 / (besselFactor * besselFactor * _besseljS_${parent.name} * _besseljS_${parent.name} * _besseljS_${parent.name}) * ${name}_max * ${name}_max * ${name}_max at slurp
   @#
 @end def
diff --git a/xpdeint/Geometry/SplitUniformDimensionRepresentation.py b/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
index 5e222c8..be839bd 100644
--- a/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.917479
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/SplitUniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1389652444.160835
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/SplitUniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul 13 16:21:46 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/UniformDimensionRepresentation.py b/xpdeint/Geometry/UniformDimensionRepresentation.py
index 1992ea7..bb09899 100644
--- a/xpdeint/Geometry/UniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/UniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.925564
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Geometry/UniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1389652443.220874
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/UniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul 13 16:21:46 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/_FieldElement.py b/xpdeint/Geometry/_FieldElement.py
index 3a741cd..e2054bf 100644
--- a/xpdeint/Geometry/_FieldElement.py
+++ b/xpdeint/Geometry/_FieldElement.py
@@ -177,14 +177,16 @@ class _FieldElement (ScriptElement):
     dimRepNameToDimMap = dict((dr.canonicalName, dim) for dim in self.dimensions for dr in geometry.dimensionWithName(dim.name).representations)
     missingDimensions = set(self.dimensions)
     for dimRepName in basis:
-      missingDimensions.discard(dimRepNameToDimMap[dimRepName])
+      missingDimensions.discard(dimRepNameToDimMap.get(dimRepName))
     # We now have the missing dimensions, now to find the corresponding dimRepName from the field's defaultCoordinateBasis
     for dimRepName in defaultBasis:
       dimension = dimRepNameToDimMap[dimRepName]
       if dimension in missingDimensions:
         missingDimensions.discard(dimension)
         basis += (dimRepName,)
-    return basis
+    orderedBasis = tuple(dim.inBasis(basis).name for dim in self.dimensions)
+    canonicalBasis = self._driver.canonicalBasisForBasis(orderedBasis)
+    return self.basisForBasis(canonicalBasis)
   
   def inBasis(self, basis):
     """
diff --git a/xpdeint/HDF5.py b/xpdeint/HDF5.py
index b5e3808..4d48892 100644
--- a/xpdeint/HDF5.py
+++ b/xpdeint/HDF5.py
@@ -36,9 +36,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.949527
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/HDF5.tmpl'
+__CHEETAH_genTime__ = 1389652444.828728
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/HDF5.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Apr 23 13:26:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -308,12 +308,12 @@ mem_stride[''')
             write(u''';
 
 ''')
-            ## START CAPTURE REGION: _30798580 writeLoopContents at line 122, col 5 in the source.
-            _orig_trans_30798580 = trans
-            _wasBuffering_30798580 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _82724993 writeLoopContents at line 122, col 5 in the source.
+            _orig_trans_82724993 = trans
+            _wasBuffering_82724993 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_30798580 = DummyTransaction()
-            write = _captureCollector_30798580.response().write
+            trans = _captureCollector_82724993 = DummyTransaction()
+            write = _captureCollector_82724993.response().write
             for offset, componentName in components: # generated from line 123, col 7
                 write(u'''mem_start[''')
                 _v = VFFSL(SL,"dimensionCount",True) # u'${dimensionCount}' on line 124, col 11
@@ -350,13 +350,13 @@ if (dataset_''')
                 if _v is not None: write(_filter(_v, rawExpr=u'${variable.arrayName}')) # from line 138, col 106.
                 write(u''');
 ''')
-            trans = _orig_trans_30798580
+            trans = _orig_trans_82724993
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_30798580 
-            writeLoopContents = _captureCollector_30798580.response().getvalue()
-            del _orig_trans_30798580
-            del _captureCollector_30798580
-            del _wasBuffering_30798580
+            self._CHEETAH__isBuffering = _wasBuffering_82724993 
+            writeLoopContents = _captureCollector_82724993.response().getvalue()
+            del _orig_trans_82724993
+            del _captureCollector_82724993
+            del _wasBuffering_82724993
             # 
             #  Permit the driver to modify the writeLoopContents
             featureOrdering = ['Driver']
diff --git a/xpdeint/MomentGroupElement.py b/xpdeint/MomentGroupElement.py
index ad20f01..50a1b2d 100644
--- a/xpdeint/MomentGroupElement.py
+++ b/xpdeint/MomentGroupElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.985987
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/MomentGroupElement.tmpl'
+__CHEETAH_genTime__ = 1389652443.952719
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/MomentGroupElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 13:11:27 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/ConstantEXOperator.py b/xpdeint/Operators/ConstantEXOperator.py
index c924357..762d750 100644
--- a/xpdeint/Operators/ConstantEXOperator.py
+++ b/xpdeint/Operators/ConstantEXOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.002823
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/ConstantEXOperator.tmpl'
+__CHEETAH_genTime__ = 1389652443.100913
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/ConstantEXOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:43:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/ConstantIPOperator.py b/xpdeint/Operators/ConstantIPOperator.py
index df4ef2a..47df24a 100644
--- a/xpdeint/Operators/ConstantIPOperator.py
+++ b/xpdeint/Operators/ConstantIPOperator.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.025223
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/ConstantIPOperator.tmpl'
-__CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
+__CHEETAH_genTime__ = 1389652443.549691
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/ConstantIPOperator.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:15 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -124,39 +124,54 @@ class ConstantIPOperator(_IPOperator):
         # 
         #  We expect the integrator to have defined '_step'
         # 
-        write(u'''// ************** Operator code *****************
+        write(u"""// The purpose of the following define is to give a (somewhat helpful) compile-time error
+// if the user has attempted to use the propagation dimension variable in a constant IP operator/
+// The user probably shouldn't be doing this, but if they must, they should use a non-constant EX
+// operator instead
+#define """)
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 47, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 47, col 9.
+        write(u''' Dont_use_propagation_dimension_''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 47, col 64
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 47, col 64.
+        write(u'''_in_constant_IP_operator___Use_non_constant_EX_operator_instead
+// ************** Operator code *****************
 ''')
-        _v = VFFSL(SL,"codeString",True) # u'${codeString}' on line 44, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${codeString}')) # from line 44, col 1.
+        _v = VFFSL(SL,"codeString",True) # u'${codeString}' on line 49, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${codeString}')) # from line 49, col 1.
         write(u'''// **********************************************
+#undef ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 51, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 51, col 8.
+        write(u'''
 ''')
         #  Loop over the propagation step fractions
-        for fractionIndex, propagationStepFraction in enumerate(VFFSL(SL,"integrator.ipPropagationStepFractions",True)): # generated from line 47, col 3
+        for fractionIndex, propagationStepFraction in enumerate(VFFSL(SL,"integrator.ipPropagationStepFractions",True)): # generated from line 53, col 3
             write(u'''    
 ''')
             #  Loop over each operator component
-            for operatorComponentNumber, operatorComponent in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iterkeys",False)()): # generated from line 50, col 5
+            for operatorComponentNumber, operatorComponent in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iterkeys",False)()): # generated from line 56, col 5
                 offsetIndex = VFFSL(SL,"operatorComponentNumber",True) + VFFSL(SL,"fractionIndex",True) * len(VFFSL(SL,"operatorComponents",True))
                 write(u'''_''')
-                _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 52, col 2
-                if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 52, col 2.
+                _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 58, col 2
+                if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 58, col 2.
                 write(u'''[_''')
-                _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 52, col 24
-                if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 52, col 24.
+                _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 58, col 24
+                if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 58, col 24.
                 write(u'''_index_pointer + ''')
-                _v = VFFSL(SL,"offsetIndex",True) # u'${offsetIndex}' on line 52, col 61
-                if _v is not None: write(_filter(_v, rawExpr=u'${offsetIndex}')) # from line 52, col 61.
+                _v = VFFSL(SL,"offsetIndex",True) # u'${offsetIndex}' on line 58, col 61
+                if _v is not None: write(_filter(_v, rawExpr=u'${offsetIndex}')) # from line 58, col 61.
                 write(u'''] = ''')
-                _v = VFFSL(SL,"expFunction",True) # u'${expFunction}' on line 52, col 79
-                if _v is not None: write(_filter(_v, rawExpr=u'${expFunction}')) # from line 52, col 79.
+                _v = VFFSL(SL,"expFunction",True) # u'${expFunction}' on line 58, col 79
+                if _v is not None: write(_filter(_v, rawExpr=u'${expFunction}')) # from line 58, col 79.
                 write(u'''(''')
-                _v = VFFSL(SL,"operatorComponent",True) # u'${operatorComponent}' on line 52, col 94
-                if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponent}')) # from line 52, col 94.
-                _v = VFFSL(SL,"valueSuffix",True) # u'${valueSuffix}' on line 52, col 114
-                if _v is not None: write(_filter(_v, rawExpr=u'${valueSuffix}')) # from line 52, col 114.
+                _v = VFFSL(SL,"operatorComponent",True) # u'${operatorComponent}' on line 58, col 94
+                if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponent}')) # from line 58, col 94.
+                _v = VFFSL(SL,"valueSuffix",True) # u'${valueSuffix}' on line 58, col 114
+                if _v is not None: write(_filter(_v, rawExpr=u'${valueSuffix}')) # from line 58, col 114.
                 write(u''' * ''')
-                _v = VFFSL(SL,"propagationStepFraction",True) # u'$propagationStepFraction' on line 52, col 131
-                if _v is not None: write(_filter(_v, rawExpr=u'$propagationStepFraction')) # from line 52, col 131.
+                _v = VFFSL(SL,"propagationStepFraction",True) # u'$propagationStepFraction' on line 58, col 131
+                if _v is not None: write(_filter(_v, rawExpr=u'$propagationStepFraction')) # from line 58, col 131.
                 write(u''' * _step);
 ''')
         # 
@@ -167,58 +182,11 @@ class ConstantIPOperator(_IPOperator):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def evaluateOperatorLoop(self, setOfVectorsToLoopOver, **KWS):
-
-
-
-        ## CHEETAH: generated from @def evaluateOperatorLoop($setOfVectorsToLoopOver) at line 58, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        # 
-        #  We expect the integrator to have defined _exponent
-        # 
-        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 62, col 3
-            write(u'''unsigned long _exponentIndex = (abs(_exponent) - 1) * ''')
-            _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'$len($operatorComponents)' on line 63, col 55
-            if _v is not None: write(_filter(_v, rawExpr=u'$len($operatorComponents)')) # from line 63, col 55.
-            write(u''';
-
-''')
-        write(u'''if (_exponent > 0) {
-  ''')
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)(VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)('*')) # u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}" on line 67, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}")) # from line 67, col 3.
-        write(u'''} else {
-  ''')
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)(VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)('/')) # u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}" on line 69, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}")) # from line 69, col 3.
-        write(u'''}
-''')
-        # 
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
-    def insideEvaluateOperatorLoops(self, operationString, **KWS):
+    def exponentIndex(self, **KWS):
 
 
 
-        ## CHEETAH: generated from @def insideEvaluateOperatorLoops($operationString) at line 74, col 1.
+        ## CHEETAH: generated from @def exponentIndex at line 64, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -233,40 +201,9 @@ class ConstantIPOperator(_IPOperator):
         ########################################
         ## START - generated method body
         
-        # 
-        _v = VFFSL(SL,"insideEvaluateOperatorLoopsBegin",True) # u'${insideEvaluateOperatorLoopsBegin}' on line 76, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${insideEvaluateOperatorLoopsBegin}')) # from line 76, col 1.
-        # 
-        for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iteritems",False)()): # generated from line 78, col 3
-            for targetVectorComponents in operatorComponentVectors.itervalues(): # generated from line 79, col 5
-                for targetVectorComponent in targetVectorComponents: # generated from line 80, col 7
-                    write(u'''// ''')
-                    _v = VFFSL(SL,"operatorComponentName",True) # u'${operatorComponentName}' on line 81, col 4
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentName}')) # from line 81, col 4.
-                    write(u'''[''')
-                    _v = VFFSL(SL,"targetVectorComponent",True) # u'$targetVectorComponent' on line 81, col 29
-                    if _v is not None: write(_filter(_v, rawExpr=u'$targetVectorComponent')) # from line 81, col 29.
-                    write(u''']
-''')
-                    _v = VFFSL(SL,"targetVectorComponent",True) # u'$targetVectorComponent' on line 82, col 1
-                    if _v is not None: write(_filter(_v, rawExpr=u'$targetVectorComponent')) # from line 82, col 1.
-                    write(u''' ''')
-                    _v = VFFSL(SL,"operationString",True) # u'${operationString}' on line 82, col 24
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operationString}')) # from line 82, col 24.
-                    write(u'''= _''')
-                    _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 82, col 45
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 82, col 45.
-                    write(u'''[_''')
-                    _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 82, col 67
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 82, col 67.
-                    write(u'''_index_pointer + ''')
-                    _v = VFFSL(SL,"operatorComponentNumber",True) # u'$operatorComponentNumber' on line 82, col 104
-                    if _v is not None: write(_filter(_v, rawExpr=u'$operatorComponentNumber')) # from line 82, col 104.
-                    if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 83, col 9
-                        write(u''' + _exponentIndex''')
-                    write(u'''];
-''')
-        # 
+        write(u'''(abs(_exponent) - 1) * ''')
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'${len($operatorComponents)}' on line 65, col 24
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($operatorComponents)}')) # from line 65, col 24.
         
         ########################################
         ## END - generated method body
diff --git a/xpdeint/Operators/ConstantIPOperator.tmpl b/xpdeint/Operators/ConstantIPOperator.tmpl
index e3daae4..1b3693e 100644
--- a/xpdeint/Operators/ConstantIPOperator.tmpl
+++ b/xpdeint/Operators/ConstantIPOperator.tmpl
@@ -40,9 +40,15 @@ ${insideCalculateOperatorFieldLoopsBegin}@slurp
   @#
   @# We expect the integrator to have defined '_step'
   @#
+// The purpose of the following define is to give a (somewhat helpful) compile-time error
+// if the user has attempted to use the propagation dimension variable in a constant IP operator/
+// The user probably shouldn't be doing this, but if they must, they should use a non-constant EX
+// operator instead
+#define ${propagationDimension} Dont_use_propagation_dimension_${propagationDimension}_in_constant_IP_operator___Use_non_constant_EX_operator_instead
 // ************** Operator code *****************
 ${codeString}@slurp
 // **********************************************
+#undef ${propagationDimension}
   @# Loop over the propagation step fractions
   @for $fractionIndex, $propagationStepFraction in enumerate($integrator.ipPropagationStepFractions)
     
@@ -55,37 +61,7 @@ _${operatorVector.id}[_${operatorVector.id}_index_pointer + ${offsetIndex}] = ${
   @#
 @end def
 
- at def evaluateOperatorLoop($setOfVectorsToLoopOver)
-  @#
-  @# We expect the integrator to have defined _exponent
-  @#
-  @if len($integrator.ipPropagationStepFractions) > 1
-unsigned long _exponentIndex = (abs(_exponent) - 1) * $len($operatorComponents);
-
-  @end if
-if (_exponent > 0) {
-  ${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}@slurp
-} else {
-  ${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}@slurp
-}
-  @#
+ at def exponentIndex
+(abs(_exponent) - 1) * ${len($operatorComponents)}@slurp
 @end def
 
- at def insideEvaluateOperatorLoops($operationString)
-  @#
-${insideEvaluateOperatorLoopsBegin}@slurp
-  @#
-  @for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate($operatorComponents.iteritems())
-    @for targetVectorComponents in operatorComponentVectors.itervalues()
-      @for targetVectorComponent in targetVectorComponents
-// ${operatorComponentName}[$targetVectorComponent]
-$targetVectorComponent ${operationString}= _${operatorVector.id}[_${operatorVector.id}_index_pointer + $operatorComponentNumber at slurp
-        @if len($integrator.ipPropagationStepFractions) > 1
- + _exponentIndex at slurp
-        @end if
-];
-      @end for
-    @end for
-  @end for
-  @#
- at end def
diff --git a/xpdeint/Operators/CrossPropagationOperator.py b/xpdeint/Operators/CrossPropagationOperator.py
index 8945877..663ef94 100644
--- a/xpdeint/Operators/CrossPropagationOperator.py
+++ b/xpdeint/Operators/CrossPropagationOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.032316
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/CrossPropagationOperator.tmpl'
+__CHEETAH_genTime__ = 1389652442.803121
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/CrossPropagationOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/DeltaAOperator.py b/xpdeint/Operators/DeltaAOperator.py
index 11034d6..3a484f6 100644
--- a/xpdeint/Operators/DeltaAOperator.py
+++ b/xpdeint/Operators/DeltaAOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.087216
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/DeltaAOperator.tmpl'
+__CHEETAH_genTime__ = 1389652443.23985
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/DeltaAOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/FilterOperator.py b/xpdeint/Operators/FilterOperator.py
index 9ac8446..98d6ae5 100644
--- a/xpdeint/Operators/FilterOperator.py
+++ b/xpdeint/Operators/FilterOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.045506
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/FilterOperator.tmpl'
+__CHEETAH_genTime__ = 1389652443.087688
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/FilterOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/FunctionsOperator.py b/xpdeint/Operators/FunctionsOperator.py
index a6aa868..b038811 100644
--- a/xpdeint/Operators/FunctionsOperator.py
+++ b/xpdeint/Operators/FunctionsOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.0794
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/FunctionsOperator.tmpl'
+__CHEETAH_genTime__ = 1389652442.850171
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/FunctionsOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/NonConstantEXOperator.py b/xpdeint/Operators/NonConstantEXOperator.py
index 5502e46..7d397e2 100644
--- a/xpdeint/Operators/NonConstantEXOperator.py
+++ b/xpdeint/Operators/NonConstantEXOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.064009
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/NonConstantEXOperator.tmpl'
+__CHEETAH_genTime__ = 1389652443.426644
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/NonConstantEXOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:43:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/NonConstantIPOperator.py b/xpdeint/Operators/NonConstantIPOperator.py
index b9b866d..64818f9 100644
--- a/xpdeint/Operators/NonConstantIPOperator.py
+++ b/xpdeint/Operators/NonConstantIPOperator.py
@@ -34,10 +34,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.166526
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/NonConstantIPOperator.tmpl'
-__CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
+__CHEETAH_genTime__ = 1389652444.660293
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/NonConstantIPOperator.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -89,14 +89,13 @@ class NonConstantIPOperator(_IPOperator):
         _v = super(NonConstantIPOperator, self).globals()
         if _v is not None: write(_filter(_v))
         # 
-        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 34, col 3
-            write(u'''int _''')
-            _v = VFFSL(SL,"id",True) # u'${id}' on line 35, col 6
-            if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 35, col 6.
-            write(u'''_exponent_offset_map[''')
-            _v = VFFSL(SL,"len",False)(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) # u'${len($integrator.ipPropagationStepFractions)}' on line 35, col 32
-            if _v is not None: write(_filter(_v, rawExpr=u'${len($integrator.ipPropagationStepFractions)}')) # from line 35, col 32.
-            write(u'''];
+        write(u'''real _''')
+        _v = VFFSL(SL,"id",True) # u'${id}' on line 34, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 34, col 7.
+        write(u'''_last_timestep_size_map[''')
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) # u'${len($integrator.ipPropagationStepFractions)}' on line 34, col 36
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($integrator.ipPropagationStepFractions)}')) # from line 34, col 36.
+        write(u'''];
 ''')
         # 
         
@@ -111,7 +110,7 @@ class NonConstantIPOperator(_IPOperator):
 
 
 
-        ## CHEETAH: generated from @def initialise at line 41, col 1.
+        ## CHEETAH: generated from @def initialise at line 39, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -127,14 +126,13 @@ class NonConstantIPOperator(_IPOperator):
         ## START - generated method body
         
         # 
-        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 43, col 3
-            write(u'''memset(_''')
-            _v = VFFSL(SL,"id",True) # u'${id}' on line 44, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 44, col 9.
-            write(u'''_exponent_offset_map, 0, sizeof(_''')
-            _v = VFFSL(SL,"id",True) # u'${id}' on line 44, col 47
-            if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 44, col 47.
-            write(u'''_exponent_offset_map));
+        write(u'''memset(_''')
+        _v = VFFSL(SL,"id",True) # u'${id}' on line 41, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 41, col 9.
+        write(u'''_last_timestep_size_map, 0, sizeof(_''')
+        _v = VFFSL(SL,"id",True) # u'${id}' on line 41, col 50
+        if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 41, col 50.
+        write(u'''_last_timestep_size_map));
 ''')
         # 
         
@@ -148,7 +146,7 @@ class NonConstantIPOperator(_IPOperator):
 
 
 
-        ## CHEETAH: generated from @def calculateOperatorFieldFunctionContents($function) at line 49, col 1.
+        ## CHEETAH: generated from @def calculateOperatorFieldFunctionContents($function) at line 45, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -164,33 +162,46 @@ class NonConstantIPOperator(_IPOperator):
         ## START - generated method body
         
         # 
-        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 51, col 3
+        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 47, col 3
             write(u'''static const real _propagationStepFractions[] = {
 ''')
-            for propagationStepFraction in VFFSL(SL,"integrator.ipPropagationStepFractions",True): # generated from line 53, col 3
+            for propagationStepFraction in VFFSL(SL,"integrator.ipPropagationStepFractions",True): # generated from line 49, col 3
                 write(u'''  ''')
-                _v = VFFSL(SL,"propagationStepFraction",True) # u'$propagationStepFraction' on line 54, col 3
-                if _v is not None: write(_filter(_v, rawExpr=u'$propagationStepFraction')) # from line 54, col 3.
+                _v = VFFSL(SL,"propagationStepFraction",True) # u'$propagationStepFraction' on line 50, col 3
+                if _v is not None: write(_filter(_v, rawExpr=u'$propagationStepFraction')) # from line 50, col 3.
                 write(u''',
 ''')
             write(u'''};
-const real _propagationStepFraction = _propagationStepFractions[abs(_exponent) - 1];
-_''')
-            _v = VFFSL(SL,"id",True) # u'${id}' on line 58, col 2
-            if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 58, col 2.
-            write(u'''_exponent_offset_map[abs(_exponent) - 1] = _arrayIndex;
+const long _arrayIndex = _exponent - 1;
+const real _propagationStepFraction = _propagationStepFractions[_arrayIndex];
 ''')
-        else: # generated from line 59, col 3
+        else: # generated from line 55, col 3
             write(u'''const real _propagationStepFraction = ''')
-            _v = VFN(VFFSL(SL,"integrator",True),"ipPropagationStepFractions",True)[0] # u'${integrator.ipPropagationStepFractions[0]}' on line 60, col 39
-            if _v is not None: write(_filter(_v, rawExpr=u'${integrator.ipPropagationStepFractions[0]}')) # from line 60, col 39.
+            _v = VFN(VFFSL(SL,"integrator",True),"ipPropagationStepFractions",True)[0] # u'${integrator.ipPropagationStepFractions[0]}' on line 56, col 39
+            if _v is not None: write(_filter(_v, rawExpr=u'${integrator.ipPropagationStepFractions[0]}')) # from line 56, col 39.
             write(u''';
+const long _arrayIndex = 0;
 ''')
-        write(u'''
+        write(u"""
+// If the timestep hasn't changed from the last time, then we're done.
+if (_propagationStepFraction * _step == _""")
+        _v = VFFSL(SL,"id",True) # u'${id}' on line 61, col 42
+        if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 61, col 42.
+        write(u'''_last_timestep_size_map[_arrayIndex])
+  return;
+
 ''')
+        # 
         _v = super(NonConstantIPOperator, self).calculateOperatorFieldFunctionContents(function)
         if _v is not None: write(_filter(_v))
         # 
+        write(u'''
+_''')
+        _v = VFFSL(SL,"id",True) # u'${id}' on line 68, col 2
+        if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 68, col 2.
+        write(u'''_last_timestep_size_map[_arrayIndex] = _propagationStepFraction * _step;
+''')
+        # 
         
         ########################################
         ## END - generated method body
@@ -202,7 +213,7 @@ _''')
 
 
 
-        ## CHEETAH: generated from @def insideCalculateOperatorFieldLoops($codeString) at line 67, col 1.
+        ## CHEETAH: generated from @def insideCalculateOperatorFieldLoops($codeString) at line 72, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -218,41 +229,56 @@ _''')
         ## START - generated method body
         
         # 
-        _v = VFFSL(SL,"insideCalculateOperatorFieldLoopsBegin",True) # u'${insideCalculateOperatorFieldLoopsBegin}' on line 69, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${insideCalculateOperatorFieldLoopsBegin}')) # from line 69, col 1.
+        _v = VFFSL(SL,"insideCalculateOperatorFieldLoopsBegin",True) # u'${insideCalculateOperatorFieldLoopsBegin}' on line 74, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${insideCalculateOperatorFieldLoopsBegin}')) # from line 74, col 1.
         # 
         #  We expect the integrator to have defined '_step'
         # 
-        write(u'''// ************** Operator code *****************
+        write(u"""// The purpose of the following define is to give a (somewhat helpful) compile-time error
+// if the user has attempted to use the propagation dimension variable in a constant IP operator/
+// The user probably shouldn't be doing this, but if they must, they should use a non-constant EX
+// operator instead
+#define """)
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 82, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 82, col 9.
+        write(u''' Dont_use_propagation_dimension_''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 82, col 64
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 82, col 64.
+        write(u'''_in_constant_IP_operator___Use_non_constant_EX_operator_instead
+// ************** Operator code *****************
 ''')
-        _v = VFFSL(SL,"codeString",True) # u'${codeString}' on line 74, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${codeString}')) # from line 74, col 1.
+        _v = VFFSL(SL,"codeString",True) # u'${codeString}' on line 84, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${codeString}')) # from line 84, col 1.
         write(u'''// **********************************************
+#undef ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 86, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 86, col 8.
+        write(u'''
 
 ''')
         #  Loop over each operator component
-        for operatorComponentNumber, operatorComponent in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iterkeys",False)()): # generated from line 78, col 3
+        for operatorComponentNumber, operatorComponent in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iterkeys",False)()): # generated from line 89, col 3
             write(u'''_''')
-            _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 79, col 2
-            if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 79, col 2.
+            _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 90, col 2
+            if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 90, col 2.
             write(u'''[_''')
-            _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 79, col 24
-            if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 79, col 24.
+            _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 90, col 24
+            if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 90, col 24.
             write(u'''_index_pointer + _arrayIndex * ''')
-            _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'$len($operatorComponents)' on line 79, col 75
-            if _v is not None: write(_filter(_v, rawExpr=u'$len($operatorComponents)')) # from line 79, col 75.
+            _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'$len($operatorComponents)' on line 90, col 75
+            if _v is not None: write(_filter(_v, rawExpr=u'$len($operatorComponents)')) # from line 90, col 75.
             write(u''' + ''')
-            _v = VFFSL(SL,"operatorComponentNumber",True) # u'${operatorComponentNumber}' on line 79, col 103
-            if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentNumber}')) # from line 79, col 103.
+            _v = VFFSL(SL,"operatorComponentNumber",True) # u'${operatorComponentNumber}' on line 90, col 103
+            if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentNumber}')) # from line 90, col 103.
             write(u''']''')
             write(u''' = ''')
-            _v = VFFSL(SL,"expFunction",True) # u'${expFunction}' on line 80, col 4
-            if _v is not None: write(_filter(_v, rawExpr=u'${expFunction}')) # from line 80, col 4.
+            _v = VFFSL(SL,"expFunction",True) # u'${expFunction}' on line 91, col 4
+            if _v is not None: write(_filter(_v, rawExpr=u'${expFunction}')) # from line 91, col 4.
             write(u'''(''')
-            _v = VFFSL(SL,"operatorComponent",True) # u'${operatorComponent}' on line 80, col 19
-            if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponent}')) # from line 80, col 19.
-            _v = VFFSL(SL,"valueSuffix",True) # u'${valueSuffix}' on line 80, col 39
-            if _v is not None: write(_filter(_v, rawExpr=u'${valueSuffix}')) # from line 80, col 39.
+            _v = VFFSL(SL,"operatorComponent",True) # u'${operatorComponent}' on line 91, col 19
+            if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponent}')) # from line 91, col 19.
+            _v = VFFSL(SL,"valueSuffix",True) # u'${valueSuffix}' on line 91, col 39
+            if _v is not None: write(_filter(_v, rawExpr=u'${valueSuffix}')) # from line 91, col 39.
             write(u''' * _propagationStepFraction * _step);
 ''')
         # 
@@ -263,61 +289,11 @@ _''')
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def evaluateOperatorLoop(self, setOfVectorsToLoopOver, **KWS):
-
-
-
-        ## CHEETAH: generated from @def evaluateOperatorLoop($setOfVectorsToLoopOver) at line 85, col 1.
-        trans = KWS.get("trans")
-        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
-            trans = self.transaction # is None unless self.awake() was called
-        if not trans:
-            trans = DummyTransaction()
-            _dummyTrans = True
-        else: _dummyTrans = False
-        write = trans.response().write
-        SL = self._CHEETAH__searchList
-        _filter = self._CHEETAH__currentFilter
-        
-        ########################################
-        ## START - generated method body
-        
-        # 
-        #  We expect the integrator to have defined _exponent
-        # 
-        if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 89, col 3
-            write(u'''unsigned long _exponentIndex = _''')
-            _v = VFFSL(SL,"id",True) # u'${id}' on line 90, col 33
-            if _v is not None: write(_filter(_v, rawExpr=u'${id}')) # from line 90, col 33.
-            write(u'''_exponent_offset_map[abs(_exponent) - 1] * ''')
-            _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'$len($operatorComponents)' on line 90, col 81
-            if _v is not None: write(_filter(_v, rawExpr=u'$len($operatorComponents)')) # from line 90, col 81.
-            write(u''';
-
-''')
-        write(u'''if (_exponent > 0) {
-  ''')
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)(VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)('*')) # u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}" on line 94, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}")) # from line 94, col 3.
-        write(u'''} else {
-  ''')
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)(VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)('/')) # u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}" on line 96, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}")) # from line 96, col 3.
-        write(u'''}
-''')
-        # 
-        
-        ########################################
-        ## END - generated method body
-        
-        return _dummyTrans and trans.response().getvalue() or ""
-        
-
-    def insideEvaluateOperatorLoops(self, operationString, **KWS):
+    def exponentIndex(self, **KWS):
 
 
 
-        ## CHEETAH: generated from @def insideEvaluateOperatorLoops($operationString) at line 101, col 1.
+        ## CHEETAH: generated from @def exponentIndex at line 96, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -333,38 +309,9 @@ _''')
         ## START - generated method body
         
         # 
-        _v = VFFSL(SL,"insideEvaluateOperatorLoopsBegin",True) # u'${insideEvaluateOperatorLoopsBegin}' on line 103, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${insideEvaluateOperatorLoopsBegin}')) # from line 103, col 1.
-        # 
-        for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate(VFN(VFFSL(SL,"operatorComponents",True),"iteritems",False)()): # generated from line 105, col 3
-            for targetVectorComponents in operatorComponentVectors.itervalues(): # generated from line 106, col 5
-                for targetVectorComponent in targetVectorComponents: # generated from line 107, col 7
-                    write(u'''// ''')
-                    _v = VFFSL(SL,"operatorComponentName",True) # u'${operatorComponentName}' on line 108, col 4
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentName}')) # from line 108, col 4.
-                    write(u'''[''')
-                    _v = VFFSL(SL,"targetVectorComponent",True) # u'$targetVectorComponent' on line 108, col 29
-                    if _v is not None: write(_filter(_v, rawExpr=u'$targetVectorComponent')) # from line 108, col 29.
-                    write(u''']
-''')
-                    _v = VFFSL(SL,"targetVectorComponent",True) # u'$targetVectorComponent' on line 109, col 1
-                    if _v is not None: write(_filter(_v, rawExpr=u'$targetVectorComponent')) # from line 109, col 1.
-                    write(u''' ''')
-                    _v = VFFSL(SL,"operationString",True) # u'${operationString}' on line 109, col 24
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operationString}')) # from line 109, col 24.
-                    write(u'''= _''')
-                    _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 109, col 45
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 109, col 45.
-                    write(u'''[_''')
-                    _v = VFFSL(SL,"operatorVector.id",True) # u'${operatorVector.id}' on line 109, col 67
-                    if _v is not None: write(_filter(_v, rawExpr=u'${operatorVector.id}')) # from line 109, col 67.
-                    write(u'''_index_pointer + ''')
-                    _v = VFFSL(SL,"operatorComponentNumber",True) # u'$operatorComponentNumber' on line 109, col 104
-                    if _v is not None: write(_filter(_v, rawExpr=u'$operatorComponentNumber')) # from line 109, col 104.
-                    if len(VFFSL(SL,"integrator.ipPropagationStepFractions",True)) > 1: # generated from line 110, col 9
-                        write(u''' + _exponentIndex''')
-                    write(u'''];
-''')
+        write(u'''(abs(_exponent) - 1) * ''')
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"operatorComponents",True)) # u'${len($operatorComponents)}' on line 98, col 24
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($operatorComponents)}')) # from line 98, col 24.
         # 
         
         ########################################
@@ -421,7 +368,6 @@ _''')
 
 
 
-
 ''')
         
         ########################################
@@ -447,7 +393,7 @@ _''')
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    calculateOperatorFieldFunctionArguments = [('real', '_step'), ('int', '_exponent'), ('int', '_arrayIndex')]
+    calculateOperatorFieldFunctionArguments = [('real', '_step'), ('int', '_exponent')]
 
     _mainCheetahMethod_for_NonConstantIPOperator= 'writeBody'
 
diff --git a/xpdeint/Operators/NonConstantIPOperator.tmpl b/xpdeint/Operators/NonConstantIPOperator.tmpl
index d74b097..07a8046 100644
--- a/xpdeint/Operators/NonConstantIPOperator.tmpl
+++ b/xpdeint/Operators/NonConstantIPOperator.tmpl
@@ -25,24 +25,20 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @from xpdeint.CallOnceGuards import callOncePerInstanceGuard
 
- at attr $calculateOperatorFieldFunctionArguments = [('real', '_step'), ('int', '_exponent'), ('int', '_arrayIndex')]
+ at attr $calculateOperatorFieldFunctionArguments = [('real', '_step'), ('int', '_exponent')]
 
 @def globals
   @#
   @super
   @#
-  @if len($integrator.ipPropagationStepFractions) > 1
-int _${id}_exponent_offset_map[${len($integrator.ipPropagationStepFractions)}];
-  @end if
+real _${id}_last_timestep_size_map[${len($integrator.ipPropagationStepFractions)}];
   @#
 @end def
 
 @@callOncePerInstanceGuard
 @def initialise
   @#
-  @if len($integrator.ipPropagationStepFractions) > 1
-memset(_${id}_exponent_offset_map, 0, sizeof(_${id}_exponent_offset_map));
-  @end if
+memset(_${id}_last_timestep_size_map, 0, sizeof(_${id}_last_timestep_size_map));
   @#
 @end def
 
@@ -54,14 +50,23 @@ static const real _propagationStepFractions[] = {
   $propagationStepFraction,
   @end for
 };
-const real _propagationStepFraction = _propagationStepFractions[abs(_exponent) - 1];
-_${id}_exponent_offset_map[abs(_exponent) - 1] = _arrayIndex;
+const long _arrayIndex = _exponent - 1;
+const real _propagationStepFraction = _propagationStepFractions[_arrayIndex];
   @else
 const real _propagationStepFraction = ${integrator.ipPropagationStepFractions[0]};
+const long _arrayIndex = 0;
   @end if
 
+// If the timestep hasn't changed from the last time, then we're done.
+if (_propagationStepFraction * _step == _${id}_last_timestep_size_map[_arrayIndex])
+  return;
+
+  @#
   @super(function)
   @#
+
+_${id}_last_timestep_size_map[_arrayIndex] = _propagationStepFraction * _step;
+  @#
 @end def
 
 @def insideCalculateOperatorFieldLoops($codeString)
@@ -70,9 +75,15 @@ ${insideCalculateOperatorFieldLoopsBegin}@slurp
   @#
   @# We expect the integrator to have defined '_step'
   @#
+// The purpose of the following define is to give a (somewhat helpful) compile-time error
+// if the user has attempted to use the propagation dimension variable in a constant IP operator/
+// The user probably shouldn't be doing this, but if they must, they should use a non-constant EX
+// operator instead
+#define ${propagationDimension} Dont_use_propagation_dimension_${propagationDimension}_in_constant_IP_operator___Use_non_constant_EX_operator_instead
 // ************** Operator code *****************
 ${codeString}@slurp
 // **********************************************
+#undef ${propagationDimension}
 
   @# Loop over each operator component
   @for $operatorComponentNumber, $operatorComponent in enumerate($operatorComponents.iterkeys())
@@ -82,37 +93,8 @@ _${operatorVector.id}[_${operatorVector.id}_index_pointer + _arrayIndex * $len($
   @#
 @end def
 
- at def evaluateOperatorLoop($setOfVectorsToLoopOver)
-  @#
-  @# We expect the integrator to have defined _exponent
-  @#
-  @if len($integrator.ipPropagationStepFractions) > 1
-unsigned long _exponentIndex = _${id}_exponent_offset_map[abs(_exponent) - 1] * $len($operatorComponents);
-
-  @end if
-if (_exponent > 0) {
-  ${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('*')), autoIndent=True}@slurp
-} else {
-  ${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops('/')), autoIndent=True}@slurp
-}
-  @#
- at end def
-
- at def insideEvaluateOperatorLoops($operationString)
+ at def exponentIndex
   @#
-${insideEvaluateOperatorLoopsBegin}@slurp
-  @#
-  @for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate($operatorComponents.iteritems())
-    @for targetVectorComponents in operatorComponentVectors.itervalues()
-      @for targetVectorComponent in targetVectorComponents
-// ${operatorComponentName}[$targetVectorComponent]
-$targetVectorComponent ${operationString}= _${operatorVector.id}[_${operatorVector.id}_index_pointer + $operatorComponentNumber at slurp
-        @if len($integrator.ipPropagationStepFractions) > 1
- + _exponentIndex at slurp
-        @end if
-];
-      @end for
-    @end for
-  @end for
+(abs(_exponent) - 1) * ${len($operatorComponents)}@slurp
   @#
 @end def
diff --git a/xpdeint/Operators/Operator.py b/xpdeint/Operators/Operator.py
index fe93f49..d302641 100644
--- a/xpdeint/Operators/Operator.py
+++ b/xpdeint/Operators/Operator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.183177
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/Operator.tmpl'
+__CHEETAH_genTime__ = 1389652444.448576
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/Operator.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 20 11:51:47 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/OperatorContainer.py b/xpdeint/Operators/OperatorContainer.py
index 293bb27..0798934 100644
--- a/xpdeint/Operators/OperatorContainer.py
+++ b/xpdeint/Operators/OperatorContainer.py
@@ -1,182 +1,377 @@
 #!/usr/bin/env python
-# encoding: utf-8
-"""
-OperatorContainer.py
 
-Created by Graham Dennis on 2008-03-09.
 
-Copyright (c) 2008-2012, Graham Dennis
 
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from xpdeint.Operators._OperatorContainer import _OperatorContainer
+from xpdeint.ParserException import ParserException
 
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
+__CHEETAH_genTime__ = 1389652443.526775
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/OperatorContainer.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Oct  3 21:15:17 2013'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
-"""
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
 
-from xpdeint.ScriptElement import ScriptElement
+##################################################
+## CLASSES
 
-from xpdeint.Operators._Operator import _Operator
-from xpdeint.ParserException import ParserException
+class OperatorContainer(_OperatorContainer):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(OperatorContainer, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def evaluateIPOperators(self, arguments=None, parentFunction=None, **KWs):
+
+
+
+        ## CHEETAH: generated from @def evaluateIPOperators(arguments = None, parentFunction = None, **KWs) at line 27, col 1.
+        trans = KWs.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        if len(VFFSL(SL,"ipOperators",True)) == 0: # generated from line 28, col 3
+            return ''
+        # 
+        basis = VFFSL(SL,"ipOperatorBasis",True)
+        targetVectors = set()
+        setOfVectorsToLoopOver = set()
+        haveMultipleIPOperatorFractions = len(VFFSL(SL,"parent.ipPropagationStepFractions",True)) > 1
+        # 
+        for ipOperator in VFFSL(SL,"ipOperators",True): # generated from line 37, col 3
+            targetVectors.update(ipOperator.targetVectors)
+            setOfVectorsToLoopOver.update(ipOperator.targetVectors)
+            setOfVectorsToLoopOver.add(ipOperator.operatorVector)
+            # 
+            if VFFSL(SL,"haveMultipleIPOperatorFractions",True): # generated from line 42, col 5
+                write(u'''unsigned long _''')
+                _v = VFFSL(SL,"ipOperator.id",True) # u'${ipOperator.id}' on line 43, col 16
+                if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.id}')) # from line 43, col 16.
+                write(u'''_exponentIndex = ''')
+                _v = VFFSL(SL,"ipOperator.exponentIndex",True) # u'${ipOperator.exponentIndex}' on line 43, col 49
+                if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.exponentIndex}')) # from line 43, col 49.
+                write(u''';
+''')
+        write(u'''
+''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(targetVectors, basis) # u'${transformVectorsToBasis(targetVectors, basis)}' on line 47, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis(targetVectors, basis)}')) # from line 47, col 1.
+        # 
+        write(u'''
+''')
+        _v = VFFSL(SL,"applyIPOperator",False)(setOfVectorsToLoopOver, basis) # u'${applyIPOperator(setOfVectorsToLoopOver, basis)}' on line 50, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${applyIPOperator(setOfVectorsToLoopOver, basis)}')) # from line 50, col 1.
+        write(u'''
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def applyIPOperator(self, setOfVectorsToLoopOver, operatorBasis, **KWS):
+
+
+
+        ## CHEETAH: generated from @def applyIPOperator($setOfVectorsToLoopOver, $operatorBasis) at line 56, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''if (_exponent > 0) {
+  ''')
+        _v = VFFSL(SL,"doIPLoop",False)(setOfVectorsToLoopOver, operatorBasis, '*') # u"${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '*'), autoIndent=True}" on line 59, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '*'), autoIndent=True}")) # from line 59, col 3.
+        write(u'''} else {
+  ''')
+        _v = VFFSL(SL,"doIPLoop",False)(setOfVectorsToLoopOver, operatorBasis, '/') # u"${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '/'), autoIndent=True}" on line 61, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '/'), autoIndent=True}")) # from line 61, col 3.
+        write(u'''}
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def doIPLoop(self, setOfVectorsToLoopOver, operatorBasis, operation, **KWS):
+
+
+
+        ## CHEETAH: generated from @def doIPLoop($setOfVectorsToLoopOver, $operatorBasis, $operation) at line 66, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        loopingField = VFFSL(SL,"field",True)
+        if all(v.field.isEquivalentToField(loopingField) for v in setOfVectorsToLoopOver): # generated from line 69, col 3
+            _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)(VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)(VFFSL(SL,"operation",True))) # u'${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops($operation))}' on line 70, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops($operation))}')) # from line 70, col 1.
+        else: # generated from line 71, col 3
+            _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(VFFSL(SL,"loopingField",True), VFFSL(SL,"operatorBasis",True), VFFSL(SL,"setOfVectorsToLoopOver",True), VFFSL(SL,"insideEvaluateOperatorLoops",False)(VFFSL(SL,"operation",True))) # u'${loopOverFieldInBasisWithVectorsAndInnerContent($loopingField, $operatorBasis, $setOfVectorsToLoopOver, $insideEvaluateOperatorLoops($operation))}' on line 72, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent($loopingField, $operatorBasis, $setOfVectorsToLoopOver, $insideEvaluateOperatorLoops($operation))}')) # from line 72, col 1.
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def insideEvaluateOperatorLoops(self, operationString, **KWS):
+
+
+
+        ## CHEETAH: generated from @def insideEvaluateOperatorLoops($operationString) at line 77, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        operationsDict = dict()
+        haveMultipleIPOperatorFractions = len(VFFSL(SL,"parent.ipPropagationStepFractions",True)) > 1
+        # 
+        for ipOperator in VFFSL(SL,"ipOperators",True): # generated from line 82, col 3
+            for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate(VFN(VFFSL(SL,"ipOperator.operatorComponents",True),"iteritems",False)()): # generated from line 83, col 5
+                for targetVectorComponents in operatorComponentVectors.itervalues(): # generated from line 84, col 7
+                    for targetVectorComponent in targetVectorComponents: # generated from line 85, col 9
+                        ## START CAPTURE REGION: _52167270 operation at line 86, col 11 in the source.
+                        _orig_trans_52167270 = trans
+                        _wasBuffering_52167270 = self._CHEETAH__isBuffering
+                        self._CHEETAH__isBuffering = True
+                        trans = _captureCollector_52167270 = DummyTransaction()
+                        write = _captureCollector_52167270.response().write
+                        write(u'''/* ''')
+                        _v = VFFSL(SL,"operatorComponentName",True) # u'${operatorComponentName}' on line 87, col 4
+                        if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentName}')) # from line 87, col 4.
+                        write(u'''[''')
+                        _v = VFFSL(SL,"targetVectorComponent",True) # u'$targetVectorComponent' on line 87, col 29
+                        if _v is not None: write(_filter(_v, rawExpr=u'$targetVectorComponent')) # from line 87, col 29.
+                        write(u'''] */ _''')
+                        _v = VFFSL(SL,"ipOperator.operatorVector.id",True) # u'${ipOperator.operatorVector.id}' on line 87, col 57
+                        if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.operatorVector.id}')) # from line 87, col 57.
+                        write(u'''[_''')
+                        _v = VFFSL(SL,"ipOperator.operatorVector.id",True) # u'${ipOperator.operatorVector.id}' on line 87, col 90
+                        if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.operatorVector.id}')) # from line 87, col 90.
+                        write(u'''_index_pointer + ''')
+                        _v = VFFSL(SL,"operatorComponentNumber",True) # u'$operatorComponentNumber' on line 87, col 138
+                        if _v is not None: write(_filter(_v, rawExpr=u'$operatorComponentNumber')) # from line 87, col 138.
+                        if VFFSL(SL,"haveMultipleIPOperatorFractions",True): # generated from line 88, col 13
+                            write(u''' + _''')
+                            _v = VFFSL(SL,"ipOperator.id",True) # u'${ipOperator.id}' on line 89, col 5
+                            if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.id}')) # from line 89, col 5.
+                            write(u'''_exponentIndex''')
+                        write(u''']''')
+                        trans = _orig_trans_52167270
+                        write = trans.response().write
+                        self._CHEETAH__isBuffering = _wasBuffering_52167270 
+                        operation = _captureCollector_52167270.response().getvalue()
+                        del _orig_trans_52167270
+                        del _captureCollector_52167270
+                        del _wasBuffering_52167270
+                        # 
+                        operationsDict.setdefault(targetVectorComponent, [])
+                        operationsDict[targetVectorComponent].append(operation)
+        # 
+        for targetVectorComponent, operations in operationsDict.iteritems(): # generated from line 101, col 3
+            joinString = '\n' + ' '*len(targetVectorComponent) + ' *  '
+            _v = VFFSL(SL,"targetVectorComponent",True) # u'${targetVectorComponent}' on line 103, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${targetVectorComponent}')) # from line 103, col 1.
+            write(u''' ''')
+            _v = VFFSL(SL,"operationString",True) # u'${operationString}' on line 103, col 26
+            if _v is not None: write(_filter(_v, rawExpr=u'${operationString}')) # from line 103, col 26.
+            write(u'''= ''')
+            _v = VFN(VFFSL(SL,"joinString",True),"join",False)(operations) # u'${joinString.join(operations)}' on line 103, col 46
+            if _v is not None: write(_filter(_v, rawExpr=u'${joinString.join(operations)}')) # from line 103, col 46.
+            write(u''';
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def writeBody(self, **KWS):
+
+
+
+        ## CHEETAH: main method generated for this template
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        # OperatorContainer.tmpl
+        # 
+        # Operator Container
+        # 
+        # Created by Graham Dennis on 2013-10-02.
+        # 
+        # Copyright (c) 2013, Graham Dennis
+        # 
+        # This program is free software: you can redistribute it and/or modify
+        # it under the terms of the GNU General Public License as published by
+        # the Free Software Foundation, either version 2 of the License, or
+        # (at your option) any later version.
+        # 
+        # This program is distributed in the hope that it will be useful,
+        # but WITHOUT ANY WARRANTY; without even the implied warranty of
+        # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        # GNU General Public License for more details.
+        # 
+        # You should have received a copy of the GNU General Public License
+        # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+        # 
+        write(u'''
+
+
+
+
+''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    _mainCheetahMethod_for_OperatorContainer= 'writeBody'
+
+## END CLASS DEFINITION
+
+if not hasattr(OperatorContainer, '_initCheetahAttributes'):
+    templateAPIClass = getattr(OperatorContainer, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(OperatorContainer)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=OperatorContainer()).run()
 
-from xpdeint.Utilities import lazy_property, valueForKeyPath
-
-class OperatorContainer(ScriptElement):
-  """
-  The `OperatorContainer` is, as the name suggests, a container for operators.
-  The idea is that there are many places where you want to be able to have a set
-  of operators and you want to be execute all of them without worrying too much
-  about what operators they are. 
-  
-  Similarly, some operators depend on a common (or 'shared') code block to determine
-  their behaviour (e.g. IP and EX). The `OperatorContainer` abstracts exactly where
-  this shared code block is and what its dependencies are so the operators don't need
-  to know whether they are being used in an integrator or in moment group sampling,
-  all they care about is that the `OperatorContainer` has been configured correctly.
-  
-  Configuring an OperatorContainer amounts to setting the `sharedCodeEntityKeyPath`, 
-  `dependenciesKeyPath` and `sharedCodeSpaceKeyPath` variables in the initialiser
-  for `OperatorContainer`. `sharedCodeEntityKeyPath` is a string that is a dotted-name
-  lookup specifier for the string that is the 'shared' code block for this operator
-  container. For example, in the case of an integrator, the 'shared' code block is the
-  integration code ``'dphi_dt = L[phi] + V*phi; // etc.'`` In an integrator, this
-  shared code belongs to the delta-a operator of the operator container. The 
-  `sharedCodeSpaceKeyPath` is simply the space in which the 'shared' code block is
-  evaluated, and `dependenciesKeyPath` is the key path to the dependencies that will
-  be available when the shared code is evaluated. These three variables configure
-  the three proxy variables on the `OperatorContainer`, `sharedCode`,
-  `dependencies` and `sharedCodeSpace`. Proxies are used to refer to the actual variables
-  instead of accessing them directly to enable write access to, for example, the shared code
-  object (as is needed by the IP operator).
-  
-  When executing operators in an `OperatorContainer` it is important to first to ensure
-  that all necessary computed vectors have been evaluated (and in the correct order).
-  To help with this, OperatorContainer returns a set of all of the computed vectors
-  on which operators in this `OperatorContainer` depend through the 
-  `dynamicVectorsNeedingPrecalculation` method.
-  
-  Do write the code that will actually evaluate the operators, just call one of the ``evaluate*``
-  functions. If you need to call another function on the operators other than ``evaluate``,
-  (currently the only other function is ``calculateOperatorField``) then you would use the
-  ``callOperatorFunctionWithArguments`` method.
-  """
-  def __init__(self, *args, **KWs):
-    localKWs = self.extractLocalKWs(['field', 'name', 'sharedCodeBlockKeyPath'], KWs)
-    
-    ScriptElement.__init__(self, *args, **KWs)
-    
-    # Set default state
-    self.ipOperators = []
-    self.preDeltaAOperators = []
-    self.deltaAOperator = None
-    self.postDeltaAOperators = []
-    self.field = localKWs.get('field', None)
-    self._name = localKWs.get('name', None)
-    
-    # These key paths are the 'paths' to the actual attributes for our
-    # 'sharedCodeBlock' proxy property
-    self.sharedCodeBlockKeyPath = localKWs.get('sharedCodeBlockKeyPath', 'deltaAOperator.primaryCodeBlock')
-  
-  def _getSharedCode(self):
-    return valueForKeyPath(self, self.sharedCodeEntityKeyPath).value
-  
-  def _setSharedCode(self, value):
-    valueForKeyPath(self, self.sharedCodeEntityKeyPath).value = value
-  
-  sharedCode = property(_getSharedCode, _setSharedCode)
-  del _getSharedCode, _setSharedCode
-  
-  @lazy_property
-  def sharedCodeBlock(self):
-    return valueForKeyPath(self, self.sharedCodeBlockKeyPath)
-  
-  @property
-  def name(self):
-    if self._name:
-      return self._name
-    if not self.field:
-      # We are deliberately not setting self._name here
-      return ''
-    self._name = 'container' + str(self.parent.operatorContainers.index(self))
-    return self._name
-  
-  @property
-  def operators(self):
-    result = self.ipOperators[:]
-    result.extend(self.preDeltaAOperators)
-    if self.deltaAOperator:
-      result.append(self.deltaAOperator)
-    result.extend(self.postDeltaAOperators)
-    return result
-  
-  @property
-  def children(self):
-    children = super(OperatorContainer, self).children
-    children.extend(self.operators)
-    return children
-  
-  @property
-  def dynamicVectorsNeedingPrecalculation(self):
-    result = set()
-    for operator in self.operators:
-      result.update(operator.dynamicVectorsNeedingPrecalculation)
-    return result
-  
-  def addOperator(self, op):
-    if op.operatorKind == _Operator.IPOperatorKind:
-      self.ipOperators.append(op)
-    elif op.operatorKind == _Operator.DeltaAOperatorKind:
-      if self.deltaAOperator:
-        raise ParserException(op.xmlElement, "For some reason we are trying to add two delta a operators to this operator container.")
-      self.deltaAOperator = op
-    elif not self.deltaAOperator:
-      self.preDeltaAOperators.append(op)
-    else:
-      self.postDeltaAOperators.append(op)
-    
-    op.operatorNumber = len(self.operators) - 1
-  
-  def evaluateIPOperators(self, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    return self.callOperatorFunctionWithArguments('evaluate', self.ipOperators, arguments, parentFunction, **KWs)
-  
-  def evaluatePreDeltaAOperators(self, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    return self.callOperatorFunctionWithArguments('evaluate', self.preDeltaAOperators, arguments, parentFunction, **KWs)
-  
-  def evaluatePostDeltaAOperators(self, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    return self.callOperatorFunctionWithArguments('evaluate', self.postDeltaAOperators, arguments, parentFunction, **KWs)
-  
-  def evaluateDeltaAOperator(self, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    if self.deltaAOperator:
-      return self.callOperatorFunctionWithArguments('evaluate', [self.deltaAOperator], arguments, parentFunction, **KWs)
-    else:
-      return ''
-  
-  def evaluateOperators(self, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    assert not self.postDeltaAOperators and not self.deltaAOperator and not self.ipOperators
-    return self.callOperatorFunctionWithArguments('evaluate', self.preDeltaAOperators, arguments, parentFunction, **KWs)
-  
-  @staticmethod
-  def callOperatorFunctionWithArguments(functionName, operators, arguments = None, parentFunction = None, **KWs):
-    arguments = arguments or {}
-    return '\n'.join(['// ' + op.description() + '\n' + op.functions[functionName].call(arguments, parentFunction = parentFunction, **KWs) + '\n' for op in operators])
-  
-  def preflight(self):
-    super(OperatorContainer, self).preflight()
-    
-    if self.field and self.deltaAOperator:
-      assert self.field == self.deltaAOperator.field
-    
 
diff --git a/xpdeint/Operators/OperatorContainer.tmpl b/xpdeint/Operators/OperatorContainer.tmpl
new file mode 100644
index 0000000..acc262e
--- /dev/null
+++ b/xpdeint/Operators/OperatorContainer.tmpl
@@ -0,0 +1,106 @@
+@*
+OperatorContainer.tmpl
+
+Operator Container
+
+Created by Graham Dennis on 2013-10-02.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.Operators._OperatorContainer
+ at from xpdeint.ParserException import ParserException
+
+ at def evaluateIPOperators(arguments = None, parentFunction = None, **KWs)
+  @if len($ipOperators) == 0
+    @return ''
+  @end if
+  @#
+  @set basis = $ipOperatorBasis
+  @set targetVectors = set()
+  @set setOfVectorsToLoopOver = set()
+  @set haveMultipleIPOperatorFractions = len($parent.ipPropagationStepFractions) > 1
+  @#
+  @for ipOperator in $ipOperators
+    @silent targetVectors.update(ipOperator.targetVectors)
+    @silent setOfVectorsToLoopOver.update(ipOperator.targetVectors)
+    @silent setOfVectorsToLoopOver.add(ipOperator.operatorVector)
+    @#
+    @if $haveMultipleIPOperatorFractions
+unsigned long _${ipOperator.id}_exponentIndex = ${ipOperator.exponentIndex};
+    @end if
+  @end for
+
+${transformVectorsToBasis(targetVectors, basis)}@slurp
+  @#
+
+${applyIPOperator(setOfVectorsToLoopOver, basis)}@slurp
+
+  @#
+ at end def
+
+
+ at def applyIPOperator($setOfVectorsToLoopOver, $operatorBasis)
+  @#
+if (_exponent > 0) {
+  ${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '*'), autoIndent=True}@slurp
+} else {
+  ${doIPLoop(setOfVectorsToLoopOver, operatorBasis, '/'), autoIndent=True}@slurp
+}
+  @#
+ at end def
+
+ at def doIPLoop($setOfVectorsToLoopOver, $operatorBasis, $operation)
+  @#
+  @set loopingField = $field
+  @if all(v.field.isEquivalentToField(loopingField) for v in setOfVectorsToLoopOver)
+${loopOverVectorsInBasisWithInnerContent($setOfVectorsToLoopOver, $operatorBasis, $insideEvaluateOperatorLoops($operation))}@slurp
+  @else
+${loopOverFieldInBasisWithVectorsAndInnerContent($loopingField, $operatorBasis, $setOfVectorsToLoopOver, $insideEvaluateOperatorLoops($operation))}@slurp
+  @end if
+  @#
+ at end def
+
+ at def insideEvaluateOperatorLoops($operationString)
+  @#
+  @set operationsDict = dict()
+  @set haveMultipleIPOperatorFractions = len($parent.ipPropagationStepFractions) > 1
+  @#
+  @for ipOperator in $ipOperators
+    @for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate($ipOperator.operatorComponents.iteritems())
+      @for targetVectorComponents in operatorComponentVectors.itervalues()
+        @for targetVectorComponent in targetVectorComponents
+          @capture operation
+/* ${operatorComponentName}[$targetVectorComponent] */ _${ipOperator.operatorVector.id}[_${ipOperator.operatorVector.id}_index_pointer + $operatorComponentNumber at slurp
+            @if $haveMultipleIPOperatorFractions
+ + _${ipOperator.id}_exponentIndex at slurp
+            @end if
+]@slurp
+          @end capture
+          @#
+          @silent operationsDict.setdefault(targetVectorComponent, [])
+          @silent operationsDict[targetVectorComponent].append(operation)
+        @end for
+      @end for
+    @end for
+  @end for
+  @#
+  @for targetVectorComponent, operations in operationsDict.iteritems()
+    @silent joinString = '\n' + ' '*len(targetVectorComponent) + ' *  '
+${targetVectorComponent} ${operationString}= ${joinString.join(operations)};
+  @end for
+  @#
+ at end def
diff --git a/xpdeint/Operators/SICDeltaAOperator.py b/xpdeint/Operators/SICDeltaAOperator.py
index a1381ea..4fa63d0 100644
--- a/xpdeint/Operators/SICDeltaAOperator.py
+++ b/xpdeint/Operators/SICDeltaAOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.223261
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Operators/SICDeltaAOperator.tmpl'
+__CHEETAH_genTime__ = 1389652444.642441
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/SICDeltaAOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/_IPOperator.py b/xpdeint/Operators/_IPOperator.py
index f78db74..03f4787 100644
--- a/xpdeint/Operators/_IPOperator.py
+++ b/xpdeint/Operators/_IPOperator.py
@@ -147,8 +147,9 @@ class _IPOperator(Operator):
       parserWarning(self.xmlElement,
                     "The following operator names weren't used: %(unusedOperatorNamesString)s" % locals())
     
+    del self.functions['evaluate']
     vectors = set(self.targetVectors)
-    self.registerVectorsRequiredInBasis(vectors, self.operatorBasis)
+    self.registerVectorsRequiredInBasis(vectors, self.parent.ipOperatorBasis)
     
   
 
diff --git a/xpdeint/Operators/OperatorContainer.py b/xpdeint/Operators/_OperatorContainer.py
similarity index 83%
copy from xpdeint/Operators/OperatorContainer.py
copy to xpdeint/Operators/_OperatorContainer.py
index 293bb27..2bed446 100644
--- a/xpdeint/Operators/OperatorContainer.py
+++ b/xpdeint/Operators/_OperatorContainer.py
@@ -29,9 +29,9 @@ from xpdeint.ParserException import ParserException
 
 from xpdeint.Utilities import lazy_property, valueForKeyPath
 
-class OperatorContainer(ScriptElement):
+class _OperatorContainer(ScriptElement):
   """
-  The `OperatorContainer` is, as the name suggests, a container for operators.
+  The `_OperatorContainer` is, as the name suggests, a container for operators.
   The idea is that there are many places where you want to be able to have a set
   of operators and you want to be execute all of them without worrying too much
   about what operators they are. 
@@ -76,6 +76,7 @@ class OperatorContainer(ScriptElement):
     # Set default state
     self.ipOperators = []
     self.preDeltaAOperators = []
+    self.ipOperatorBasis = None
     self.deltaAOperator = None
     self.postDeltaAOperators = []
     self.field = localKWs.get('field', None)
@@ -119,7 +120,7 @@ class OperatorContainer(ScriptElement):
   
   @property
   def children(self):
-    children = super(OperatorContainer, self).children
+    children = super(_OperatorContainer, self).children
     children.extend(self.operators)
     return children
   
@@ -174,9 +175,30 @@ class OperatorContainer(ScriptElement):
     return '\n'.join(['// ' + op.description() + '\n' + op.functions[functionName].call(arguments, parentFunction = parentFunction, **KWs) + '\n' for op in operators])
   
   def preflight(self):
-    super(OperatorContainer, self).preflight()
+    super(_OperatorContainer, self).preflight()
     
     if self.field and self.deltaAOperator:
       assert self.field == self.deltaAOperator.field
     
+    if self.ipOperators:
+      ipOperatorBasisSet = set()
+      ipOperatorDimensionNames = set()
+      for ipOperator in self.ipOperators:
+        assert not ipOperator.resultVector
+        operatorBasis = ipOperator.field.basisForBasis(ipOperator.operatorBasis)
+        for dim in ipOperator.field.dimensions:
+          if dim.name in ipOperatorDimensionNames and not dim.inBasis(operatorBasis).name in ipOperatorBasisSet:
+            raise ParserException(ipOperator.xmlElement,
+            "The basis for this IP operator (%s) conflicts with that of a previous IP operator.  "
+            "For example, it isn't possible to have one IP operator acting in the 'x' basis and another in the 'kx' basis."
+            % ', '.join(operatorBasis))
+        
+          ipOperatorDimensionNames.add(dim.name)
+          ipOperatorBasisSet.add(dim.inBasis(operatorBasis).name)
+      self.ipOperatorBasis = self.field.completedBasisForBasis(tuple(ipOperatorBasisSet), self.field.defaultSpectralBasis)
+      vectorsRequiredForIPOperation = set()
+      for ipOperator in self.ipOperators:
+        vectorsRequiredForIPOperation.update(ipOperator.targetVectors)
+        vectorsRequiredForIPOperation.add(ipOperator.operatorVector)
+      self.registerVectorsRequiredInBasis(vectorsRequiredForIPOperation, self.ipOperatorBasis)
 
diff --git a/xpdeint/ParserException.py b/xpdeint/ParserException.py
index a19c6b6..90bcff8 100644
--- a/xpdeint/ParserException.py
+++ b/xpdeint/ParserException.py
@@ -33,6 +33,8 @@ def indentMessageWithPrefix(prefix, msg):
     result.extend([textWrapper.fill(line) for line in msgLines[1:]])
     return '\n'.join(result)
 
+def error_missing_python_library(library_name, xmlElement = None):
+  raise ParserException(xmlElement, "This script requires the python package '%s' which is not installed.  Please install it to run this script.")
 
 class ParserException(Exception):
     def __init__(self, element, msg):
diff --git a/xpdeint/Preferences.py b/xpdeint/Preferences.py
index 1529ca5..f98e128 100755
--- a/xpdeint/Preferences.py
+++ b/xpdeint/Preferences.py
@@ -2,7 +2,7 @@
 # encoding: utf-8
 import os
 
-versionString = '2.1.4 "Well if this isn\'t nice, I don\'t know what is"'
+versionString = '2.2.0 "Out of cheese error"'
 
 if 'XMDS_USER_DATA' in os.environ:
     xpdeintUserDataPath = os.environ['XMDS_USER_DATA']
diff --git a/xpdeint/ScriptElement.py b/xpdeint/ScriptElement.py
index d526958..0cab112 100644
--- a/xpdeint/ScriptElement.py
+++ b/xpdeint/ScriptElement.py
@@ -34,10 +34,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.610259
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/ScriptElement.tmpl'
-__CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
+__CHEETAH_genTime__ = 1389652446.728853
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/ScriptElement.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -209,12 +209,12 @@ class ScriptElement(_ScriptElement):
             VFFSL(SL,"templateVariables",True)['vector'] = VFFSL(SL,"vector",True)
             _v = VFFSL(SL,"insertCodeForFeatures",False)('loopOverVectorsWithInnerContentTemplateBegin', VFFSL(SL,"loopFeatureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeatures('loopOverVectorsWithInnerContentTemplateBegin', $loopFeatureOrdering, $dict)}" on line 155, col 1
             if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('loopOverVectorsWithInnerContentTemplateBegin', $loopFeatureOrdering, $dict)}")) # from line 155, col 1.
-            ## START CAPTURE REGION: _73591120 loopString at line 156, col 5 in the source.
-            _orig_trans_73591120 = trans
-            _wasBuffering_73591120 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _24352535 loopString at line 156, col 5 in the source.
+            _orig_trans_24352535 = trans
+            _wasBuffering_24352535 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_73591120 = DummyTransaction()
-            write = _captureCollector_73591120.response().write
+            trans = _captureCollector_24352535 = DummyTransaction()
+            write = _captureCollector_24352535.response().write
             if basis is None: # generated from line 157, col 7
                 vectorSize = vector.allocSize
             else: # generated from line 159, col 7
@@ -230,13 +230,13 @@ class ScriptElement(_ScriptElement):
             if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${innerLoopTemplate, autoIndent=True}')) # from line 163, col 3.
             write(u'''}
 ''')
-            trans = _orig_trans_73591120
+            trans = _orig_trans_24352535
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_73591120 
-            loopString = _captureCollector_73591120.response().getvalue()
-            del _orig_trans_73591120
-            del _captureCollector_73591120
-            del _wasBuffering_73591120
+            self._CHEETAH__isBuffering = _wasBuffering_24352535 
+            loopString = _captureCollector_24352535.response().getvalue()
+            del _orig_trans_24352535
+            del _captureCollector_24352535
+            del _wasBuffering_24352535
             _v = VFFSL(SL,"loopString",True) # u"${loopString, extraIndent=dict['extraIndent']}" on line 166, col 1
             if _v is not None: write(_filter(_v, extraIndent=dict['extraIndent'], rawExpr=u"${loopString, extraIndent=dict['extraIndent']}")) # from line 166, col 1.
             write(u'''
@@ -1023,6 +1023,126 @@ class ScriptElement(_ScriptElement):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
+    def swapVectorPointers(self, vectors, destPrefix, srcPrefix=None, **KWS):
+
+
+
+        ## CHEETAH: generated from @def swapVectorPointers($vectors, $destPrefix, $srcPrefix = None) at line 603, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # dex: Swap the pointers of `vecSrc` and `vecDest`
+        # 
+        write(u'''{
+''')
+        for vector in VFFSL(SL,"vectors",True): # generated from line 607, col 3
+            write(u'''  ''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 608, col 3
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 608, col 3.
+            write(u'''* _temp_''')
+            _v = VFFSL(SL,"destPrefix",True) # u'${destPrefix}' on line 608, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${destPrefix}')) # from line 608, col 25.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 608, col 39
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 608, col 39.
+            write(u''' = ''')
+            _v = VFFSL(SL,"destPrefix",True) # u'${destPrefix}' on line 608, col 54
+            if _v is not None: write(_filter(_v, rawExpr=u'${destPrefix}')) # from line 608, col 54.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 608, col 68
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 608, col 68.
+            write(u''';
+  ''')
+            _v = VFFSL(SL,"destPrefix",True) # u'${destPrefix}' on line 609, col 3
+            if _v is not None: write(_filter(_v, rawExpr=u'${destPrefix}')) # from line 609, col 3.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 609, col 17
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 609, col 17.
+            write(u''' = ''')
+            _v = VFFSL(SL,"srcPrefix",True) # u'${srcPrefix}' on line 609, col 32
+            if _v is not None: write(_filter(_v, rawExpr=u'${srcPrefix}')) # from line 609, col 32.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 609, col 45
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 609, col 45.
+            write(u''';
+  ''')
+            _v = VFFSL(SL,"srcPrefix",True) # u'${srcPrefix}' on line 610, col 3
+            if _v is not None: write(_filter(_v, rawExpr=u'${srcPrefix}')) # from line 610, col 3.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 610, col 16
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 610, col 16.
+            write(u''' = _temp_''')
+            _v = VFFSL(SL,"destPrefix",True) # u'${destPrefix}' on line 610, col 37
+            if _v is not None: write(_filter(_v, rawExpr=u'${destPrefix}')) # from line 610, col 37.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 610, col 51
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 610, col 51.
+            write(u''';
+''')
+        write(u'''}
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def assignVectorPointers(self, vectors, destPrefix, srcPrefix=None, **KWS):
+
+
+
+        ## CHEETAH: generated from @def assignVectorPointers($vectors, $destPrefix, $srcPrefix = None) at line 616, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # dex: Assign the pointer of `vecSrc` to `vecDest`
+        # 
+        for vector in VFFSL(SL,"vectors",True): # generated from line 619, col 3
+            _v = VFFSL(SL,"destPrefix",True) # u'${destPrefix}' on line 620, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${destPrefix}')) # from line 620, col 1.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 620, col 15
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 620, col 15.
+            write(u''' = ''')
+            _v = VFFSL(SL,"srcPrefix",True) # u'${srcPrefix}' on line 620, col 30
+            if _v is not None: write(_filter(_v, rawExpr=u'${srcPrefix}')) # from line 620, col 30.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 620, col 43
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 620, col 43.
+            write(u''';
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
     def writeBody(self, **KWS):
 
 
@@ -1080,6 +1200,8 @@ class ScriptElement(_ScriptElement):
 
 
 
+
+
 ''')
         
         ########################################
diff --git a/xpdeint/ScriptElement.tmpl b/xpdeint/ScriptElement.tmpl
index 46763d1..3d3e7f2 100644
--- a/xpdeint/ScriptElement.tmpl
+++ b/xpdeint/ScriptElement.tmpl
@@ -600,3 +600,25 @@ memcpy(${destPrefix}_${vector.id}, ${srcPrefix}_${vector.id}, sizeof(${vector.ty
   @#
 @end def
 
+ at def swapVectorPointers($vectors, $destPrefix, $srcPrefix = None)
+@#dex: Swap the pointers of `vecSrc` and `vecDest`
+  @#
+{
+  @for $vector in $vectors
+  ${vector.type}* _temp_${destPrefix}_${vector.id} = ${destPrefix}_${vector.id};
+  ${destPrefix}_${vector.id} = ${srcPrefix}_${vector.id};
+  ${srcPrefix}_${vector.id} = _temp_${destPrefix}_${vector.id};
+  @end for
+}
+  @#
+ at end def
+
+ at def assignVectorPointers($vectors, $destPrefix, $srcPrefix = None)
+@#dex: Assign the pointer of `vecSrc` to `vecDest`
+  @#
+  @for $vector in $vectors
+${destPrefix}_${vector.id} = ${srcPrefix}_${vector.id};
+  @end for
+  @#
+ at end def
+
diff --git a/xpdeint/Segments/BreakpointSegment.py b/xpdeint/Segments/BreakpointSegment.py
index 4488c65..b5de32e 100644
--- a/xpdeint/Segments/BreakpointSegment.py
+++ b/xpdeint/Segments/BreakpointSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.320684
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/BreakpointSegment.tmpl'
+__CHEETAH_genTime__ = 1389652443.376311
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/BreakpointSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/FilterSegment.py b/xpdeint/Segments/FilterSegment.py
index 488f2d4..c44e19f 100644
--- a/xpdeint/Segments/FilterSegment.py
+++ b/xpdeint/Segments/FilterSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.341438
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/FilterSegment.tmpl'
+__CHEETAH_genTime__ = 1389652443.816153
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/FilterSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/AdaptiveStep.py b/xpdeint/Segments/Integrators/AdaptiveStep.py
index 494b95d..88c5ce9 100644
--- a/xpdeint/Segments/Integrators/AdaptiveStep.py
+++ b/xpdeint/Segments/Integrators/AdaptiveStep.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.44971
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/AdaptiveStep.tmpl'
-__CHEETAH_srcLastModified__ = 'Mon Sep  3 14:15:51 2012'
+__CHEETAH_genTime__ = 1389652445.303739
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/AdaptiveStep.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -102,7 +102,7 @@ class AdaptiveStep(Integrator):
 
 
 
-        ## CHEETAH: generated from @def functionPrototypes at line 29, col 1.
+        ## CHEETAH: generated from @def functionPrototypes at line 31, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -122,31 +122,31 @@ class AdaptiveStep(Integrator):
         if _v is not None: write(_filter(_v))
         # 
         write(u'''real _segment''')
-        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 33, col 14
-        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 33, col 14.
+        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 35, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 35, col 14.
         write(u'''_setup_sampling(bool* _next_sample_flag, long* _next_sample_counter);
 ''')
         # 
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 35, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 37, col 3
             write(u'''real _segment''')
-            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 36, col 14
-            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 36, col 14.
+            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 38, col 14
+            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 38, col 14.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 36, col 31
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 36, col 31.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 38, col 31
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 38, col 31.
             write(u'''_timestep_error(''')
-            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 36, col 59
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 36, col 59.
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 38, col 59
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 38, col 59.
             write(u'''* _checkfield);
 bool _segment''')
-            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 37, col 14
-            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 37, col 14.
+            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 39, col 14
+            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 39, col 14.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 37, col 31
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 37, col 31.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 39, col 31
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 39, col 31.
             write(u'''_reset(''')
-            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 37, col 50
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 37, col 50.
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 39, col 50
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 39, col 50.
             write(u'''* _reset_to);
 ''')
         # 
@@ -161,7 +161,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def functionImplementations at line 46, col 1.
+        ## CHEETAH: generated from @def functionImplementations at line 48, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -180,17 +180,17 @@ bool _segment''')
         _v = super(AdaptiveStep, self).functionImplementations()
         if _v is not None: write(_filter(_v))
         # 
-        _v = VFFSL(SL,"setupSamplingFunctionImplementation",True) # u'${setupSamplingFunctionImplementation}' on line 50, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${setupSamplingFunctionImplementation}')) # from line 50, col 1.
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 51, col 3
+        _v = VFFSL(SL,"setupSamplingFunctionImplementation",True) # u'${setupSamplingFunctionImplementation}' on line 52, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${setupSamplingFunctionImplementation}')) # from line 52, col 1.
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 53, col 3
             write(u'''
 ''')
-            _v = VFFSL(SL,"timestepErrorFunctionImplementation",False)(VFFSL(SL,"vector",True)) # u'${timestepErrorFunctionImplementation($vector)}' on line 53, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${timestepErrorFunctionImplementation($vector)}')) # from line 53, col 1.
+            _v = VFFSL(SL,"timestepErrorFunctionImplementation",False)(VFFSL(SL,"vector",True)) # u'${timestepErrorFunctionImplementation($vector)}' on line 55, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${timestepErrorFunctionImplementation($vector)}')) # from line 55, col 1.
             write(u'''
 ''')
-            _v = VFFSL(SL,"resetFunctionImplementation",False)(VFFSL(SL,"vector",True)) # u'${resetFunctionImplementation($vector)}' on line 55, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${resetFunctionImplementation($vector)}')) # from line 55, col 1.
+            _v = VFFSL(SL,"resetFunctionImplementation",False)(VFFSL(SL,"vector",True)) # u'${resetFunctionImplementation($vector)}' on line 57, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${resetFunctionImplementation($vector)}')) # from line 57, col 1.
         # 
         
         ########################################
@@ -203,7 +203,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def setupSamplingFunctionImplementation at line 61, col 1.
+        ## CHEETAH: generated from @def setupSamplingFunctionImplementation at line 63, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -220,15 +220,15 @@ bool _segment''')
         
         # 
         write(u'''real _segment''')
-        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 63, col 14
-        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 63, col 14.
+        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 65, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 65, col 14.
         write(u'''_setup_sampling(bool* _next_sample_flag, long* _next_sample_counter)
 {
   // The numbers of the moment groups that need to be sampled at the next sampling point.
   // An entry of N+1 means "reached end of integration interval"
   long _momentGroupNumbersNeedingSamplingNext[''')
-        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) + 1 # u'${len($samples) + 1}' on line 67, col 47
-        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples) + 1}')) # from line 67, col 47.
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) + 1 # u'${len($samples) + 1}' on line 69, col 47
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples) + 1}')) # from line 69, col 47.
         write(u'''];
   long _numberOfMomentGroupsToBeSampledNext = 1;
   
@@ -236,21 +236,21 @@ bool _segment''')
   long _previous_M = 1;
   
   real _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 73, col 9
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 73, col 9.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 75, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 75, col 9.
         write(u'''_break_next = (real)''')
-        _v = VFFSL(SL,"interval",True) # u'${interval}' on line 73, col 52
-        if _v is not None: write(_filter(_v, rawExpr=u'${interval}')) # from line 73, col 52.
+        _v = VFFSL(SL,"interval",True) # u'${interval}' on line 75, col 52
+        if _v is not None: write(_filter(_v, rawExpr=u'${interval}')) # from line 75, col 52.
         write(u''';
   _momentGroupNumbersNeedingSamplingNext[0] = ''')
-        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) # u'${len($samples)}' on line 74, col 47
-        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples)}')) # from line 74, col 47.
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) # u'${len($samples)}' on line 76, col 47
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples)}')) # from line 76, col 47.
         write(u''';
   
   // initialise all flags to false
   for (long _i0 = 0; _i0 < ''')
-        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) + 1 # u'${len($samples) + 1}' on line 77, col 28
-        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples) + 1}')) # from line 77, col 28.
+        _v = VFFSL(SL,"len",False)(VFFSL(SL,"samples",True)) + 1 # u'${len($samples) + 1}' on line 79, col 28
+        if _v is not None: write(_filter(_v, rawExpr=u'${len($samples) + 1}')) # from line 79, col 28.
         write(u'''; _i0++)
     _next_sample_flag[_i0] = false;
   
@@ -259,53 +259,53 @@ bool _segment''')
    * previously noted moment groups, erase all previous ones from list and set the sample time to this earlier one.
    */
 ''')
-        for momentGroupNumber, sampleCount in enumerate(VFFSL(SL,"samples",True)): # generated from line 84, col 3
-            if VFFSL(SL,"sampleCount",True) == 0: # generated from line 85, col 5
+        for momentGroupNumber, sampleCount in enumerate(VFFSL(SL,"samples",True)): # generated from line 86, col 3
+            if VFFSL(SL,"sampleCount",True) == 0: # generated from line 87, col 5
                 continue
             write(u'''  if (_next_sample_counter[''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 88, col 28
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 88, col 28.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 90, col 28
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 90, col 28.
             write(u'''] * _previous_M == _previous_m * ''')
-            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 88, col 79
-            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 88, col 79.
+            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 90, col 79
+            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 90, col 79.
             write(u''') {
     _momentGroupNumbersNeedingSamplingNext[_numberOfMomentGroupsToBeSampledNext] = ''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 89, col 84
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 89, col 84.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 91, col 84
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 91, col 84.
             write(u''';
     _numberOfMomentGroupsToBeSampledNext++;
   } else if (_next_sample_counter[''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 91, col 35
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 91, col 35.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 93, col 35
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 93, col 35.
             write(u'''] * _previous_M < _previous_m * ''')
-            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 91, col 85
-            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 91, col 85.
+            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 93, col 85
+            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 93, col 85.
             write(u''') {
     _''')
-            _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 92, col 6
-            if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 92, col 6.
+            _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 94, col 6
+            if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 94, col 6.
             write(u'''_break_next = _next_sample_counter[''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 92, col 64
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 92, col 64.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 94, col 64
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 94, col 64.
             write(u'''] * ((real)''')
-            _v = VFFSL(SL,"interval",True) # u'$interval' on line 92, col 93
-            if _v is not None: write(_filter(_v, rawExpr=u'$interval')) # from line 92, col 93.
+            _v = VFFSL(SL,"interval",True) # u'$interval' on line 94, col 93
+            if _v is not None: write(_filter(_v, rawExpr=u'$interval')) # from line 94, col 93.
             write(u''') / ((real)''')
-            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 92, col 113
-            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 92, col 113.
+            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 94, col 113
+            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 94, col 113.
             write(u''');
     _numberOfMomentGroupsToBeSampledNext = 1;
     _momentGroupNumbersNeedingSamplingNext[0] = ''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 94, col 49
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 94, col 49.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 96, col 49
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 96, col 49.
             write(u''';
     _previous_M = ''')
-            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 95, col 19
-            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 95, col 19.
+            _v = VFFSL(SL,"sampleCount",True) # u'$sampleCount' on line 97, col 19
+            if _v is not None: write(_filter(_v, rawExpr=u'$sampleCount')) # from line 97, col 19.
             write(u''';
     _previous_m = _next_sample_counter[''')
-            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 96, col 40
-            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 96, col 40.
+            _v = VFFSL(SL,"momentGroupNumber",True) # u'$momentGroupNumber' on line 98, col 40
+            if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupNumber')) # from line 98, col 40.
             write(u'''];
   }
   
@@ -316,8 +316,8 @@ bool _segment''')
     _next_sample_flag[_momentGroupNumbersNeedingSamplingNext[_i0]] = true;
   
   return _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 105, col 11
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 105, col 11.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 107, col 11
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 107, col 11.
         write(u'''_break_next;
 }
 ''')
@@ -333,7 +333,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def timestepErrorFunctionImplementation($vector) at line 111, col 1.
+        ## CHEETAH: generated from @def timestepErrorFunctionImplementation($vector) at line 113, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -350,14 +350,14 @@ bool _segment''')
         
         # 
         write(u'''real _segment''')
-        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 113, col 14
-        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 113, col 14.
+        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 115, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 115, col 14.
         write(u'''_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 113, col 31
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 113, col 31.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 115, col 31
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 115, col 31.
         write(u'''_timestep_error(''')
-        _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 113, col 59
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 113, col 59.
+        _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 115, col 59
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 115, col 59.
         write(u'''* _checkfield)
 {
   real _error = 1e-24;
@@ -368,54 +368,54 @@ bool _segment''')
         featureOrdering = ['Diagnostics']
         dict = {'vector': vector}
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('timestepErrorBegin', featureOrdering, {'vector': vector}) # u"${insertCodeForFeatures('timestepErrorBegin', featureOrdering, {'vector': vector}), autoIndent=True}" on line 121, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('timestepErrorBegin', featureOrdering, {'vector': vector}), autoIndent=True}")) # from line 121, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('timestepErrorBegin', featureOrdering, {'vector': vector}) # u"${insertCodeForFeatures('timestepErrorBegin', featureOrdering, {'vector': vector}), autoIndent=True}" on line 123, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('timestepErrorBegin', featureOrdering, {'vector': vector}), autoIndent=True}")) # from line 123, col 3.
         write(u'''  
 ''')
-        if len(VFFSL(SL,"vector.field.dimensions",True)) > 0: # generated from line 123, col 3
+        if len(VFFSL(SL,"vector.field.dimensions",True)) > 0: # generated from line 125, col 3
             #  FIXME: We need to have the capacity to have both a peak cutoff and an absolute cutoff
             write(u'''  // Find the peak value for each component of the field
   real _cutoff[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 126, col 17
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 126, col 17.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 128, col 17
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 128, col 17.
             write(u'''_ncomponents];
   
   for (long _i0 = 0; _i0 < _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 128, col 29
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 128, col 29.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 130, col 29
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 130, col 29.
             write(u'''_ncomponents; _i0++)
     _cutoff[_i0] = 0.0;
   
   {
     ''')
-            _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideFindPeakLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindPeakLoops(vector)), autoIndent=True}' on line 132, col 5
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindPeakLoops(vector)), autoIndent=True}')) # from line 132, col 5.
+            _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideFindPeakLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindPeakLoops(vector)), autoIndent=True}' on line 134, col 5
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindPeakLoops(vector)), autoIndent=True}')) # from line 134, col 5.
             write(u'''  }
   ''')
-            _v = VFFSL(SL,"insertCodeForFeatures",False)('findMax', ['Driver'], {'variable': '_cutoff', 'count': ''.join([u'_',str(VFFSL(SL,"vector.id",True)),u'_ncomponents'])}) # u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '_cutoff', 'count': c'_${vector.id}_ncomponents'}), autoIndent=True}" on line 134, col 3
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '_cutoff', 'count': c'_${vector.id}_ncomponents'}), autoIndent=True}")) # from line 134, col 3.
+            _v = VFFSL(SL,"insertCodeForFeatures",False)('findMax', ['Driver'], {'variable': '_cutoff', 'count': ''.join([u'_',str(VFFSL(SL,"vector.id",True)),u'_ncomponents'])}) # u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '_cutoff', 'count': c'_${vector.id}_ncomponents'}), autoIndent=True}" on line 136, col 3
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '_cutoff', 'count': c'_${vector.id}_ncomponents'}), autoIndent=True}")) # from line 136, col 3.
             write(u'''  
   for (long _i0 = 0; _i0 < _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 136, col 29
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 136, col 29.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 138, col 29
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 138, col 29.
             write(u'''_ncomponents; _i0++) {
     if (_xmds_isnonfinite(_cutoff[_i0]))
       // Return an error two times the tolerance in this case because the timestep must be reduced.
       return 2.0*''')
-            _v = VFFSL(SL,"tolerance",True) # u'${tolerance}' on line 139, col 18
-            if _v is not None: write(_filter(_v, rawExpr=u'${tolerance}')) # from line 139, col 18.
+            _v = VFFSL(SL,"tolerance",True) # u'${tolerance}' on line 141, col 18
+            if _v is not None: write(_filter(_v, rawExpr=u'${tolerance}')) # from line 141, col 18.
             write(u''';
     _cutoff[_i0] *= ''')
-            _v = VFFSL(SL,"cutoff",True) # u'${cutoff}' on line 140, col 21
-            if _v is not None: write(_filter(_v, rawExpr=u'${cutoff}')) # from line 140, col 21.
+            _v = VFFSL(SL,"cutoff",True) # u'${cutoff}' on line 142, col 21
+            if _v is not None: write(_filter(_v, rawExpr=u'${cutoff}')) # from line 142, col 21.
             write(u''';
 ''')
-            if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 141, col 5
+            if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 143, col 5
                 #  multiply again because we are using norm for our complex vector and the cutoff should be interpreted in terms of
                 #  the absolute magnitude of the variables, not the mod-square
                 write(u'''    _cutoff[_i0] *= ''')
-                _v = VFFSL(SL,"cutoff",True) # u'${cutoff}' on line 144, col 21
-                if _v is not None: write(_filter(_v, rawExpr=u'${cutoff}')) # from line 144, col 21.
+                _v = VFFSL(SL,"cutoff",True) # u'${cutoff}' on line 146, col 21
+                if _v is not None: write(_filter(_v, rawExpr=u'${cutoff}')) # from line 146, col 21.
                 write(u''';
 ''')
             write(u'''  }
@@ -432,15 +432,15 @@ bool _segment''')
         # 
         write(u'''  {
     ''')
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideFindMaxErrorLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindMaxErrorLoops(vector)), autoIndent=True}' on line 158, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindMaxErrorLoops(vector)), autoIndent=True}')) # from line 158, col 5.
+        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideFindMaxErrorLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindMaxErrorLoops(vector)), autoIndent=True}' on line 160, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideFindMaxErrorLoops(vector)), autoIndent=True}')) # from line 160, col 5.
         write(u'''  }
   ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}) # u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}), autoIndent=True}" on line 160, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}), autoIndent=True}")) # from line 160, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}) # u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}), autoIndent=True}" on line 162, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('findMax', ['Driver'], {'variable': '&_error', 'count': '1'}), autoIndent=True}")) # from line 162, col 3.
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('timestepErrorEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('timestepErrorEnd', featureOrdering, dict), autoIndent=True}" on line 161, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('timestepErrorEnd', featureOrdering, dict), autoIndent=True}")) # from line 161, col 3.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('timestepErrorEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('timestepErrorEnd', featureOrdering, dict), autoIndent=True}" on line 163, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('timestepErrorEnd', featureOrdering, dict), autoIndent=True}")) # from line 163, col 3.
         write(u'''  
   return _error;
 }
@@ -457,7 +457,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def insideFindPeakLoops($vector) at line 169, col 1.
+        ## CHEETAH: generated from @def insideFindPeakLoops($vector) at line 171, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -474,23 +474,23 @@ bool _segment''')
         
         # 
         write(u'''for (long _i1 = 0; _i1 < _''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 171, col 27
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 171, col 27.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 173, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 173, col 27.
         write(u'''_ncomponents; _i1++) {
 ''')
-        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 172, col 3
+        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 174, col 3
             modFunction = 'mod2'
-        else: # generated from line 174, col 3
+        else: # generated from line 176, col 3
             modFunction = 'abs'
         write(u'''  _temp_mod = ''')
-        _v = VFFSL(SL,"modFunction",True) # u'${modFunction}' on line 177, col 15
-        if _v is not None: write(_filter(_v, rawExpr=u'${modFunction}')) # from line 177, col 15.
+        _v = VFFSL(SL,"modFunction",True) # u'${modFunction}' on line 179, col 15
+        if _v is not None: write(_filter(_v, rawExpr=u'${modFunction}')) # from line 179, col 15.
         write(u'''(_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 177, col 31
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 177, col 31.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 179, col 31
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 179, col 31.
         write(u'''[_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 177, col 45
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 177, col 45.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 179, col 45
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 179, col 45.
         write(u'''_index_pointer + _i1]);
   if (_xmds_isnonfinite(_temp_mod))
     _cutoff[_i1] = INFINITY;
@@ -510,7 +510,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def insideFindMaxErrorLoops($vector) at line 187, col 1.
+        ## CHEETAH: generated from @def insideFindMaxErrorLoops($vector) at line 189, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -527,34 +527,34 @@ bool _segment''')
         
         # 
         write(u'''for (long  _i1 = 0; _i1 < _''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 189, col 28
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 189, col 28.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 191, col 28
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 191, col 28.
         write(u'''_ncomponents; _i1++) {
 ''')
-        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 190, col 3
+        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 192, col 3
             modCutoffFunction = 'mod2'
-        else: # generated from line 192, col 3
+        else: # generated from line 194, col 3
             modCutoffFunction = 'abs'
-        if len(VFFSL(SL,"vector.field.dimensions",True)) > 0: # generated from line 195, col 3
+        if len(VFFSL(SL,"vector.field.dimensions",True)) > 0: # generated from line 197, col 3
             write(u'''  if (''')
-            _v = VFFSL(SL,"modCutoffFunction",True) # u'${modCutoffFunction}' on line 196, col 7
-            if _v is not None: write(_filter(_v, rawExpr=u'${modCutoffFunction}')) # from line 196, col 7.
+            _v = VFFSL(SL,"modCutoffFunction",True) # u'${modCutoffFunction}' on line 198, col 7
+            if _v is not None: write(_filter(_v, rawExpr=u'${modCutoffFunction}')) # from line 198, col 7.
             write(u'''(_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 196, col 29
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 196, col 29.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 198, col 29
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 198, col 29.
             write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 196, col 43
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 196, col 43.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 198, col 43
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 198, col 43.
             write(u'''_index_pointer + _i1]) > _cutoff[_i1]) {
     ''')
-            _v = VFFSL(SL,"updateMaximumError",False)(VFFSL(SL,"vector",True)) # u'${updateMaximumError($vector), autoIndent=True}' on line 197, col 5
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${updateMaximumError($vector), autoIndent=True}')) # from line 197, col 5.
+            _v = VFFSL(SL,"updateMaximumError",False)(VFFSL(SL,"vector",True)) # u'${updateMaximumError($vector), autoIndent=True}' on line 199, col 5
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${updateMaximumError($vector), autoIndent=True}')) # from line 199, col 5.
             write(u'''  }
 ''')
-        else: # generated from line 199, col 3
+        else: # generated from line 201, col 3
             write(u'''  ''')
-            _v = VFFSL(SL,"updateMaximumError",False)(VFFSL(SL,"vector",True)) # u'${updateMaximumError($vector), autoIndent=True}' on line 200, col 3
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${updateMaximumError($vector), autoIndent=True}')) # from line 200, col 3.
+            _v = VFFSL(SL,"updateMaximumError",False)(VFFSL(SL,"vector",True)) # u'${updateMaximumError($vector), autoIndent=True}' on line 202, col 3
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${updateMaximumError($vector), autoIndent=True}')) # from line 202, col 3.
         write(u'''}
 ''')
         # 
@@ -569,7 +569,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def insideLookForNaNLoops($vector) at line 206, col 1.
+        ## CHEETAH: generated from @def insideLookForNaNLoops($vector) at line 208, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -592,33 +592,33 @@ bool _segment''')
         #  modulus. Presumably two seperate Re(), Im() checks are faster than mod2
         # 
         write(u'''  for (long _i1 = 0; _i1 < _''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 214, col 29
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 214, col 29.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 216, col 29
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 216, col 29.
         write(u'''_ncomponents; _i1++) {
 ''')
-        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 215, col 3
+        if VFFSL(SL,"vector.type",True) == 'complex': # generated from line 217, col 3
             write(u'''    if (_xmds_isnonfinite(_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 216, col 28
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 216, col 28.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 218, col 28
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 218, col 28.
             write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 216, col 42
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 216, col 42.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 218, col 42
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 218, col 42.
             write(u'''_index_pointer + _i1].Re())
       || _xmds_isnonfinite(_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 217, col 29
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 217, col 29.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 29
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 29.
             write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 217, col 43
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 217, col 43.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 43
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 43.
             write(u'''_index_pointer + _i1].Im())) bNoNaNsPresent = false;
 ''')
-        else: # generated from line 218, col 3
+        else: # generated from line 220, col 3
             write(u'''    if (_xmds_isnonfinite(_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 28
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 28.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 28
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 28.
             write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 42
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 42.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 42
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 42.
             write(u'''_index_pointer + _i1])) bNoNaNsPresent = false;
 ''')
         write(u'''  }
@@ -635,7 +635,7 @@ bool _segment''')
 
 
 
-        ## CHEETAH: generated from @def updateMaximumError($vector) at line 225, col 1.
+        ## CHEETAH: generated from @def updateMaximumError($vector) at line 227, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -652,23 +652,23 @@ bool _segment''')
         
         # 
         write(u'''_temp_error = abs(_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 20
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 20.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 20
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 20.
         write(u'''[_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 34
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 34.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 34
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 34.
         write(u'''_index_pointer + _i1] - _checkfield[_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 83
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 83.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 83
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 83.
         write(u'''_index_pointer + _i1]) / (0.5*abs(_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 130
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 130.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 130
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 130.
         write(u'''[_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 144
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 144.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 144
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 144.
         write(u'''_index_pointer + _i1]) + 0.5*abs(_checkfield[_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 227, col 202
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 227, col 202.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 229, col 202
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 229, col 202.
         write(u'''_index_pointer + _i1]));
 
 if (_xmds_isnonfinite(_temp_error)) {
@@ -681,8 +681,8 @@ if (_error < _temp_error) // UNVECTORISABLE
   _error = _temp_error;
 ''')
         # 
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('updateMaximumError', ['Diagnostics'], {'vector': vector}) # u"${insertCodeForFeatures('updateMaximumError', ['Diagnostics'], {'vector': vector})}" on line 238, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('updateMaximumError', ['Diagnostics'], {'vector': vector})}")) # from line 238, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('updateMaximumError', ['Diagnostics'], {'vector': vector}) # u"${insertCodeForFeatures('updateMaximumError', ['Diagnostics'], {'vector': vector})}" on line 240, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('updateMaximumError', ['Diagnostics'], {'vector': vector})}")) # from line 240, col 1.
         # 
         
         ########################################
@@ -695,7 +695,7 @@ if (_error < _temp_error) // UNVECTORISABLE
 
 
 
-        ## CHEETAH: generated from @def resetFunctionImplementation($vector) at line 243, col 1.
+        ## CHEETAH: generated from @def resetFunctionImplementation($vector) at line 245, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -712,29 +712,29 @@ if (_error < _temp_error) // UNVECTORISABLE
         
         # 
         write(u'''bool _segment''')
-        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 245, col 14
-        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 245, col 14.
+        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 247, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 247, col 14.
         write(u'''_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 31
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 31.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 247, col 31
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 247, col 31.
         write(u'''_reset(''')
-        _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 245, col 50
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 245, col 50.
+        _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 247, col 50
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 247, col 50.
         write(u'''* _reset_to_''')
-        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 76
-        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 76.
+        _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 247, col 76
+        if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 247, col 76.
         write(u''')
 {
   ''')
-        _v = VFFSL(SL,"copyVectors",False)([vector], destPrefix = '', srcPrefix = '_reset_to') # u"${copyVectors([vector], destPrefix = '', srcPrefix = '_reset_to'), autoIndent=True}" on line 247, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors([vector], destPrefix = '', srcPrefix = '_reset_to'), autoIndent=True}")) # from line 247, col 3.
+        _v = VFFSL(SL,"copyVectors",False)([vector], destPrefix = '', srcPrefix = '_reset_to') # u"${copyVectors([vector], destPrefix = '', srcPrefix = '_reset_to'), autoIndent=True}" on line 249, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors([vector], destPrefix = '', srcPrefix = '_reset_to'), autoIndent=True}")) # from line 249, col 3.
         write(u"""  
   /* return false if there's a NaN somewhere in the vector, otherwise return true */
   bool bNoNaNsPresent = true;
   {
     """)
-        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideLookForNaNLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideLookForNaNLoops(vector)), autoIndent=True}' on line 252, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideLookForNaNLoops(vector)), autoIndent=True}')) # from line 252, col 5.
+        _v = VFFSL(SL,"loopOverVectorsInBasisWithInnerContent",False)([vector], VFFSL(SL,"homeBasis",True), VFFSL(SL,"insideLookForNaNLoops",False)(vector)) # u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideLookForNaNLoops(vector)), autoIndent=True}' on line 254, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsInBasisWithInnerContent([vector], $homeBasis, $insideLookForNaNLoops(vector)), autoIndent=True}')) # from line 254, col 5.
         write(u'''  }
   return bNoNaNsPresent;
 }
@@ -755,7 +755,7 @@ if (_error < _temp_error) // UNVECTORISABLE
         including any modifications necessary due to the ErrorCheck feature.
         """
 
-        ## CHEETAH: generated from @def createToleranceVariable at line 259, col 1.
+        ## CHEETAH: generated from @def createToleranceVariable at line 261, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -772,14 +772,14 @@ if (_error < _temp_error) // UNVECTORISABLE
         
         # 
         write(u'''real _tolerance = ''')
-        _v = VFFSL(SL,"tolerance",True) # u'${tolerance}' on line 265, col 19
-        if _v is not None: write(_filter(_v, rawExpr=u'${tolerance}')) # from line 265, col 19.
+        _v = VFFSL(SL,"tolerance",True) # u'${tolerance}' on line 267, col 19
+        if _v is not None: write(_filter(_v, rawExpr=u'${tolerance}')) # from line 267, col 19.
         write(u''';
 ''')
         # 
         featureOrdering = ['ErrorCheck']
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('createToleranceVariable', featureOrdering) # u"${insertCodeForFeatures('createToleranceVariable', featureOrdering)}" on line 268, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('createToleranceVariable', featureOrdering)}")) # from line 268, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('createToleranceVariable', featureOrdering) # u"${insertCodeForFeatures('createToleranceVariable', featureOrdering)}" on line 270, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('createToleranceVariable', featureOrdering)}")) # from line 270, col 1.
         # 
         
         ########################################
@@ -792,7 +792,7 @@ if (_error < _temp_error) // UNVECTORISABLE
 
 
 
-        ## CHEETAH: generated from @def segmentFunctionBody($function) at line 272, col 1.
+        ## CHEETAH: generated from @def segmentFunctionBody($function) at line 274, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -809,11 +809,11 @@ if (_error < _temp_error) // UNVECTORISABLE
         
         # 
         write(u'''real _step = ''')
-        _v = VFFSL(SL,"interval",True) # u'${interval}' on line 274, col 14
-        if _v is not None: write(_filter(_v, rawExpr=u'${interval}')) # from line 274, col 14.
+        _v = VFFSL(SL,"interval",True) # u'${interval}' on line 276, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${interval}')) # from line 276, col 14.
         write(u'''/(real)''')
-        _v = VFFSL(SL,"stepCount",True) # u'${stepCount}' on line 274, col 32
-        if _v is not None: write(_filter(_v, rawExpr=u'${stepCount}')) # from line 274, col 32.
+        _v = VFFSL(SL,"stepCount",True) # u'${stepCount}' on line 276, col 32
+        if _v is not None: write(_filter(_v, rawExpr=u'${stepCount}')) # from line 276, col 32.
         write(u''';
 real _old_step = _step;
 real _min_step = _step;
@@ -822,22 +822,22 @@ long _attempted_steps = 0;
 long _unsuccessful_steps = 0;
 
 ''')
-        _v = VFFSL(SL,"createToleranceVariable",True) # u'${createToleranceVariable}' on line 281, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${createToleranceVariable}')) # from line 281, col 1.
+        _v = VFFSL(SL,"createToleranceVariable",True) # u'${createToleranceVariable}' on line 283, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${createToleranceVariable}')) # from line 283, col 1.
         #  Insert code for features
         featureOrderingOuter = ['Stochastic']
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepBegin', featureOrderingOuter) # u"${insertCodeForFeatures('integrateAdaptiveStepBegin', featureOrderingOuter)}" on line 284, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepBegin', featureOrderingOuter)}")) # from line 284, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepBegin', featureOrderingOuter) # u"${insertCodeForFeatures('integrateAdaptiveStepBegin', featureOrderingOuter)}" on line 286, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepBegin', featureOrderingOuter)}")) # from line 286, col 1.
         write(u'''
 real _error, _last_norm_error = 1.0;
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 287, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 289, col 3
             write(u'''real _''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 288, col 7
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 288, col 7.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 290, col 7
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 290, col 7.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 288, col 15
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 288, col 15.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 290, col 15
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 290, col 15.
             write(u'''_error;
 ''')
         write(u'''
@@ -847,125 +847,125 @@ bool _break_next = false;
 ''')
         momentGroupCount = len(VFFSL(SL,"momentGroups",True))
         write(u'''bool _next_sample_flag[''')
-        _v = VFFSL(SL,"momentGroupCount",True) + 2 # u'${momentGroupCount + 2}' on line 295, col 24
-        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 2}')) # from line 295, col 24.
+        _v = VFFSL(SL,"momentGroupCount",True) + 2 # u'${momentGroupCount + 2}' on line 297, col 24
+        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 2}')) # from line 297, col 24.
         write(u'''];
 for (long _i0 = 0; _i0 < ''')
-        _v = VFFSL(SL,"momentGroupCount",True) + 2 # u'${momentGroupCount + 2}' on line 296, col 26
-        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 2}')) # from line 296, col 26.
+        _v = VFFSL(SL,"momentGroupCount",True) + 2 # u'${momentGroupCount + 2}' on line 298, col 26
+        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 2}')) # from line 298, col 26.
         write(u'''; _i0++)
   _next_sample_flag[_i0] = false;
 
 long _next_sample_counter[''')
-        _v = VFFSL(SL,"momentGroupCount",True) # u'$momentGroupCount' on line 299, col 27
-        if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupCount')) # from line 299, col 27.
+        _v = VFFSL(SL,"momentGroupCount",True) # u'$momentGroupCount' on line 301, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupCount')) # from line 301, col 27.
         write(u'''];
 for (long _i0 = 0; _i0 < ''')
-        _v = VFFSL(SL,"momentGroupCount",True) # u'$momentGroupCount' on line 300, col 26
-        if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupCount')) # from line 300, col 26.
+        _v = VFFSL(SL,"momentGroupCount",True) # u'$momentGroupCount' on line 302, col 26
+        if _v is not None: write(_filter(_v, rawExpr=u'$momentGroupCount')) # from line 302, col 26.
         write(u'''; _i0++)
   _next_sample_counter[_i0] = 1;
 
 real _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 303, col 7
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 303, col 7.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 305, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 305, col 7.
         write(u'''_local = 0.0;
 
 real _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 305, col 7
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 305, col 7.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 307, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 307, col 7.
         write(u'''_break_next = _''')
-        _v = VFFSL(SL,"name",True) # u'${name}' on line 305, col 45
-        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 305, col 45.
+        _v = VFFSL(SL,"name",True) # u'${name}' on line 307, col 45
+        if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 307, col 45.
         write(u'''_setup_sampling(_next_sample_flag, _next_sample_counter);
 
 if ( (_''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 307, col 8
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 307, col 8.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 309, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 309, col 8.
         write(u'''_local + _step)*(1.0 + _EPSILON) >= _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 307, col 68
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 307, col 68.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 309, col 68
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 309, col 68.
         write(u'''_break_next) {
   _break_next = true;
   _step = _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 309, col 12
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 309, col 12.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 311, col 12
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 311, col 12.
         write(u'''_break_next - _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 309, col 50
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 309, col 50.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 311, col 50
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 311, col 50.
         write(u'''_local;
 }
 
 ''')
-        _v = VFFSL(SL,"allocate",True) # u'${allocate}' on line 312, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${allocate}')) # from line 312, col 1.
-        _v = VFFSL(SL,"initialise",True) # u'${initialise}' on line 313, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${initialise}')) # from line 313, col 1.
-        _v = VFFSL(SL,"localInitialise",True) # u'${localInitialise}' on line 314, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${localInitialise}')) # from line 314, col 1.
+        _v = VFFSL(SL,"allocate",True) # u'${allocate}' on line 314, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${allocate}')) # from line 314, col 1.
+        _v = VFFSL(SL,"initialise",True) # u'${initialise}' on line 315, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${initialise}')) # from line 315, col 1.
+        _v = VFFSL(SL,"localInitialise",True) # u'${localInitialise}' on line 316, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${localInitialise}')) # from line 316, col 1.
         write(u'''
 do {
 ''')
         featureOrderingOuterLoop = ['MaxIterations', 'Output', 'ErrorCheck']
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop) # u"${insertCodeForFeatures('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop), autoIndent=True}" on line 318, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop), autoIndent=True}")) # from line 318, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop) # u"${insertCodeForFeatures('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop), autoIndent=True}" on line 320, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepOuterLoopBegin', featureOrderingOuterLoop), autoIndent=True}")) # from line 320, col 3.
         write(u'''  
   ''')
-        _v = VFFSL(SL,"preSingleStep",True) # u'${preSingleStep, autoIndent=True}' on line 320, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${preSingleStep, autoIndent=True}')) # from line 320, col 3.
+        _v = VFFSL(SL,"preSingleStep",True) # u'${preSingleStep, autoIndent=True}' on line 322, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${preSingleStep, autoIndent=True}')) # from line 322, col 3.
         write(u'''  do {
 ''')
         #  Insert code for features
         featureOrderingInnerLoop = ['Stochastic']
         write(u'''    ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop) # u"${insertCodeForFeatures('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop), autoIndent=True}" on line 324, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop), autoIndent=True}")) # from line 324, col 5.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop) # u"${insertCodeForFeatures('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop), autoIndent=True}" on line 326, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('integrateAdaptiveStepInnerLoopBegin', featureOrderingInnerLoop), autoIndent=True}")) # from line 326, col 5.
         write(u'''    
     ''')
-        _v = VFN(VFFSL(SL,"stepper",True),"singleIntegrationStep",False)(function) # u'${stepper.singleIntegrationStep(function), autoIndent=True}' on line 326, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${stepper.singleIntegrationStep(function), autoIndent=True}')) # from line 326, col 5.
+        _v = VFN(VFFSL(SL,"stepper",True),"singleIntegrationStep",False)(function) # u'${stepper.singleIntegrationStep(function), autoIndent=True}' on line 328, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${stepper.singleIntegrationStep(function), autoIndent=True}')) # from line 328, col 5.
         write(u'''    
     ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop), autoIndent=True}" on line 328, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop), autoIndent=True}")) # from line 328, col 5.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop), autoIndent=True}" on line 330, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepInnerLoopEnd', featureOrderingInnerLoop), autoIndent=True}")) # from line 330, col 5.
         write(u'''    
     _error = 0.0;
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 331, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 333, col 3
             write(u'''    
     _''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 333, col 6
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 333, col 6.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 335, col 6
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 335, col 6.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 333, col 14
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 333, col 14.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 335, col 14
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 335, col 14.
             write(u'''_error = _''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 333, col 36
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 333, col 36.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 335, col 36
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 335, col 36.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 333, col 44
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 333, col 44.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 335, col 44
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 335, col 44.
             write(u'''_timestep_error(_''')
-            _v = VFFSL(SL,"stepper.errorFieldName",True) # u'${stepper.errorFieldName}' on line 333, col 73
-            if _v is not None: write(_filter(_v, rawExpr=u'${stepper.errorFieldName}')) # from line 333, col 73.
+            _v = VFFSL(SL,"stepper.errorFieldName",True) # u'${stepper.errorFieldName}' on line 335, col 73
+            if _v is not None: write(_filter(_v, rawExpr=u'${stepper.errorFieldName}')) # from line 335, col 73.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 333, col 99
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 333, col 99.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 335, col 99
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 335, col 99.
             write(u''');
     if (_''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 334, col 10
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 334, col 10.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 336, col 10
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 336, col 10.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 334, col 18
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 334, col 18.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 336, col 18
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 336, col 18.
             write(u'''_error > _error)
       _error = _''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 335, col 17
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 335, col 17.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 337, col 17
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 337, col 17.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 335, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 335, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 337, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 337, col 25.
             write(u'''_error;
 ''')
         write(u'''    
@@ -975,11 +975,11 @@ do {
         featureOrderingForToleranceChecking = ['Diagnostics', 'Stochastic']
         write(u'''    if (_error < _tolerance) {
       ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('adaptiveStepSucceeded', VFFSL(SL,"featureOrderingForToleranceChecking",True)) # u"${insertCodeForFeatures('adaptiveStepSucceeded', $featureOrderingForToleranceChecking), autoIndent=True}" on line 342, col 7
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('adaptiveStepSucceeded', $featureOrderingForToleranceChecking), autoIndent=True}")) # from line 342, col 7.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('adaptiveStepSucceeded', VFFSL(SL,"featureOrderingForToleranceChecking",True)) # u"${insertCodeForFeatures('adaptiveStepSucceeded', $featureOrderingForToleranceChecking), autoIndent=True}" on line 344, col 7
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('adaptiveStepSucceeded', $featureOrderingForToleranceChecking), autoIndent=True}")) # from line 344, col 7.
         write(u'''      _''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 343, col 8
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 343, col 8.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 345, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 345, col 8.
         write(u'''_local += _step;
       if (_step > _max_step)
         _max_step = _step;
@@ -988,52 +988,52 @@ do {
       _discard = false;
     } else {
       ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('adaptiveStepFailed', VFFSL(SL,"featureOrderingForToleranceChecking",True)) # u"${insertCodeForFeatures('adaptiveStepFailed', $featureOrderingForToleranceChecking), autoIndent=True}" on line 350, col 7
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('adaptiveStepFailed', $featureOrderingForToleranceChecking), autoIndent=True}")) # from line 350, col 7.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('adaptiveStepFailed', VFFSL(SL,"featureOrderingForToleranceChecking",True)) # u"${insertCodeForFeatures('adaptiveStepFailed', $featureOrderingForToleranceChecking), autoIndent=True}" on line 352, col 7
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('adaptiveStepFailed', $featureOrderingForToleranceChecking), autoIndent=True}")) # from line 352, col 7.
         write(u'''      ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 351, col 7
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 351, col 7.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 353, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 353, col 7.
         write(u''' -= _step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 353, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 355, col 3
             write(u'''      if (_''')
-            _v = VFFSL(SL,"name",True) # u'${name}' on line 354, col 12
-            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 354, col 12.
+            _v = VFFSL(SL,"name",True) # u'${name}' on line 356, col 12
+            if _v is not None: write(_filter(_v, rawExpr=u'${name}')) # from line 356, col 12.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 354, col 20
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 354, col 20.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 356, col 20
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 356, col 20.
             write(u'''_reset(_''')
-            _v = VFFSL(SL,"stepper.resetFieldName",True) # u'${stepper.resetFieldName}' on line 354, col 40
-            if _v is not None: write(_filter(_v, rawExpr=u'${stepper.resetFieldName}')) # from line 354, col 40.
+            _v = VFFSL(SL,"stepper.resetFieldName",True) # u'${stepper.resetFieldName}' on line 356, col 40
+            if _v is not None: write(_filter(_v, rawExpr=u'${stepper.resetFieldName}')) # from line 356, col 40.
             write(u'''_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 354, col 66
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 354, col 66.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 356, col 66
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 356, col 66.
             write(u''') == false) {
 
         _LOG(_WARNING_LOG_LEVEL, "WARNING: NaN present. Integration halted at ''')
-            _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 356, col 79
-            if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 356, col 79.
+            _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 358, col 79
+            if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 358, col 79.
             write(u''' = %e.\\n"
                            "         Non-finite number in integration vector \\"''')
-            _v = VFFSL(SL,"vector.name",True) # u'${vector.name}' on line 357, col 80
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.name}')) # from line 357, col 80.
+            _v = VFFSL(SL,"vector.name",True) # u'${vector.name}' on line 359, col 80
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.name}')) # from line 359, col 80.
             write(u'''\\" in segment ''')
-            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 357, col 108
-            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 357, col 108.
+            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 359, col 108
+            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 359, col 108.
             write(u'''.\\n", ''')
-            _v = VFFSL(SL,"propagationDimension",True) # u'$propagationDimension' on line 357, col 130
-            if _v is not None: write(_filter(_v, rawExpr=u'$propagationDimension')) # from line 357, col 130.
+            _v = VFFSL(SL,"propagationDimension",True) # u'$propagationDimension' on line 359, col 130
+            if _v is not None: write(_filter(_v, rawExpr=u'$propagationDimension')) # from line 359, col 130.
             write(u''');
         ''')
-            _v = VFFSL(SL,"earlyTerminationCode",True) # u'${earlyTerminationCode, autoIndent=True}' on line 358, col 9
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${earlyTerminationCode, autoIndent=True}')) # from line 358, col 9.
+            _v = VFFSL(SL,"earlyTerminationCode",True) # u'${earlyTerminationCode, autoIndent=True}' on line 360, col 9
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${earlyTerminationCode, autoIndent=True}')) # from line 360, col 9.
             write(u'''      }
 ''')
         write(u'''
       ''')
-        _v = VFN(VFFSL(SL,"functions",True)['ipEvolve'],"call",False)(_exponent = -1, parentFunction=function) # u"${functions['ipEvolve'].call(_exponent = -1, parentFunction=function)}" on line 362, col 7
-        if _v is not None: write(_filter(_v, rawExpr=u"${functions['ipEvolve'].call(_exponent = -1, parentFunction=function)}")) # from line 362, col 7.
+        _v = VFN(VFFSL(SL,"functions",True)['ipEvolve'],"call",False)(_exponent = -1, parentFunction=function) # u"${functions['ipEvolve'].call(_exponent = -1, parentFunction=function)}" on line 364, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u"${functions['ipEvolve'].call(_exponent = -1, parentFunction=function)}")) # from line 364, col 7.
         write(u'''
       
       _discard = true;
@@ -1047,59 +1047,59 @@ do {
     if (_error < 0.5*_tolerance || _error > _tolerance) {
       const real _safetyFactor = 0.90;
       real _scalingFactor = _safetyFactor * pow(abs(_error/_tolerance), real(-0.7/''')
-        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 374, col 83
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 374, col 83.
+        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 376, col 83
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 376, col 83.
         write(u''')) * pow(_last_norm_error, real(0.4/''')
-        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 374, col 138
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 374, col 138.
+        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 376, col 138
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 376, col 138.
         write(u"""));
       _scalingFactor = MAX(_scalingFactor, 1.0/5.0);
       _scalingFactor = MIN(_scalingFactor, 7.0);
       if (_error > _tolerance && _scalingFactor > 1.0) {
         // If our step failed don't try and increase our step size. That would be silly.
         _scalingFactor = _safetyFactor * pow(abs(_error/_tolerance), real(-1.0/""")
-        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 379, col 80
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 379, col 80.
+        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 381, col 80
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 381, col 80.
         write(u'''));
       }
       _old_step = _step;
       _last_norm_error = pow(_safetyFactor/_scalingFactor*pow(_last_norm_error, real(0.4/''')
-        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 382, col 90
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 382, col 90.
+        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 384, col 90
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 384, col 90.
         write(u''')), real(''')
-        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 382, col 118
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 382, col 118.
+        _v = VFFSL(SL,"integrationOrder",True) # u'${integrationOrder}' on line 384, col 118
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrationOrder}')) # from line 384, col 118.
         write(u'''/0.7));
       _step *= _scalingFactor;
     }
     
   } while (_discard);
   ''')
-        _v = VFFSL(SL,"postSingleStep",True) # u'${postSingleStep, autoIndent=True}' on line 387, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${postSingleStep, autoIndent=True}')) # from line 387, col 3.
+        _v = VFFSL(SL,"postSingleStep",True) # u'${postSingleStep, autoIndent=True}' on line 389, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${postSingleStep, autoIndent=True}')) # from line 389, col 3.
         write(u'''  
   ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop), autoIndent=True}" on line 389, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop), autoIndent=True}")) # from line 389, col 3.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop), autoIndent=True}" on line 391, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepOuterLoopEnd', featureOrderingOuterLoop), autoIndent=True}")) # from line 391, col 3.
         write(u'''} while (!_next_sample_flag[''')
-        _v = VFFSL(SL,"momentGroupCount",True) + 1 # u'${momentGroupCount + 1}' on line 390, col 29
-        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 1}')) # from line 390, col 29.
+        _v = VFFSL(SL,"momentGroupCount",True) + 1 # u'${momentGroupCount + 1}' on line 392, col 29
+        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroupCount + 1}')) # from line 392, col 29.
         write(u''']);
 
 ''')
-        _v = VFFSL(SL,"localFinalise",True) # u'${localFinalise}' on line 392, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${localFinalise}')) # from line 392, col 1.
-        _v = VFFSL(SL,"finalise",True) # u'${finalise}' on line 393, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${finalise}')) # from line 393, col 1.
-        _v = VFFSL(SL,"free",True) # u'${free}' on line 394, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${free}')) # from line 394, col 1.
+        _v = VFFSL(SL,"localFinalise",True) # u'${localFinalise}' on line 394, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${localFinalise}')) # from line 394, col 1.
+        _v = VFFSL(SL,"finalise",True) # u'${finalise}' on line 395, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${finalise}')) # from line 395, col 1.
+        _v = VFFSL(SL,"free",True) # u'${free}' on line 396, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${free}')) # from line 396, col 1.
         # 
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepEnd', featureOrderingOuter) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepEnd', featureOrderingOuter)}" on line 396, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepEnd', featureOrderingOuter)}")) # from line 396, col 1.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateAdaptiveStepEnd', featureOrderingOuter) # u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepEnd', featureOrderingOuter)}" on line 398, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateAdaptiveStepEnd', featureOrderingOuter)}")) # from line 398, col 1.
         write(u'''
 _LOG(_SEGMENT_LOG_LEVEL, "Segment ''')
-        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 398, col 35
-        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 398, col 35.
+        _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 400, col 35
+        if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 400, col 35.
         write(u''': minimum timestep: %e maximum timestep: %e\\n", _min_step, _max_step);
 _LOG(_SEGMENT_LOG_LEVEL, "  Attempted %li steps, %.2f%% steps failed.\\n", _attempted_steps, (100.0*_unsuccessful_steps)/_attempted_steps);
 ''')
@@ -1154,6 +1154,7 @@ _LOG(_SEGMENT_LOG_LEVEL, "  Attempted %li steps, %.2f%% steps failed.\\n", _atte
         write(u'''
 
 
+
 ''')
         # 
         #   Function prototypes
@@ -1201,6 +1202,8 @@ _LOG(_SEGMENT_LOG_LEVEL, "  Attempted %li steps, %.2f%% steps failed.\\n", _atte
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
+    supportsConstantIPOperators = False
+
     _mainCheetahMethod_for_AdaptiveStep= 'writeBody'
 
 ## END CLASS DEFINITION
diff --git a/xpdeint/Segments/Integrators/AdaptiveStep.tmpl b/xpdeint/Segments/Integrators/AdaptiveStep.tmpl
index adf1153..89399d7 100644
--- a/xpdeint/Segments/Integrators/AdaptiveStep.tmpl
+++ b/xpdeint/Segments/Integrators/AdaptiveStep.tmpl
@@ -23,6 +23,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def description: segment $segmentNumber ($stepper.name adaptive-step integrator)
 
+ at attr $supportsConstantIPOperators = False
+
 @*
   Function prototypes
 *@
diff --git a/xpdeint/Segments/Integrators/FixedStep.py b/xpdeint/Segments/Integrators/FixedStep.py
index d73813f..6efa582 100644
--- a/xpdeint/Segments/Integrators/FixedStep.py
+++ b/xpdeint/Segments/Integrators/FixedStep.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.573614
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/FixedStep.tmpl'
+__CHEETAH_genTime__ = 1389652444.170843
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/FixedStep.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -409,12 +409,12 @@ for (long _istep = 0; _istep < ''')
         # 
         innerLoopTemplate = VFFSL(SL,"templateObjectFromStringWithTemplateVariables",False)(VFFSL(SL,"templateString",True), {'componentIndex': '_icomp'})
         # 
-        ## START CAPTURE REGION: _60672172 loopContents at line 157, col 3 in the source.
-        _orig_trans_60672172 = trans
-        _wasBuffering_60672172 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _99437940 loopContents at line 157, col 3 in the source.
+        _orig_trans_99437940 = trans
+        _wasBuffering_99437940 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_60672172 = DummyTransaction()
-        write = _captureCollector_60672172.response().write
+        trans = _captureCollector_99437940 = DummyTransaction()
+        write = _captureCollector_99437940.response().write
         for reducedVector, vector in VFN(VFFSL(SL,"vectorMap",True),"iteritems",False)(): # generated from line 158, col 5
             if vector.field.hasDimensionName(VFFSL(SL,"propagationDimension",True)): # generated from line 159, col 7
                 propagationDimensionObject = vector.field.dimensionWithName(VFFSL(SL,"propagationDimension",True))
@@ -431,13 +431,13 @@ for (long _istep = 0; _istep < ''')
             write(u'''}
 ''')
             del innerLoopTemplate.skipSize
-        trans = _orig_trans_60672172
+        trans = _orig_trans_99437940
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_60672172 
-        loopContents = _captureCollector_60672172.response().getvalue()
-        del _orig_trans_60672172
-        del _captureCollector_60672172
-        del _wasBuffering_60672172
+        self._CHEETAH__isBuffering = _wasBuffering_99437940 
+        loopContents = _captureCollector_99437940.response().getvalue()
+        del _orig_trans_99437940
+        del _captureCollector_99437940
+        del _wasBuffering_99437940
         # 
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(VFFSL(SL,"parent.reducedField",True), VFFSL(SL,"homeBasis",True), VFFSL(SL,"setOfVectorsToLoopOver",True),
                                                  VFFSL(SL,"loopContents",True), indexOverrides = VFFSL(SL,"indexOverrides",True),
diff --git a/xpdeint/Segments/Integrators/FixedStepWithCross.py b/xpdeint/Segments/Integrators/FixedStepWithCross.py
index f7def13..e5500e6 100644
--- a/xpdeint/Segments/Integrators/FixedStepWithCross.py
+++ b/xpdeint/Segments/Integrators/FixedStepWithCross.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.44179
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/FixedStepWithCross.tmpl'
+__CHEETAH_genTime__ = 1389652444.337731
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/FixedStepWithCross.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/Integrator.py b/xpdeint/Segments/Integrators/Integrator.py
index bb049e2..8f890ff 100644
--- a/xpdeint/Segments/Integrators/Integrator.py
+++ b/xpdeint/Segments/Integrators/Integrator.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.656601
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/Integrator.tmpl'
+__CHEETAH_genTime__ = 1389652444.29389
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/Integrator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/MMStepper.py b/xpdeint/Segments/Integrators/MMStepper.py
new file mode 100644
index 0000000..f00410e
--- /dev/null
+++ b/xpdeint/Segments/Integrators/MMStepper.py
@@ -0,0 +1,441 @@
+#!/usr/bin/env python
+
+
+
+
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from xpdeint.Segments.Integrators._Stepper import _Stepper
+
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
+__CHEETAH_genTime__ = 1389652444.272211
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/MMStepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
+
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
+
+##################################################
+## CLASSES
+
+class MMStepper(_Stepper):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(MMStepper, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def name(self, **KWS):
+
+
+
+        ## Generated from @def name: MM at line 24, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        write(u'''MM''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def singleIntegrationStep(self, function, **KWS):
+
+
+
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 35, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''// Start of single step
+''')
+        arguments = {'_step': '_step', VFFSL(SL,"propagationDimension",True): VFFSL(SL,"propagationDimension",True)}
+        write(u'''
+''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 40, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 40, col 1.
+        write(u'''
+if (_istep == 0) 
+{
+  // a_k = a
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${copyVectors($integrationVectors, '_akfield'), autoIndent=True}" on line 45, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_akfield'), autoIndent=True}")) # from line 45, col 3.
+        write(u'''  
+  // active vector = a_i
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_aifield') # u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}" on line 48, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}")) # from line 48, col 3.
+        write(u'''  
+  // a_i = a
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}" on line 51, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}")) # from line 51, col 3.
+        write(u'''  
+  // a_i = G[a_i, t]
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}" on line 54, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}")) # from line 54, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 57, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 57, col 3.
+        write(u'''  
+  // active vector = a
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active') # u"${assignVectorPointers($integrationVectors, '_active'), autoIndent=True}" on line 60, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active'), autoIndent=True}")) # from line 60, col 3.
+        write(u'''  
+  // a = a + G[a_i, t]
+  ''')
+        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True), 
+"""_${vector.id}[$index] += _aifield_${vector.id}[$index];
+""", basis = VFFSL(SL,"homeBasis",True))
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""_${vector.id}[$index] += _aifield_${vector.id}[$index];\n""", basis = $homeBasis), autoIndent=True}')) # from line 63, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}" on line 67, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}")) # from line 67, col 3.
+        write(u'''
+  
+  // ipEvolve a +1
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIdent=True}" on line 70, col 3
+        if _v is not None: write(_filter(_v, autoIdent=True, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIdent=True}")) # from line 70, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 73, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 73, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 75, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 75, col 3.
+        write(u''' += _step;
+  
+} // For all steps past the first:
+else 
+{
+  // active vector = a_k
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_akfield') # u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}" on line 81, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}")) # from line 81, col 3.
+        write(u'''  
+  // ipEvolve a_k +1
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}" on line 84, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}")) # from line 84, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 87, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 87, col 3.
+        write(u'''  
+  // active vector = a_i
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_aifield') # u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}" on line 90, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}")) # from line 90, col 3.
+        write(u'''  
+  // a_i = a
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}" on line 93, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}")) # from line 93, col 3.
+        write(u'''  
+  // a_i = G[a_i, t]
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}" on line 96, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}")) # from line 96, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 99, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 99, col 3.
+        write(u'''  
+  // active vector = a_k
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_akfield') # u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}" on line 102, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}")) # from line 102, col 3.
+        write(u'''  
+  // a_k = a_k + 2*a_i
+  ''')
+        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True), 
+"""_akfield_${vector.id}[$index] = _akfield_${vector.id}[$index] + 2*_aifield_${vector.id}[$index];
+""", basis = VFFSL(SL,"homeBasis",True))
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""_akfield_${vector.id}[$index] = _akfield_${vector.id}[$index] + 2*_aifield_${vector.id}[$index];\n""", basis = $homeBasis), autoIndent=True}')) # from line 105, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}" on line 109, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}")) # from line 109, col 3.
+        write(u'''
+  
+  // ipEvolve a_k +1
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}" on line 112, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}")) # from line 112, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 115, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 115, col 3.
+        write(u'''  
+  // a = a_k, a_k = a
+  ''')
+        _v = VFFSL(SL,"swapVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}" on line 118, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}")) # from line 118, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 120, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 120, col 3.
+        write(u''' += _step;
+  
+}
+
+if (_istep == (''')
+        _v = VFFSL(SL,"getVar",False)('integrator.maxIntegrationStepsVar', VFFSL(SL,"integrator.stepCount",True)) # u"$getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount)" on line 124, col 16
+        if _v is not None: write(_filter(_v, rawExpr=u"$getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount)")) # from line 124, col 16.
+        write(u''' - 1)) {
+  // active vector = a_k
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_akfield') # u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}" on line 126, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}")) # from line 126, col 3.
+        write(u'''  
+  // ipEvolve a_k +1
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}" on line 129, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}")) # from line 129, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 132, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 132, col 3.
+        write(u'''  
+  // active vector = a_i
+  ''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active', '_aifield') # u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}" on line 135, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}")) # from line 135, col 3.
+        write(u'''  
+  // a_i = a
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}" on line 138, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_aifield'), autoIndent=True}")) # from line 138, col 3.
+        write(u'''  
+  // a_i = G[a_i, t]
+  ''')
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}" on line 141, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}")) # from line 141, col 3.
+        write(u'''
+  
+  // transformToHomeSpace()
+  ''')
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 144, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 144, col 3.
+        write(u'''  
+  // a = 0.5*(a + a_k + G[a_i, t])
+  ''')
+        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True), 
+"""_${vector.id}[$index] = 0.5*(_${vector.id}[$index] + _akfield_${vector.id}[$index] + _aifield_${vector.id}[$index]);
+""", basis = VFFSL(SL,"homeBasis",True))
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""_${vector.id}[$index] = 0.5*(_${vector.id}[$index] + _akfield_${vector.id}[$index] + _aifield_${vector.id}[$index]);\n""", basis = $homeBasis), autoIndent=True}')) # from line 147, col 3.
+        write(u'''  
+  if ((''')
+        _v = VFFSL(SL,"getVar",False)('integrator.maxIntegrationStepsVar', VFFSL(SL,"integrator.stepCount",True)) # u"$getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount)" on line 151, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u"$getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount)")) # from line 151, col 8.
+        write(u''' % 2) == 0) {
+    // Odd number of vector swaps, need to swap back and memcpy
+    // so that the original vectors are deallocated correctly
+    ''')
+        _v = VFFSL(SL,"swapVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}" on line 154, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}")) # from line 154, col 5.
+        write(u'''    ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), None, '_akfield') # u"${copyVectors($integrationVectors, None, '_akfield'), autoIndent=True}" on line 155, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, None, '_akfield'), autoIndent=True}")) # from line 155, col 5.
+        write(u'''  }
+  
+}
+
+// To ensure correct sampling, set active dimension to vector
+''')
+        _v = VFFSL(SL,"assignVectorPointers",False)(VFFSL(SL,"integrationVectors",True), '_active') # u"${assignVectorPointers($integrationVectors, '_active')}" on line 161, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${assignVectorPointers($integrationVectors, '_active')}")) # from line 161, col 1.
+        write(u'''
+// End of single step
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def writeBody(self, **KWS):
+
+
+
+        ## CHEETAH: main method generated for this template
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        # MMStepper.tmpl
+        # 
+        # Created by Damien Beard on 2013-08-07, with code adapted from Graham Dennis.
+        # Last modified by Sean Wild on 2013-08-02.
+        # 
+        # This program is free software: you can redistribute it and/or modify
+        # it under the terms of the GNU General Public License as published by
+        # the Free Software Foundation, either version 2 of the License, or
+        # (at your option) any later version.
+        # 
+        # This program is distributed in the hope that it will be useful,
+        # but WITHOUT ANY WARRANTY; without even the implied warranty of
+        # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        # GNU General Public License for more details.
+        # 
+        # You should have received a copy of the GNU General Public License
+        # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+        # 
+        write(u'''// Start of stepper
+
+
+
+''')
+        # 
+        #   Single integration step (MM)
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    ipPropagationStepFractions = ['1']
+
+    nonconstantIPFields = 1
+
+    extraIntegrationArrayNames = ['akfield', 'aifield']
+
+    isCrossCapable = False
+
+    integrationOrder = 2.0
+
+    _mainCheetahMethod_for_MMStepper= 'writeBody'
+
+## END CLASS DEFINITION
+
+if not hasattr(MMStepper, '_initCheetahAttributes'):
+    templateAPIClass = getattr(MMStepper, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(MMStepper)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=MMStepper()).run()
+
+
diff --git a/xpdeint/Segments/Integrators/MMStepper.tmpl b/xpdeint/Segments/Integrators/MMStepper.tmpl
new file mode 100644
index 0000000..3ac2750
--- /dev/null
+++ b/xpdeint/Segments/Integrators/MMStepper.tmpl
@@ -0,0 +1,165 @@
+@*
+MMStepper.tmpl
+
+Created by Damien Beard on 2013-08-07, with code adapted from Graham Dennis.
+Last modified by Sean Wild on 2013-08-02.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+// Start of stepper
+ at extends xpdeint.Segments.Integrators._Stepper
+
+ at def name: MM
+ at attr $ipPropagationStepFractions = ['1']
+ at attr $nonconstantIPFields = 1
+ at attr $extraIntegrationArrayNames = ['akfield', 'aifield']
+ at attr $isCrossCapable = False
+
+ at attr $integrationOrder = 2.0
+
+@*
+  Single integration step (MM)
+*@
+ at def singleIntegrationStep($function)
+  @#
+// Start of single step
+  @set $arguments = {'_step': '_step', $propagationDimension: $propagationDimension}
+
+${transformVectorsToBasis($integrationVectors, $homeBasis)}@slurp
+
+if (_istep == 0) 
+{
+  // a_k = a
+  ${copyVectors($integrationVectors, '_akfield'), autoIndent=True}@slurp
+  
+  // active vector = a_i
+  ${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = a
+  ${copyVectors($integrationVectors, '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = G[a_i, t]
+  ${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // active vector = a
+  ${assignVectorPointers($integrationVectors, '_active'), autoIndent=True}@slurp
+  
+  // a = a + G[a_i, t]
+  ${loopOverVectorsWithInnerContentTemplate($integrationVectors, 
+"""_${vector.id}[$index] += _aifield_${vector.id}[$index];
+""", basis = $homeBasis), autoIndent=True}@slurp
+  
+  ${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}
+  
+  // ipEvolve a +1
+  ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIdent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  ${propagationDimension} += _step;
+  
+} // For all steps past the first:
+else 
+{
+  // active vector = a_k
+  ${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}@slurp
+  
+  // ipEvolve a_k +1
+  ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // active vector = a_i
+  ${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = a
+  ${copyVectors($integrationVectors, '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = G[a_i, t]
+  ${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // active vector = a_k
+  ${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}@slurp
+  
+  // a_k = a_k + 2*a_i
+  ${loopOverVectorsWithInnerContentTemplate($integrationVectors, 
+"""_akfield_${vector.id}[$index] = _akfield_${vector.id}[$index] + 2*_aifield_${vector.id}[$index];
+""", basis = $homeBasis), autoIndent=True}@slurp
+  
+  ${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function), autoIndent=True}
+  
+  // ipEvolve a_k +1
+  ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // a = a_k, a_k = a
+  ${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}@slurp
+  
+  ${propagationDimension} += _step;
+  
+}
+
+if (_istep == ($getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount) - 1)) {
+  // active vector = a_k
+  ${assignVectorPointers($integrationVectors, '_active', '_akfield'), autoIndent=True}@slurp
+  
+  // ipEvolve a_k +1
+  ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // active vector = a_i
+  ${assignVectorPointers($integrationVectors, '_active', '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = a
+  ${copyVectors($integrationVectors, '_aifield'), autoIndent=True}@slurp
+  
+  // a_i = G[a_i, t]
+  ${callFunction('deltaA', arguments, parentFunction = function), autoIndent=True}
+  
+  // transformToHomeSpace()
+  ${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}@slurp
+  
+  // a = 0.5*(a + a_k + G[a_i, t])
+  ${loopOverVectorsWithInnerContentTemplate($integrationVectors, 
+"""_${vector.id}[$index] = 0.5*(_${vector.id}[$index] + _akfield_${vector.id}[$index] + _aifield_${vector.id}[$index]);
+""", basis = $homeBasis), autoIndent=True}@slurp
+  
+  if (($getVar('integrator.maxIntegrationStepsVar', $integrator.stepCount) % 2) == 0) {
+    // Odd number of vector swaps, need to swap back and memcpy
+    // so that the original vectors are deallocated correctly
+    ${swapVectorPointers($integrationVectors, '_akfield'), autoIndent=True}@slurp
+    ${copyVectors($integrationVectors, None, '_akfield'), autoIndent=True}@slurp
+  }
+  
+}
+
+// To ensure correct sampling, set active dimension to vector
+${assignVectorPointers($integrationVectors, '_active')}@slurp
+
+// End of single step
+  @#
+ at end def
diff --git a/xpdeint/Segments/Integrators/RK45Stepper.py b/xpdeint/Segments/Integrators/RK45Stepper.py
index 1948154..7ae0de5 100644
--- a/xpdeint/Segments/Integrators/RK45Stepper.py
+++ b/xpdeint/Segments/Integrators/RK45Stepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.711689
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/RK45Stepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652444.542684
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK45Stepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Oct 21 12:39:43 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -99,7 +99,7 @@ class RK45Stepper(_Stepper):
         Initialise all of the Cash-Karp coefficients, etc.
         """
 
-        ## CHEETAH: generated from @def localInitialise at line 34, col 1.
+        ## CHEETAH: generated from @def localInitialise at line 33, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -215,7 +215,7 @@ _g[6]=( -_b[6][1]*_c[4]+_b[6][4]*_c[1] )/_den;
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 131, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 130, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -232,63 +232,63 @@ _g[6]=( -_b[6][1]*_c[4]+_b[6][4]*_c[1] )/_den;
         
         # 
         arguments = {'_step': '_step'}
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 134, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 134, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 133, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 133, col 1.
         write(u'''
 // a_k = y1
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${copyVectors($integrationVectors, '_akfield')}" on line 137, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akfield')}")) # from line 137, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${copyVectors($integrationVectors, '_akfield')}" on line 136, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akfield')}")) # from line 136, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}" on line 139, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}")) # from line 139, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 138, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 138, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 142, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 142, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 141, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 141, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 143, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 143, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 142, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 142, col 1.
         write(u'''
 // y2 = y1
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_checkfield') # u"${copyVectors($integrationVectors, '_checkfield')}" on line 146, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_checkfield')}")) # from line 146, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_checkfield') # u"${copyVectors($integrationVectors, '_checkfield')}" on line 145, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_checkfield')}")) # from line 145, col 1.
         write(u'''
 // a_i = y1
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield')}" on line 149, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_aifield')}")) # from line 149, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield')}" on line 148, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_aifield')}")) # from line 148, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 151, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 150, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 152, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 152, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 151, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 151, col 9.
             write(u''' = _akfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 152, col 33
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 152, col 33.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 151, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 151, col 33.
             write(u''';
 ''')
         write(u'''
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 156, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 156, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 155, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 155, col 1.
         write(u'''
 
-// a_i = D(a_2*dt)[a_k]
+// a_k = D(a_2*dt)[a_k]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 159, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 159, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 158, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 158, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 160, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 160, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 159, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 159, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -299,36 +299,36 @@ _checkfield_${vector.id}[$index] += _cs[1]*_akfield_${vector.id}[$index];
 // a_k = a_i + b_21*a_k
 _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _b[2][1]*_akfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_1*a_k\n_${vector.id}[$index] += _c[1]*_akfield_${vector.id}[$index];\n// y2 = y2 + cs_1*a_k\n_checkfield_${vector.id}[$index] += _cs[1]*_akfield_${vector.id}[$index];\n// a_k = a_i + b_21*a_k\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _b[2][1]*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 162, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_1*a_k\n_${vector.id}[$index] += _c[1]*_akfield_${vector.id}[$index];\n// y2 = y2 + cs_1*a_k\n_checkfield_${vector.id}[$index] += _cs[1]*_akfield_${vector.id}[$index];\n// a_k = a_i + b_21*a_k\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _b[2][1]*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 161, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 171, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 171, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 170, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 170, col 1.
         write(u''' += _a[2] * _step;
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}" on line 173, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}")) # from line 173, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}" on line 172, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}")) # from line 172, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 175, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 175, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 174, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 174, col 1.
         write(u'''
 
 // a_k = G[a_k, t + aa_2*dt]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 178, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 178, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 177, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 177, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 180, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 180, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 179, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 179, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 181, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 181, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 180, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 180, col 1.
         write(u'''
 // c_2 == cs_2 == 0
 ''')
@@ -336,49 +336,49 @@ _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _b[2][1]*_akfiel
 """// a_j = d_1*a_i + d_2*y1 + d_3*a_k
 _ajfield_${vector.id}[$index] = _d[1]*_aifield_${vector.id}[$index] + _d[2]*_${vector.id}[$index] + _d[3]*_akfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a_j = d_1*a_i + d_2*y1 + d_3*a_k\n_ajfield_${vector.id}[$index] = _d[1]*_aifield_${vector.id}[$index] + _d[2]*_${vector.id}[$index] + _d[3]*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 184, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a_j = d_1*a_i + d_2*y1 + d_3*a_k\n_ajfield_${vector.id}[$index] = _d[1]*_aifield_${vector.id}[$index] + _d[2]*_${vector.id}[$index] + _d[3]*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 183, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 189, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 189, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 188, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 188, col 1.
         write(u''' += _a[3] * _step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 191, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 190, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 191, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 191, col 9.
             write(u''' = _ajfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 33
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 33.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 191, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 191, col 33.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}" on line 195, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}")) # from line 195, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}" on line 194, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}")) # from line 194, col 1.
         write(u'''
 
 // a_j = D((a_3 - a_2)*dt)[a_j]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 198, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 198, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 197, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 197, col 1.
         write(u'''
 
 // a_j = G[a_j, t + aa_3*dt]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 201, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 201, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 200, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 200, col 1.
         write(u'''
 
 // a_j = D(-(a_3 - a_2)*dt)[a_j]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 204, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 204, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 203, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 203, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 205, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 205, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 204, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 204, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -389,49 +389,49 @@ _${vector.id}[$index] += _c[3]*_ajfield_${vector.id}[$index];
 // y2 = y2 + cs_3*a_j
 _checkfield_${vector.id}[$index] += _cs[3]*_ajfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a_l = e_1*a_i + e_2*y1 + e_3*a_k + e_4*a_j\n_alfield_${vector.id}[$index] = _e[1]*_aifield_${vector.id}[$index] + _e[2]*_${vector.id}[$index] + _e[3]*_akfield_${vector.id}[$index] + _e[4]*_ajfield_${vector.id}[$index];\n// y1 = y1 + c_3*a_j\n_${vector.id}[$index] += _c[3]*_ajfield_${vector.id}[$index];\n// y2 = y2 + cs_3*a_j\n_checkfield_${vector.id}[$index] += _cs [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a_l = e_1*a_i + e_2*y1 + e_3*a_k + e_4*a_j\n_alfield_${vector.id}[$index] = _e[1]*_aifield_${vector.id}[$index] + _e[2]*_${vector.id}[$index] + _e[3]*_akfield_${vector.id}[$index] + _e[4]*_ajfield_${vector.id}[$index];\n// y1 = y1 + c_3*a_j\n_${vector.id}[$index] += _c[3]*_ajfield_${vector.id}[$index];\n// y2 = y2 + cs_3*a_j\n_checkfield_${vector.id}[$index] += _cs [...]
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 216, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 216, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 215, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 215, col 1.
         write(u''' += _a[4] * _step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 218, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 217, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 218, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 218, col 9.
             write(u''' = _alfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 219, col 33
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 219, col 33.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 218, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 218, col 33.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}" on line 222, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}")) # from line 222, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}" on line 221, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}")) # from line 221, col 1.
         write(u'''
 
 // a_l = D((a_4 - a_2)*dt)[a_l]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 225, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 225, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 224, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 224, col 1.
         write(u'''
 
 // a_l = G[a_l, t + aa_4*dt]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 228, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 228, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 227, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 227, col 1.
         write(u'''
 
 // a_l = D(-(a_4 - a_2)*dt)[a_l]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 231, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 231, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 230, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 230, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 232, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 232, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 231, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 231, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -442,21 +442,21 @@ _checkfield_${vector.id}[$index] += _cs[4]*_alfield_${vector.id}[$index];
 // a_l = f_1*a_i + f_2*y1 + f_3*a_k + f_4*a_j + f_5*a_l
 _alfield_${vector.id}[$index] = _f[1]*_aifield_${vector.id}[$index] + _f[2]*_${vector.id}[$index] + _f[3]*_akfield_${vector.id}[$index] + _f[4]*_ajfield_${vector.id}[$index] + _f[5]*_alfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_4*a_l\n_${vector.id}[$index] += _c[4]*_alfield_${vector.id}[$index];\n// y2 = y2 + cs_4*a_l\n_checkfield_${vector.id}[$index] += _cs[4]*_alfield_${vector.id}[$index];\n// a_l = f_1*a_i + f_2*y1 + f_3*a_k + f_4*a_j + f_5*a_l\n_alfield_${vector.id}[$index] = _f[1]*_aifield_${vector.id}[$index] + _f[2]*_${vector.id}[$index] + _f[3]*_akfield_${vector.id}[$i [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_4*a_l\n_${vector.id}[$index] += _c[4]*_alfield_${vector.id}[$index];\n// y2 = y2 + cs_4*a_l\n_checkfield_${vector.id}[$index] += _cs[4]*_alfield_${vector.id}[$index];\n// a_l = f_1*a_i + f_2*y1 + f_3*a_k + f_4*a_j + f_5*a_l\n_alfield_${vector.id}[$index] = _f[1]*_aifield_${vector.id}[$index] + _f[2]*_${vector.id}[$index] + _f[3]*_akfield_${vector.id}[$i [...]
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 243, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 243, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 242, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 242, col 1.
         write(u''' += _a[5] * _step;
 
 // a_l = G[a_l, t + aa_5*dt]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 246, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 246, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 245, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 245, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 247, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 247, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 246, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 246, col 1.
         write(u'''
 // c_5 == 0
 ''')
@@ -466,38 +466,38 @@ _checkfield_${vector.id}[$index] += _cs[5]*_alfield_${vector.id}[$index];
 // a_l = g_1*a_i + g_2*a_k + g_3*a_j + g_4*y_1 + g_5*a_l + g_6*y2
 _alfield_${vector.id}[$index] = _g[1]*_aifield_${vector.id}[$index] + _g[2]*_akfield_${vector.id}[$index] + _g[3]*_ajfield_${vector.id}[$index] + _g[4]*_${vector.id}[$index] + _g[5]*_alfield_${vector.id}[$index] + _g[6]*_checkfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y2 = y2 + cs_5*a_l\n_checkfield_${vector.id}[$index] += _cs[5]*_alfield_${vector.id}[$index];\n// a_l = g_1*a_i + g_2*a_k + g_3*a_j + g_4*y_1 + g_5*a_l + g_6*y2\n_alfield_${vector.id}[$index] = _g[1]*_aifield_${vector.id}[$index] + _g[2]*_akfield_${vector.id}[$index] + _g[3]*_ajfield_${vector.id}[$index] + _g[4]*_${vector.id}[$index] + _g[5]*_alfield_${vector.id}[$ [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y2 = y2 + cs_5*a_l\n_checkfield_${vector.id}[$index] += _cs[5]*_alfield_${vector.id}[$index];\n// a_l = g_1*a_i + g_2*a_k + g_3*a_j + g_4*y_1 + g_5*a_l + g_6*y2\n_alfield_${vector.id}[$index] = _g[1]*_aifield_${vector.id}[$index] + _g[2]*_akfield_${vector.id}[$index] + _g[3]*_ajfield_${vector.id}[$index] + _g[4]*_${vector.id}[$index] + _g[5]*_alfield_${vector.id}[$ [...]
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 257, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 257, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 256, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 256, col 1.
         write(u''' += _a[6] * _step;
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}" on line 259, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}")) # from line 259, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}" on line 258, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}")) # from line 258, col 1.
         write(u'''
 
 // a_l = D((a_6 - a_2)*dt)[a_l]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 262, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 262, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 261, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 261, col 1.
         write(u'''
 
 // a_l = G[a_l, t + aa_6*dt]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 265, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 265, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 264, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 264, col 1.
         write(u'''
 
 // a_l = D(-(a_6 - a_2)*dt)[a_l]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 268, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 268, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 267, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 267, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 269, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 269, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 268, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 268, col 1.
         write(u'''
 // c_5 == 0
 ''')
@@ -507,33 +507,33 @@ _${vector.id}[$index] += _c[6]*_alfield_${vector.id}[$index];
 // y2 = y2 + cs_6*a_l
 _checkfield_${vector.id}[$index] += _cs[6]*_alfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_6*a_l\n_${vector.id}[$index] += _c[6]*_alfield_${vector.id}[$index];\n// y2 = y2 + cs_6*a_l\n_checkfield_${vector.id}[$index] += _cs[6]*_alfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 272, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// y1 = y1 + c_6*a_l\n_${vector.id}[$index] += _c[6]*_alfield_${vector.id}[$index];\n// y2 = y2 + cs_6*a_l\n_checkfield_${vector.id}[$index] += _cs[6]*_alfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 271, col 1.
         write(u'''
 // t -> t + dt
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 280, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 280, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 279, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 279, col 1.
         write(u''' -= _a[6]*_step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 282, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 281, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 283, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 283, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 282, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 282, col 9.
             write(u''' = _checkfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 283, col 36
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 283, col 36.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 282, col 36
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 282, col 36.
             write(u''';
 ''')
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 286, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 285, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 287, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 287, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 286, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 286, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 287, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 287, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 286, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 286, col 25.
             write(u''';
 ''')
         write(u'''
@@ -619,8 +619,6 @@ _checkfield_${vector.id}[$index] += _cs[6]*_alfield_${vector.id}[$index];
 
     ipPropagationStepFractions = ['1.0', '4.0/5.0', '7.0/10.0', '2.0/5.0', '1.0/8.0']
 
-    nonconstantIPFields = 2
-
     extraIntegrationArrayNames = ['akfield', 'aifield', 'ajfield', 'alfield', 'checkfield']
 
     errorFieldName = 'checkfield'
diff --git a/xpdeint/Segments/Integrators/RK45Stepper.tmpl b/xpdeint/Segments/Integrators/RK45Stepper.tmpl
index 0da8802..299b961 100644
--- a/xpdeint/Segments/Integrators/RK45Stepper.tmpl
+++ b/xpdeint/Segments/Integrators/RK45Stepper.tmpl
@@ -23,7 +23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def name: RK45
 @attr $ipPropagationStepFractions = ['1.0', '4.0/5.0', '7.0/10.0', '2.0/5.0', '1.0/8.0']
- at attr $nonconstantIPFields = 2
 @attr $extraIntegrationArrayNames = ['akfield', 'aifield', 'ajfield', 'alfield', 'checkfield']
 
 @attr $errorFieldName = 'checkfield'
@@ -136,7 +135,7 @@ ${transformVectorsToBasis($integrationVectors, $homeBasis)}@slurp
 // a_k = y1
 ${copyVectors($integrationVectors, '_akfield')}@slurp
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
@@ -155,7 +154,7 @@ _active_${vector.id} = _akfield_${vector.id};
 // a_k = G[a_k, t]
 ${callFunction('deltaA', arguments, parentFunction=function)}
 
-// a_i = D(a_2*dt)[a_k]
+// a_k = D(a_2*dt)[a_k]
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
 ${transformVectorsToBasis($integrationVectors, $homeBasis)}@slurp
 
@@ -170,7 +169,7 @@ _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _b[2][1]*_akfiel
 
 ${propagationDimension} += _a[2] * _step;
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}
 
 ${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}
 
@@ -192,7 +191,7 @@ ${propagationDimension} += _a[3] * _step;
 _active_${vector.id} = _ajfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}
 
 // a_j = D((a_3 - a_2)*dt)[a_j]
 ${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}
@@ -219,7 +218,7 @@ ${propagationDimension} += _a[4] * _step;
 _active_${vector.id} = _alfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}
 
 // a_l = D((a_4 - a_2)*dt)[a_l]
 ${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}
@@ -256,7 +255,7 @@ _alfield_${vector.id}[$index] = _g[1]*_aifield_${vector.id}[$index] + _g[2]*_akf
 
 ${propagationDimension} += _a[6] * _step;
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}
 
 // a_l = D((a_6 - a_2)*dt)[a_l]
 ${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}
diff --git a/xpdeint/Segments/Integrators/RK4Stepper.py b/xpdeint/Segments/Integrators/RK4Stepper.py
index 7d80b3c..7c9308a 100644
--- a/xpdeint/Segments/Integrators/RK4Stepper.py
+++ b/xpdeint/Segments/Integrators/RK4Stepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.730721
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/RK4Stepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652444.742042
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK4Stepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -96,7 +96,7 @@ class RK4Stepper(_Stepper):
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 37, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 36, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -113,58 +113,58 @@ class RK4Stepper(_Stepper):
         
         # 
         arguments = {'_step': '_step', VFFSL(SL,"propagationDimension",True): VFFSL(SL,"propagationDimension",True)}
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 40, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 40, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 39, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 39, col 1.
         write(u'''
 // a_k = a
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${copyVectors($integrationVectors, '_akfield')}" on line 43, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akfield')}")) # from line 43, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akfield') # u"${copyVectors($integrationVectors, '_akfield')}" on line 42, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akfield')}")) # from line 42, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function)}" on line 45, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function)}")) # from line 45, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction = function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction = function)}" on line 44, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction = function)}")) # from line 44, col 1.
         write(u'''
 
 // a = D[a]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 48, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 48, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 47, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 47, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 49, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 49, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 48, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 48, col 1.
         write(u'''
 // a_i = a
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield')}" on line 52, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_aifield')}")) # from line 52, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_aifield') # u"${copyVectors($integrationVectors, '_aifield')}" on line 51, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_aifield')}")) # from line 51, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 54, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 53, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 55, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 55, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 54, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 54, col 9.
             write(u''' = _akfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 55, col 33
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 55, col 33.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 54, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 54, col 33.
             write(u''';
 ''')
         write(u'''  
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 59, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 59, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 58, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 58, col 1.
         write(u'''
 
 // a_k = D[a_k]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 62, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 62, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 61, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 61, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 63, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 63, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 62, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 62, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True), 
@@ -173,27 +173,27 @@ _${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;
 // a_k = a_i + a_k/2
 _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""// a = a + a_k/6\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;\n// a_k = a_i + a_k/2\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 65, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""// a = a + a_k/6\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;\n// a_k = a_i + a_k/2\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 64, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 72, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 72, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 71, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 71, col 1.
         write(u''' += 0.5*_step;
 ''')
-        if VFFSL(SL,"cross",True): # generated from line 73, col 3
+        if VFFSL(SL,"cross",True): # generated from line 72, col 3
             write(u'''
 ''')
-            _v = VFFSL(SL,"interpolateDependencies",True) # u'${interpolateDependencies}' on line 75, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${interpolateDependencies}')) # from line 75, col 1.
+            _v = VFFSL(SL,"interpolateDependencies",True) # u'${interpolateDependencies}' on line 74, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${interpolateDependencies}')) # from line 74, col 1.
         write(u'''
 // a_k = G[a_k, t + h/2]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 79, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 79, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 78, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 78, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 80, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 80, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 79, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 79, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -202,16 +202,16 @@ _${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;
 // a_k = a_i + a_k/2
 _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = a + a_k/3\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;\n// a_k = a_i + a_k/2\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 82, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = a + a_k/3\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;\n// a_k = a_i + a_k/2\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + 0.5*_akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 81, col 1.
         write(u'''
 // a_k = G[a_k, t + h/2]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 90, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 90, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 89, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 89, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 91, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 91, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 90, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 90, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -220,60 +220,60 @@ _${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;
 // a_k = a_i + a_k
 _akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _akfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = a + a_k/3\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;\n// a_k = a_i + a_k\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 93, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = a + a_k/3\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/3.0;\n// a_k = a_i + a_k\n_akfield_${vector.id}[$index] = _aifield_${vector.id}[$index] + _akfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 92, col 1.
         write(u'''
 // a_k = D[a_k]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 101, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 101, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 100, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 100, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 103, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 103, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 102, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 102, col 1.
         write(u''' += 0.5*_step;
 ''')
-        if VFFSL(SL,"cross",True): # generated from line 104, col 3
+        if VFFSL(SL,"cross",True): # generated from line 103, col 3
             write(u'''
 ''')
-            _v = VFFSL(SL,"updateDependenciesForNextStep",True) # u'${updateDependenciesForNextStep}' on line 106, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${updateDependenciesForNextStep}')) # from line 106, col 1.
+            _v = VFFSL(SL,"updateDependenciesForNextStep",True) # u'${updateDependenciesForNextStep}' on line 105, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${updateDependenciesForNextStep}')) # from line 105, col 1.
         write(u'''
 // a_k = G[a_k, t + h]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 110, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 110, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction = function) # u"${callFunction('deltaA', arguments, parentFunction = function)}" on line 109, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction = function)}")) # from line 109, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 111, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 111, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 110, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 110, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 113, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 112, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 114, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 114, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 113, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 113, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 114, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 114, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 113, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 113, col 25.
             write(u''';
 ''')
         write(u'''
 // a = D[a]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 118, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 118, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction = function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}" on line 117, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}")) # from line 117, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 119, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 119, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 118, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 118, col 1.
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True), 
 """// a = a + a_k/6
 _${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""// a = a + a_k/6\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;\n""", basis = $homeBasis)}')) # from line 121, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors, \n"""// a = a + a_k/6\n_${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;\n""", basis = $homeBasis)}')) # from line 120, col 1.
         # 
         
         ########################################
@@ -286,7 +286,7 @@ _${vector.id}[$index] += _akfield_${vector.id}[$index]/6.0;
 
 
 
-        ## CHEETAH: generated from @def interpolateDependencies at line 129, col 1.
+        ## CHEETAH: generated from @def interpolateDependencies at line 128, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -316,10 +316,10 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
             -  5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + 2 * ${skipSize} * _${vector.id}_ncomponents]
             +      _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + 3 * ${skipSize} * _${vector.id}_ncomponents]);
 """)
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    1.0/16.0*( 5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            + 15.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]\n            -  5.0*_active_${vector.id}[_${vector.id} [...]
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    1.0/16.0*( 5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            + 15.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]\n            -  5.0*_active_${vector.id}[_${vector.id} [...]
         write(u'''} else if (_istep == (''')
-        _v = VFFSL(SL,"integrator.stepCount",True) # u'${integrator.stepCount}' on line 144, col 23
-        if _v is not None: write(_filter(_v, rawExpr=u'${integrator.stepCount}')) # from line 144, col 23.
+        _v = VFFSL(SL,"integrator.stepCount",True) # u'${integrator.stepCount}' on line 143, col 23
+        if _v is not None: write(_filter(_v, rawExpr=u'${integrator.stepCount}')) # from line 143, col 23.
         write(u''' - 1)) {
   // We are at the last point
   ''')
@@ -331,7 +331,7 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
             -  5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} - ${skipSize} * _${vector.id}_ncomponents]
             +      _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} - 2 * ${skipSize} * _${vector.id}_ncomponents]);
 """)
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    1.0/16.0*(15.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            +  5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]\n            -  5.0*_active_${vector.id}[_${vector.id} [...]
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    1.0/16.0*(15.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            +  5.0*_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]\n            -  5.0*_active_${vector.id}[_${vector.id} [...]
         write(u'''} else {
   // We are somewhere in the middle
   ''')
@@ -343,7 +343,7 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
   - 1.0/16.0*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} - ${skipSize} * _${vector.id}_ncomponents]
             + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + 2 * ${skipSize} * _${vector.id}_ncomponents]);
 """)
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    9.0/16.0*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents])\n  - 1.0/16.0*(_active_${vector.id}[_${vector.id}_index_pointer [...]
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    9.0/16.0*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n            + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents])\n  - 1.0/16.0*(_active_${vector.id}[_${vector.id}_index_pointer [...]
         write(u'''}
 ''')
         # 
@@ -429,8 +429,6 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
 
     ipPropagationStepFractions = ['0.5']
 
-    nonconstantIPFields = 1
-
     extraIntegrationArrayNames = ['akfield', 'aifield']
 
     isCrossCapable = True
diff --git a/xpdeint/Segments/Integrators/RK4Stepper.tmpl b/xpdeint/Segments/Integrators/RK4Stepper.tmpl
index db282fd..265adbb 100644
--- a/xpdeint/Segments/Integrators/RK4Stepper.tmpl
+++ b/xpdeint/Segments/Integrators/RK4Stepper.tmpl
@@ -23,7 +23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def name: RK4
 @attr $ipPropagationStepFractions = ['0.5']
- at attr $nonconstantIPFields = 1
 @attr $extraIntegrationArrayNames = ['akfield', 'aifield']
 @attr $isCrossCapable = True
 
@@ -42,7 +41,7 @@ ${transformVectorsToBasis($integrationVectors, $homeBasis)}@slurp
 // a_k = a
 ${copyVectors($integrationVectors, '_akfield')}@slurp
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction = function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction = function)}
 
 // a = D[a]
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction = function)}
diff --git a/xpdeint/Segments/Integrators/RK89Stepper.py b/xpdeint/Segments/Integrators/RK89Stepper.py
index 3f54e56..6320e4f 100644
--- a/xpdeint/Segments/Integrators/RK89Stepper.py
+++ b/xpdeint/Segments/Integrators/RK89Stepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.941313
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/RK89Stepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652446.73471
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK89Stepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -99,7 +99,7 @@ class RK89Stepper(_Stepper):
         Initialise all of the Cash-Karp coefficients, etc.
         """
 
-        ## CHEETAH: generated from @def localInitialise at line 40, col 1.
+        ## CHEETAH: generated from @def localInitialise at line 39, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -277,7 +277,7 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 199, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 198, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -294,160 +294,160 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
         
         # 
         arguments = {'_step': '_step'}
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 202, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 202, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 201, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 201, col 1.
         write(u'''
 // Step 1
 
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akafield') # u"${copyVectors($integrationVectors, '_akafield')}" on line 206, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akafield')}")) # from line 206, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akafield') # u"${copyVectors($integrationVectors, '_akafield')}" on line 205, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akafield')}")) # from line 205, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}" on line 208, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}")) # from line 208, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 207, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 207, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 211, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 211, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 210, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 210, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 212, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 212, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 211, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 211, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 214, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 213, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 215, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 215, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 214, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 214, col 9.
             write(u''' = _akafield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 215, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 215, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 214, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 214, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 219, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 219, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 218, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 218, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 222, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 222, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 221, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 221, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 223, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 223, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 222, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 222, col 1.
         write(u'''
 // Step 2
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 227, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 227, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 226, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 226, col 1.
         write(u''' += _a[1] * _step;
 
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 229, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 228, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 233, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 232, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 234, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 234, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 233, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 233, col 9.
             write(u''' = _akbfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 234, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 234, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 233, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 233, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}" on line 237, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}")) # from line 237, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}" on line 236, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}")) # from line 236, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 240, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 240, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 239, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 239, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 243, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 243, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 242, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 242, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 246, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 246, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 245, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 245, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 247, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 247, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 246, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 246, col 1.
         write(u'''
 // Step 3
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 251, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 251, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 250, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 250, col 1.
         write(u''' += _a[2] * _step;
 
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 253, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 252, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 257, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 256, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 258, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 258, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 257, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 257, col 9.
             write(u''' = _akcfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 258, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 258, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 257, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 257, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}" on line 261, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}")) # from line 261, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}" on line 260, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}")) # from line 260, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 264, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 264, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 263, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 263, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 267, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 267, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 266, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 266, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 270, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 270, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 269, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 269, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 271, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 271, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 270, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 270, col 1.
         write(u'''
 // Step 4
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 275, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 275, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 274, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 274, col 1.
         write(u''' += _a[3] * _step;
 
 ''')
@@ -455,50 +455,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index] + _b[3][1]*_akbfield_${vector.id}[$index]
     + _b[3][2]*_akcfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index] + _b[3][1]*_akbfield_${vector.id}[$index]\n    + _b[3][2]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 277, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index] + _b[3][1]*_akbfield_${vector.id}[$index]\n    + _b[3][2]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 276, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 282, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 281, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 283, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 283, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 282, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 282, col 9.
             write(u''' = _akdfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 283, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 283, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 282, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 282, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}" on line 286, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}")) # from line 286, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}" on line 285, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}")) # from line 285, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 289, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 289, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 288, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 288, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 292, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 292, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 291, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 291, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 295, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 295, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 294, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 294, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 296, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 296, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 295, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 295, col 1.
         write(u'''
 // Step 5
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 300, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 300, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 299, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 299, col 1.
         write(u''' += _a[4] * _step;
 
 ''')
@@ -506,50 +506,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index] + _b[4][1]*_akbfield_${vector.id}[$index]
     + _b[4][2]*_akcfield_${vector.id}[$index] + _b[4][3]*_akdfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index] + _b[4][1]*_akbfield_${vector.id}[$index]\n    + _b[4][2]*_akcfield_${vector.id}[$index] + _b[4][3]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 302, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index] + _b[4][1]*_akbfield_${vector.id}[$index]\n    + _b[4][2]*_akcfield_${vector.id}[$index] + _b[4][3]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 301, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 307, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 306, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 308, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 308, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 307, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 307, col 9.
             write(u''' = _akefield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 308, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 308, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 307, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 307, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}" on line 311, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}")) # from line 311, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}" on line 310, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}")) # from line 310, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 314, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 314, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 313, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 313, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 317, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 317, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 316, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 316, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 320, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 320, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 319, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 319, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 321, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 321, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 320, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 320, col 1.
         write(u'''
 // Step 6
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 325, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 325, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 324, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 324, col 1.
         write(u''' += _a[5] * _step;
 
 ''')
@@ -557,50 +557,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index] + _b[5][3]*_akdfield_${vector.id}[$index]
     + _b[5][4]*_akefield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index] + _b[5][3]*_akdfield_${vector.id}[$index]\n    + _b[5][4]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 327, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index] + _b[5][3]*_akdfield_${vector.id}[$index]\n    + _b[5][4]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 326, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 332, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 331, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 333, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 333, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 332, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 332, col 9.
             write(u''' = _akifield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 333, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 333, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 332, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 332, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 1, parentFunction=function)}" on line 336, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 1, parentFunction=function)}")) # from line 336, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}" on line 335, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}")) # from line 335, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}" on line 339, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}")) # from line 339, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}" on line 338, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}")) # from line 338, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 342, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 342, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 341, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 341, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}" on line 345, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}")) # from line 345, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}" on line 344, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}")) # from line 344, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 346, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 346, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 345, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 345, col 1.
         write(u'''
 // Step 7
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 350, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 350, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 349, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 349, col 1.
         write(u''' += _a[6] * _step;
 
 ''')
@@ -608,50 +608,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index] + _b[6][3]*_akdfield_${vector.id}[$index]
     + _b[6][4]*_akefield_${vector.id}[$index] + _b[6][5]*_akifield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index] + _b[6][3]*_akdfield_${vector.id}[$index]\n    + _b[6][4]*_akefield_${vector.id}[$index] + _b[6][5]*_akifield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 352, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index] + _b[6][3]*_akdfield_${vector.id}[$index]\n    + _b[6][4]*_akefield_${vector.id}[$index] + _b[6][5]*_akifield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 351, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 357, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 356, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 358, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 358, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 357, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 357, col 9.
             write(u''' = _akjfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 358, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 358, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 357, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 357, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 1, parentFunction=function)}" on line 361, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 1, parentFunction=function)}")) # from line 361, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}" on line 360, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}")) # from line 360, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}" on line 364, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}")) # from line 364, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}" on line 363, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}")) # from line 363, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 367, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 367, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 366, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 366, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}" on line 370, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}")) # from line 370, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}" on line 369, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}")) # from line 369, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 371, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 371, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 370, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 370, col 1.
         write(u'''
 // Step 8
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 375, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 375, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 374, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 374, col 1.
         write(u''' += _a[7] * _step;
 
 ''')
@@ -659,50 +659,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index] + _b[7][5]*_akifield_${vector.id}[$index]
     + _b[7][6]*_akjfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index] + _b[7][5]*_akifield_${vector.id}[$index]\n    + _b[7][6]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 377, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index] + _b[7][5]*_akifield_${vector.id}[$index]\n    + _b[7][6]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 376, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 382, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 381, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 383, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 383, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 382, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 382, col 9.
             write(u''' = _akbfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 383, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 383, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 382, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 382, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 1, parentFunction=function)}" on line 386, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 1, parentFunction=function)}")) # from line 386, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}" on line 385, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}")) # from line 385, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}" on line 389, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}")) # from line 389, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}" on line 388, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}")) # from line 388, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 392, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 392, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 391, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 391, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}" on line 395, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}")) # from line 395, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}" on line 394, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}")) # from line 394, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 396, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 396, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 395, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 395, col 1.
         write(u'''
 // Step 9
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 400, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 400, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 399, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 399, col 1.
         write(u''' += _a[8] * _step;
 
 ''')
@@ -710,50 +710,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index] + _b[8][5]*_akifield_${vector.id}[$index]
     + _b[8][6]*_akjfield_${vector.id}[$index]+ _b[8][7]*_akbfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index] + _b[8][5]*_akifield_${vector.id}[$index]\n    + _b[8][6]*_akjfield_${vector.id}[$index]+ _b[8][7]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 402, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index] + _b[8][5]*_akifield_${vector.id}[$index]\n    + _b[8][6]*_akjfield_${vector.id}[$index]+ _b[8][7]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 401, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 407, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 406, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 408, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 408, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 407, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 407, col 9.
             write(u''' = _akcfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 408, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 408, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 407, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 407, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 1, parentFunction=function)}" on line 411, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 1, parentFunction=function)}")) # from line 411, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}" on line 410, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}")) # from line 410, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}" on line 414, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}")) # from line 414, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}" on line 413, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}")) # from line 413, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 417, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 417, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 416, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 416, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}" on line 420, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}")) # from line 420, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}" on line 419, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}")) # from line 419, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 421, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 421, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 420, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 420, col 1.
         write(u'''
 // Step 10
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 425, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 425, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 424, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 424, col 1.
         write(u''' += _a[9] * _step;
 
 ''')
@@ -761,50 +761,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index] + _b[9][5]*_akifield_${vector.id}[$index]
     + _b[9][6]*_akjfield_${vector.id}[$index]+ _b[9][7]*_akbfield_${vector.id}[$index]+ _b[9][8]*_akcfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index] + _b[9][5]*_akifield_${vector.id}[$index]\n    + _b[9][6]*_akjfield_${vector.id}[$index]+ _b[9][7]*_akbfield_${vector.id}[$index]+ _b[9][8]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 427, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index] + _b[9][5]*_akifield_${vector.id}[$index]\n    + _b[9][6]*_akjfield_${vector.id}[$index]+ _b[9][7]*_akbfield_${vector.id}[$index]+ _b[9][8]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 426, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 432, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 431, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 433, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 433, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 432, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 432, col 9.
             write(u''' = _akdfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 433, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 433, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 432, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 432, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 1, parentFunction=function)}" on line 436, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 1, parentFunction=function)}")) # from line 436, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}" on line 435, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}")) # from line 435, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}" on line 439, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}")) # from line 439, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}" on line 438, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}")) # from line 438, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 442, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 442, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 441, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 441, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}" on line 445, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}")) # from line 445, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}" on line 444, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}")) # from line 444, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 446, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 446, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 445, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 445, col 1.
         write(u'''
 // Step 11
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 450, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 450, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 449, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 449, col 1.
         write(u''' += _a[10] * _step;
 
 ''')
@@ -813,50 +813,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[10][6]*_akjfield_${vector.id}[$index]+ _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]
     + _b[10][9]*_akdfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index] + _b[10][5]*_akifield_${vector.id}[$index]\n    + _b[10][6]*_akjfield_${vector.id}[$index]+ _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]\n    + _b[10][9]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 452, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index] + _b[10][5]*_akifield_${vector.id}[$index]\n    + _b[10][6]*_akjfield_${vector.id}[$index]+ _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]\n    + _b[10][9]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 451, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 458, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 457, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 459, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 459, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 458, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 458, col 9.
             write(u''' = _akefield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 459, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 459, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 458, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 458, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 1, parentFunction=function)}" on line 462, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 1, parentFunction=function)}")) # from line 462, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}" on line 461, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}")) # from line 461, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}" on line 465, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}")) # from line 465, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}" on line 464, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}")) # from line 464, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 468, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 468, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 467, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 467, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}" on line 471, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}")) # from line 471, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}" on line 470, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}")) # from line 470, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 472, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 472, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 471, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 471, col 1.
         write(u'''
 // Step 12
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 476, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 476, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 475, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 475, col 1.
         write(u''' += _a[11] * _step;
 
 ''')
@@ -865,50 +865,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[11][6]*_akjfield_${vector.id}[$index] + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]
     + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index] + _b[11][5]*_akifield_${vector.id}[$index]\n    + _b[11][6]*_akjfield_${vector.id}[$index] + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]\n    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];\n" [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index] + _b[11][5]*_akifield_${vector.id}[$index]\n    + _b[11][6]*_akjfield_${vector.id}[$index] + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]\n    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];\n" [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 484, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 483, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 485, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 485, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 484, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 484, col 9.
             write(u''' = _akffield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 485, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 485, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 484, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 484, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 1, parentFunction=function)}" on line 488, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 1, parentFunction=function)}")) # from line 488, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}" on line 487, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}")) # from line 487, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}" on line 491, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}")) # from line 491, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}" on line 490, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}")) # from line 490, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 494, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 494, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 493, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 493, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}" on line 497, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}")) # from line 497, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}" on line 496, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}")) # from line 496, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 498, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 498, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 497, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 497, col 1.
         write(u'''
 // Step 13
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 502, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 502, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 501, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 501, col 1.
         write(u''' += _a[12] * _step;
 
 ''')
@@ -917,50 +917,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[12][6]*_akjfield_${vector.id}[$index]+ _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]
     + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index] + _b[12][11]*_akffield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index] + _b[12][5]*_akifield_${vector.id}[$index]\n    + _b[12][6]*_akjfield_${vector.id}[$index]+ _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]\n    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index] + _b [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index] + _b[12][5]*_akifield_${vector.id}[$index]\n    + _b[12][6]*_akjfield_${vector.id}[$index]+ _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]\n    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index] + _b [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 510, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 509, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 511, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 511, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 510, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 510, col 9.
             write(u''' = _akgfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 511, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 511, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 510, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 510, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 1, parentFunction=function)}" on line 514, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 1, parentFunction=function)}")) # from line 514, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}" on line 513, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}")) # from line 513, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}" on line 517, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}")) # from line 517, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}" on line 516, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}")) # from line 516, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 520, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 520, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 519, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 519, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}" on line 523, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}")) # from line 523, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}" on line 522, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}")) # from line 522, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 524, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 524, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 523, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 523, col 1.
         write(u'''
 // Step 14
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 528, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 528, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 527, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 527, col 1.
         write(u''' += _a[13] * _step;
 
 ''')
@@ -970,44 +970,44 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index] + _b[13][11]*_akffield_${vector.id}[$index]
     + _b[13][12]*_akgfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index] + _b[13][5]*_akifield_${vector.id}[$index]\n    + _b[13][6]*_akjfield_${vector.id}[$index]+ _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]\n    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index] + _b [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index] + _b[13][5]*_akifield_${vector.id}[$index]\n    + _b[13][6]*_akjfield_${vector.id}[$index]+ _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]\n    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index] + _b [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 537, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 536, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 538, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 538, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 537, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 537, col 9.
             write(u''' = _akhfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 538, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 538, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 537, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 537, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 1, parentFunction=function)}" on line 541, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 1, parentFunction=function)}")) # from line 541, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}" on line 540, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}")) # from line 540, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}" on line 544, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}")) # from line 544, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}" on line 543, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}")) # from line 543, col 1.
         write(u'''
 
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 547, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 547, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 546, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 546, col 1.
         write(u'''
 
 // a_i=D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}" on line 550, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}")) # from line 550, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}" on line 549, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}")) # from line 549, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 551, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 551, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 550, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 550, col 1.
         write(u'''
 // Step 15 and 16 combined to reduce memory use 
 
@@ -1018,7 +1018,7 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index] + _b[14][11]*_akffield_${vector.id}[$index]
     + _b[14][12]*_akgfield_${vector.id}[$index] + _b[14][13]*_akhfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index] + _b[14][5]*_akifield_${vector.id}[$index]\n    + _b[14][6]*_akjfield_${vector.id}[$index]+ _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]\n    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index] + _b [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index] + _b[14][5]*_akifield_${vector.id}[$index]\n    + _b[14][6]*_akjfield_${vector.id}[$index]+ _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]\n    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index] + _b [...]
         write(u'''
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
@@ -1034,64 +1034,64 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
       + _d[9]*_akgfield_${vector.id}[$index]
       + _d[10]*_akhfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _d[0]*_${vector.id}[$index]\n      + _d[1]*_akafield_${vector.id}[$index]\n      + _d[2]*_akifield_${vector.id}[$index]\n      + _d[3]*_akjfield_${vector.id}[$index]\n      + _d[4]*_akbfield_${vector.id}[$index]\n      + _d[5]*_akcfield_${vector.id}[$index]\n      + _d[6]*_akdfield_${vector.id}[$index]\n      + _d[7]*_akefield_${vector [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _d[0]*_${vector.id}[$index]\n      + _d[1]*_akafield_${vector.id}[$index]\n      + _d[2]*_akifield_${vector.id}[$index]\n      + _d[3]*_akjfield_${vector.id}[$index]\n      + _d[4]*_akbfield_${vector.id}[$index]\n      + _d[5]*_akcfield_${vector.id}[$index]\n      + _d[6]*_akdfield_${vector.id}[$index]\n      + _d[7]*_akefield_${vector [...]
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 576, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 576, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 575, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 575, col 1.
         write(u''' += _a[14] * _step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 578, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 577, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 579, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 579, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 578, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 578, col 9.
             write(u''' = _akifield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 579, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 579, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 578, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 578, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 583, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 583, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 582, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 582, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 584, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 584, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 583, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 583, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 586, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 586, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 585, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 585, col 1.
         write(u''' += _a[15] * _step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 588, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 587, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 589, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 589, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 588, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 588, col 9.
             write(u''' = _akjfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 589, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 589, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 588, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 588, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k=G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 593, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 593, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 592, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 592, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 594, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 594, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 593, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 593, col 1.
         write(u'''
 // Take full step
 
 // ai = a
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_initial') # u"${copyVectors($integrationVectors, '_initial')}" on line 599, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_initial')}")) # from line 599, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_initial') # u"${copyVectors($integrationVectors, '_initial')}" on line 598, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_initial')}")) # from line 598, col 1.
         write(u'''
 // a = a + etc
 ''')
@@ -1101,7 +1101,7 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${vector.id}[$index]
     + _c[15]*_akjfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]\n    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]\n    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${ [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]\n    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]\n    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${ [...]
         write(u'''
 // a* = a + etc
 ''')
@@ -1111,16 +1111,16 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _cs[11]*_akffield_${vector.id}[$index] + _cs[12]*_akgfield_${vector.id}[$index] + _cs[13]*_akhfield_${vector.id}[$index]
     + _cs[14]*_akifield_${vector.id}[$index] + _cs[15]*_akjfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akafield_${vector.id}[$index] = _initial_${vector.id}[$index] + _cs[0]*_akafield_${vector.id}[$index] + _cs[7]*_akbfield_${vector.id}[$index]\n    + _cs[8]*_akcfield_${vector.id}[$index] + _cs[9]*_akdfield_${vector.id}[$index] + _cs[10]*_akefield_${vector.id}[$index]\n    + _cs[11]*_akffield_${vector.id}[$index] + _cs[12]*_akgfield_${vector.id}[$index] + _cs[13]*_akh [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akafield_${vector.id}[$index] = _initial_${vector.id}[$index] + _cs[0]*_akafield_${vector.id}[$index] + _cs[7]*_akbfield_${vector.id}[$index]\n    + _cs[8]*_akcfield_${vector.id}[$index] + _cs[9]*_akdfield_${vector.id}[$index] + _cs[10]*_akefield_${vector.id}[$index]\n    + _cs[11]*_akffield_${vector.id}[$index] + _cs[12]*_akgfield_${vector.id}[$index] + _cs[13]*_akh [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 617, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 616, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 618, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 618, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 617, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 617, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 618, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 618, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 617, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 617, col 25.
             write(u''';
 ''')
         write(u'''
@@ -1206,8 +1206,6 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 
     ipPropagationStepFractions =   [ '1.000000000000000', '0.978260869565217', '0.903704189521999', '0.855556284282999',    '0.477941176470588', '0.771575563871365', '0.456396464100663', '0.356643356643357',    '0.517482517482518', '0.931818181818182', '0.749391727493917', '0.332632840343994',    '0.144927536231884', '0.102040816326531' ]
 
-    nonconstantIPFields = 2
-
     extraIntegrationArrayNames =   [ 'akafield', 'akbfield', 'akcfield', 'akdfield', 'akefield', 'akffield', 'akgfield',    'akhfield', 'akifield', 'akjfield', 'initial']
 
     errorFieldName = 'akafield'
diff --git a/xpdeint/Segments/Integrators/RK89Stepper.tmpl b/xpdeint/Segments/Integrators/RK89Stepper.tmpl
index 9bcebfc..f294132 100644
--- a/xpdeint/Segments/Integrators/RK89Stepper.tmpl
+++ b/xpdeint/Segments/Integrators/RK89Stepper.tmpl
@@ -27,7 +27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     '0.477941176470588', '0.771575563871365', '0.456396464100663', '0.356643356643357',
     '0.517482517482518', '0.931818181818182', '0.749391727493917', '0.332632840343994',
     '0.144927536231884', '0.102040816326531' ]
- at attr $nonconstantIPFields = 2
 @attr $extraIntegrationArrayNames = \
   [ 'akafield', 'akbfield', 'akcfield', 'akdfield', 'akefield', 'akffield', 'akgfield',
     'akhfield', 'akifield', 'akjfield', 'initial']
@@ -205,7 +204,7 @@ ${transformVectorsToBasis($integrationVectors, $homeBasis)}@slurp
 
 ${copyVectors($integrationVectors, '_akafield')}@slurp
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
@@ -234,7 +233,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akbfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}
@@ -258,7 +257,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akcfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}
@@ -283,7 +282,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akdfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}
@@ -308,7 +307,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akefield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}
@@ -333,7 +332,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akifield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}
@@ -358,7 +357,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akjfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}
@@ -383,7 +382,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akbfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}
@@ -408,7 +407,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akcfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}
@@ -433,7 +432,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akdfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}
@@ -459,7 +458,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akefield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}
@@ -485,7 +484,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akffield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}
@@ -511,7 +510,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akgfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}
@@ -538,7 +537,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akhfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 1, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}
 
 // a_i=D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}
diff --git a/xpdeint/Segments/Integrators/RK9Stepper.py b/xpdeint/Segments/Integrators/RK9Stepper.py
index 23b02b0..6bb5731 100644
--- a/xpdeint/Segments/Integrators/RK9Stepper.py
+++ b/xpdeint/Segments/Integrators/RK9Stepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.082027
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/RK9Stepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652445.486205
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK9Stepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -96,7 +96,7 @@ class RK9Stepper(_Stepper):
 
 
 
-        ## CHEETAH: generated from @def localInitialise at line 38, col 1.
+        ## CHEETAH: generated from @def localInitialise at line 37, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -263,7 +263,7 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 183, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 182, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -280,171 +280,171 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
         
         # 
         arguments = {'_step': '_step'}
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 186, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 186, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 185, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 185, col 1.
         write(u'''
 // Step 1
 
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akafield') # u"${copyVectors($integrationVectors, '_akafield')}" on line 190, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akafield')}")) # from line 190, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_akafield') # u"${copyVectors($integrationVectors, '_akafield')}" on line 189, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_akafield')}")) # from line 189, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 192, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 191, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 193, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 193, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 193, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 193, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 192, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 192, col 25.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}" on line 196, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}")) # from line 196, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 195, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 195, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 199, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 199, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 198, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 198, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 200, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 200, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 199, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 199, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 202, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 201, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 203, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 203, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 202, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 202, col 9.
             write(u''' = _akafield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 203, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 203, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 202, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 202, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 207, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 207, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 206, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 206, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 210, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 210, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 209, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 209, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 211, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 211, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 210, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 210, col 1.
         write(u'''
 // Step 2
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 215, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 215, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 214, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 214, col 1.
         write(u''' += _a[1]*_step;
 
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 217, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[1][0]*_akafield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 216, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 221, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 220, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 222, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 222, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 9.
             write(u''' = _akbfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 222, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 222, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 221, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 221, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 0, parentFunction=function)}" on line 225, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 0, parentFunction=function)}")) # from line 225, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}" on line 224, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}")) # from line 224, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 228, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 228, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}" on line 227, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}")) # from line 227, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 231, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 231, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 230, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 230, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 234, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 234, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +2, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}" on line 233, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +2, parentFunction=function)}")) # from line 233, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 235, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 235, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 234, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 234, col 1.
         write(u'''
 // Step 3
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 239, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 239, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 238, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 238, col 1.
         write(u''' += _a[2]*_step;
 
 ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 241, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[2][0]*_akafield_${vector.id}[$index] + _b[2][1]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 240, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 245, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 244, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 246, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 246, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 9.
             write(u''' = _akcfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 246, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 246, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 245, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 245, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 0, parentFunction=function)}" on line 249, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 0, parentFunction=function)}")) # from line 249, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}" on line 248, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}")) # from line 248, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 252, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 252, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}" on line 251, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}")) # from line 251, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 255, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 255, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 254, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 254, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 258, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 258, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +3, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}" on line 257, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +3, parentFunction=function)}")) # from line 257, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 259, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 259, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 258, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 258, col 1.
         write(u'''
 // Step 4
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 263, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 263, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 262, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 262, col 1.
         write(u''' += _a[3]*_step;
 
 ''')
@@ -452,50 +452,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index]
     + _b[3][1]*_akbfield_${vector.id}[$index] + _b[3][2]*_akcfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index]\n    + _b[3][1]*_akbfield_${vector.id}[$index] + _b[3][2]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 265, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[3][0]*_akafield_${vector.id}[$index]\n    + _b[3][1]*_akbfield_${vector.id}[$index] + _b[3][2]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 264, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 270, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 269, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 271, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 271, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 270, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 270, col 9.
             write(u''' = _akdfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 271, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 271, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 270, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 270, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 0, parentFunction=function)}" on line 274, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 0, parentFunction=function)}")) # from line 274, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}" on line 273, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}")) # from line 273, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 277, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 277, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}" on line 276, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}")) # from line 276, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 280, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 280, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 279, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 279, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 283, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 283, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +4, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}" on line 282, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +4, parentFunction=function)}")) # from line 282, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 284, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 284, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 283, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 283, col 1.
         write(u'''
 // Step 5
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 288, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 288, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 287, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 287, col 1.
         write(u''' += _a[4]*_step;
 
 ''')
@@ -504,50 +504,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[4][1]*_akbfield_${vector.id}[$index] + _b[4][2]*_akcfield_${vector.id}[$index]
     + _b[4][3]*_akdfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index]\n    + _b[4][1]*_akbfield_${vector.id}[$index] + _b[4][2]*_akcfield_${vector.id}[$index]\n    + _b[4][3]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 290, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[4][0]*_akafield_${vector.id}[$index]\n    + _b[4][1]*_akbfield_${vector.id}[$index] + _b[4][2]*_akcfield_${vector.id}[$index]\n    + _b[4][3]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 289, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 296, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 295, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 297, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 297, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 296, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 296, col 9.
             write(u''' = _akefield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 297, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 297, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 296, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 296, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 0, parentFunction=function)}" on line 300, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 0, parentFunction=function)}")) # from line 300, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}" on line 299, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}")) # from line 299, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 303, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 303, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}" on line 302, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}")) # from line 302, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 306, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 306, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 305, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 305, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 309, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 309, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +5, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}" on line 308, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +5, parentFunction=function)}")) # from line 308, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 310, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 310, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 309, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 309, col 1.
         write(u'''
 // Step 6
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 314, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 314, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 313, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 313, col 1.
         write(u''' += _a[5]*_step;
 
 ''')
@@ -555,50 +555,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index]
     + _b[5][3]*_akdfield_${vector.id}[$index] + _b[5][4]*_akefield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index]\n    + _b[5][3]*_akdfield_${vector.id}[$index] + _b[5][4]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 316, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[5][0]*_akafield_${vector.id}[$index]\n    + _b[5][3]*_akdfield_${vector.id}[$index] + _b[5][4]*_akefield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 315, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 321, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 320, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 322, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 322, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 321, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 321, col 9.
             write(u''' = _akifield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 322, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 322, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 321, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 321, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 0, parentFunction=function)}" on line 325, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 0, parentFunction=function)}")) # from line 325, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}" on line 324, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}")) # from line 324, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}" on line 328, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}")) # from line 328, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}" on line 327, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}")) # from line 327, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 331, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 331, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 330, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 330, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}" on line 334, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}")) # from line 334, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +6, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}" on line 333, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +6, parentFunction=function)}")) # from line 333, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 335, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 335, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 334, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 334, col 1.
         write(u'''
 // Step 7
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 339, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 339, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 338, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 338, col 1.
         write(u''' += _a[6]*_step;
 
 ''')
@@ -607,50 +607,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[6][3]*_akdfield_${vector.id}[$index] + _b[6][4]*_akefield_${vector.id}[$index]
     + _b[6][5]*_akifield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index]\n    + _b[6][3]*_akdfield_${vector.id}[$index] + _b[6][4]*_akefield_${vector.id}[$index]\n    + _b[6][5]*_akifield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 341, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akjfield_${vector.id}[$index] = _${vector.id}[$index] + _b[6][0]*_akafield_${vector.id}[$index]\n    + _b[6][3]*_akdfield_${vector.id}[$index] + _b[6][4]*_akefield_${vector.id}[$index]\n    + _b[6][5]*_akifield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 340, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 347, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 346, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 348, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 348, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 347, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 347, col 9.
             write(u''' = _akjfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 348, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 348, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 347, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 347, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 0, parentFunction=function)}" on line 351, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 0, parentFunction=function)}")) # from line 351, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}" on line 350, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}")) # from line 350, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}" on line 354, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}")) # from line 354, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}" on line 353, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}")) # from line 353, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 357, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 357, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 356, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 356, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}" on line 360, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}")) # from line 360, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +7, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}" on line 359, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +7, parentFunction=function)}")) # from line 359, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 361, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 361, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 360, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 360, col 1.
         write(u'''
 // Step 8
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 365, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 365, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 364, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 364, col 1.
         write(u''' += _a[7]*_step;
 
 ''')
@@ -658,50 +658,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
 """_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index]
     + _b[7][5]*_akifield_${vector.id}[$index] + _b[7][6]*_akjfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index]\n    + _b[7][5]*_akifield_${vector.id}[$index] + _b[7][6]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 367, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akbfield_${vector.id}[$index] = _${vector.id}[$index] + _b[7][0]*_akafield_${vector.id}[$index]\n    + _b[7][5]*_akifield_${vector.id}[$index] + _b[7][6]*_akjfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 366, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 372, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 371, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 373, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 373, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 372, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 372, col 9.
             write(u''' = _akbfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 373, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 373, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 372, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 372, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 0, parentFunction=function)}" on line 376, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 0, parentFunction=function)}")) # from line 376, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}" on line 375, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}")) # from line 375, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}" on line 379, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}")) # from line 379, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}" on line 378, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}")) # from line 378, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 382, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 382, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 381, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 381, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}" on line 385, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}")) # from line 385, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +8, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}" on line 384, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +8, parentFunction=function)}")) # from line 384, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 386, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 386, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 385, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 385, col 1.
         write(u'''
 // Step 9
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 390, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 390, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 389, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 389, col 1.
         write(u''' += _a[8]*_step;
 
 ''')
@@ -710,50 +710,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[8][5]*_akifield_${vector.id}[$index] + _b[8][6]*_akjfield_${vector.id}[$index]
     + _b[8][7]*_akbfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index]\n    + _b[8][5]*_akifield_${vector.id}[$index] + _b[8][6]*_akjfield_${vector.id}[$index]\n    + _b[8][7]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 392, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akcfield_${vector.id}[$index] = _${vector.id}[$index] + _b[8][0]*_akafield_${vector.id}[$index]\n    + _b[8][5]*_akifield_${vector.id}[$index] + _b[8][6]*_akjfield_${vector.id}[$index]\n    + _b[8][7]*_akbfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 391, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 398, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 397, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 399, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 399, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 398, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 398, col 9.
             write(u''' = _akcfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 399, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 399, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 398, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 398, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 0, parentFunction=function)}" on line 402, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 0, parentFunction=function)}")) # from line 402, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}" on line 401, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}")) # from line 401, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}" on line 405, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}")) # from line 405, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}" on line 404, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}")) # from line 404, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 408, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 408, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 407, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 407, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}" on line 411, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}")) # from line 411, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +9, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}" on line 410, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +9, parentFunction=function)}")) # from line 410, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 412, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 412, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 411, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 411, col 1.
         write(u'''
 // Step 10
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 416, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 416, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 415, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 415, col 1.
         write(u''' += _a[9]*_step;
 
 ''')
@@ -762,50 +762,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[9][5]*_akifield_${vector.id}[$index] + _b[9][6]*_akjfield_${vector.id}[$index]
     + _b[9][7]*_akbfield_${vector.id}[$index] + _b[9][8]*_akcfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index]\n    + _b[9][5]*_akifield_${vector.id}[$index] + _b[9][6]*_akjfield_${vector.id}[$index]\n    + _b[9][7]*_akbfield_${vector.id}[$index] + _b[9][8]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 418, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akdfield_${vector.id}[$index] = _${vector.id}[$index] + _b[9][0]*_akafield_${vector.id}[$index]\n    + _b[9][5]*_akifield_${vector.id}[$index] + _b[9][6]*_akjfield_${vector.id}[$index]\n    + _b[9][7]*_akbfield_${vector.id}[$index] + _b[9][8]*_akcfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line 417, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 424, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 423, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 425, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 425, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 424, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 424, col 9.
             write(u''' = _akdfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 425, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 425, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 424, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 424, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 0, parentFunction=function)}" on line 428, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 0, parentFunction=function)}")) # from line 428, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}" on line 427, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}")) # from line 427, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}" on line 431, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}")) # from line 431, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}" on line 430, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}")) # from line 430, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 434, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 434, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 433, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 433, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}" on line 437, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}")) # from line 437, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +10, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}" on line 436, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +10, parentFunction=function)}")) # from line 436, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 438, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 438, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 437, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 437, col 1.
         write(u'''
 // Step 11
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 442, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 442, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 441, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 441, col 1.
         write(u''' += _a[10]*_step;
 
 ''')
@@ -815,50 +815,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]
     + _b[10][9]*_akdfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index]\n    + _b[10][5]*_akifield_${vector.id}[$index] + _b[10][6]*_akjfield_${vector.id}[$index]\n    + _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]\n    + _b[10][9]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akefield_${vector.id}[$index] = _${vector.id}[$index] + _b[10][0]*_akafield_${vector.id}[$index]\n    + _b[10][5]*_akifield_${vector.id}[$index] + _b[10][6]*_akjfield_${vector.id}[$index]\n    + _b[10][7]*_akbfield_${vector.id}[$index] + _b[10][8]*_akcfield_${vector.id}[$index]\n    + _b[10][9]*_akdfield_${vector.id}[$index];\n""", basis = $homeBasis)}')) # from line [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 451, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 450, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 452, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 452, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 451, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 451, col 9.
             write(u''' = _akefield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 452, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 452, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 451, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 451, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 0, parentFunction=function)}" on line 455, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 0, parentFunction=function)}")) # from line 455, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}" on line 454, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}")) # from line 454, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}" on line 458, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}")) # from line 458, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}" on line 457, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}")) # from line 457, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 461, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 461, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 460, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 460, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}" on line 464, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}")) # from line 464, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +11, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}" on line 463, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +11, parentFunction=function)}")) # from line 463, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 465, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 465, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 464, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 464, col 1.
         write(u'''
 // Step 12
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 469, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 469, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 468, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 468, col 1.
         write(u''' += _a[11]*_step;
 
 ''')
@@ -868,50 +868,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]
     + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index]\n    + _b[11][5]*_akifield_${vector.id}[$index] + _b[11][6]*_akjfield_${vector.id}[$index]\n    + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]\n    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akffield_${vector.id}[$index] = _${vector.id}[$index] + _b[11][0]*_akafield_${vector.id}[$index]\n    + _b[11][5]*_akifield_${vector.id}[$index] + _b[11][6]*_akjfield_${vector.id}[$index]\n    + _b[11][7]*_akbfield_${vector.id}[$index] + _b[11][8]*_akcfield_${vector.id}[$index]\n    + _b[11][9]*_akdfield_${vector.id}[$index] + _b[11][10]*_akefield_${vector.id}[$index [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 478, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 477, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 479, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 479, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 478, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 478, col 9.
             write(u''' = _akffield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 479, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 479, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 478, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 478, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 0, parentFunction=function)}" on line 482, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 0, parentFunction=function)}")) # from line 482, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}" on line 481, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}")) # from line 481, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}" on line 485, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}")) # from line 485, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}" on line 484, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}")) # from line 484, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 488, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 488, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 487, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 487, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}" on line 491, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}")) # from line 491, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +12, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}" on line 490, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +12, parentFunction=function)}")) # from line 490, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 492, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 492, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 491, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 491, col 1.
         write(u'''
 // Step 13
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 496, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 496, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 495, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 495, col 1.
         write(u''' += _a[12]*_step;
 
 ''')
@@ -922,50 +922,50 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index]
     + _b[12][11]*_akffield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index]\n    + _b[12][5]*_akifield_${vector.id}[$index] + _b[12][6]*_akjfield_${vector.id}[$index]\n    + _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]\n    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akgfield_${vector.id}[$index] = _${vector.id}[$index] + _b[12][0]*_akafield_${vector.id}[$index]\n    + _b[12][5]*_akifield_${vector.id}[$index] + _b[12][6]*_akjfield_${vector.id}[$index]\n    + _b[12][7]*_akbfield_${vector.id}[$index] + _b[12][8]*_akcfield_${vector.id}[$index]\n    + _b[12][9]*_akdfield_${vector.id}[$index] + _b[12][10]*_akefield_${vector.id}[$index [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 506, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 505, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 507, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 507, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 506, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 506, col 9.
             write(u''' = _akgfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 507, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 507, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 506, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 506, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 0, parentFunction=function)}" on line 510, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 0, parentFunction=function)}")) # from line 510, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}" on line 509, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}")) # from line 509, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}" on line 513, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}")) # from line 513, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}" on line 512, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}")) # from line 512, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 516, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 516, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 515, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 515, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}" on line 519, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}")) # from line 519, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +13, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}" on line 518, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +13, parentFunction=function)}")) # from line 518, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 520, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 520, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 519, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 519, col 1.
         write(u'''
 // Step 14
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 524, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 524, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 523, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 523, col 1.
         write(u''' += _a[13]*_step;
 
 ''')
@@ -976,44 +976,44 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
     + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index]
     + _b[13][11]*_akffield_${vector.id}[$index] + _b[13][12]*_akgfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index]\n    + _b[13][5]*_akifield_${vector.id}[$index] + _b[13][6]*_akjfield_${vector.id}[$index]\n    + _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]\n    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akhfield_${vector.id}[$index] = _${vector.id}[$index] + _b[13][0]*_akafield_${vector.id}[$index]\n    + _b[13][5]*_akifield_${vector.id}[$index] + _b[13][6]*_akjfield_${vector.id}[$index]\n    + _b[13][7]*_akbfield_${vector.id}[$index] + _b[13][8]*_akcfield_${vector.id}[$index]\n    + _b[13][9]*_akdfield_${vector.id}[$index] + _b[13][10]*_akefield_${vector.id}[$index [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 534, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 533, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 535, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 535, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 534, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 534, col 9.
             write(u''' = _akhfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 535, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 535, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 534, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 534, col 34.
             write(u''';
 ''')
         write(u'''
 ''')
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 0, parentFunction=function)}" on line 538, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 0, parentFunction=function)}")) # from line 538, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}" on line 537, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}")) # from line 537, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}" on line 541, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}")) # from line 541, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = -14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}" on line 540, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}")) # from line 540, col 1.
         write(u'''
 
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 544, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 544, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 543, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 543, col 1.
         write(u'''
 
 // a_i = D(a_2*dt)[y1]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}" on line 547, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}")) # from line 547, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +14, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}" on line 546, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +14, parentFunction=function)}")) # from line 546, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 548, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 548, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 547, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 547, col 1.
         write(u'''
 // Step 15 and 16 combined to reduce memory use
 
@@ -1038,57 +1038,57 @@ _d[10] = _b[15][13]-_b[14][13]*_b[15][5]/_b[14][5];
       + _d[9]*_akgfield_${vector.id}[$index]
       + _d[10]*_akhfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index]\n    + _b[14][5]*_akifield_${vector.id}[$index] + _b[14][6]*_akjfield_${vector.id}[$index]\n    + _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]\n    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_akifield_${vector.id}[$index] = _${vector.id}[$index] + _b[14][0]*_akafield_${vector.id}[$index]\n    + _b[14][5]*_akifield_${vector.id}[$index] + _b[14][6]*_akjfield_${vector.id}[$index]\n    + _b[14][7]*_akbfield_${vector.id}[$index] + _b[14][8]*_akcfield_${vector.id}[$index]\n    + _b[14][9]*_akdfield_${vector.id}[$index] + _b[14][10]*_akefield_${vector.id}[$index [...]
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 573, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 573, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 572, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 572, col 1.
         write(u''' += _a[14]*_step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 575, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 574, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 576, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 576, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 575, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 575, col 9.
             write(u''' = _akifield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 576, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 576, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 575, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 575, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 580, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 580, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 579, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 579, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 581, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 581, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 580, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 580, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 583, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 583, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 582, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 582, col 1.
         write(u''' += _a[15]*_step;
 
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 585, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 584, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 586, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 586, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 585, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 585, col 9.
             write(u''' = _akjfield_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 586, col 34
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 586, col 34.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 585, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 585, col 34.
             write(u''';
 ''')
         write(u'''
 // a_k = G[a_k, t]
 ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 590, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 590, col 1.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function)}" on line 589, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function)}")) # from line 589, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 591, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 591, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 590, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 590, col 1.
         write(u'''
 // Take full step
 
@@ -1100,16 +1100,16 @@ _${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_
     + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_${vector.id}[$index]
     + _c[15]*_akjfield_${vector.id}[$index];
 """, basis = VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""\n_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]\n    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]\n    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_ [...]
+        if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""\n_${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_${vector.id}[$index] + _c[8]*_akcfield_${vector.id}[$index]\n    + _c[9]*_akdfield_${vector.id}[$index] + _c[10]*_akefield_${vector.id}[$index] + _c[11]*_akffield_${vector.id}[$index]\n    + _c[12]*_akgfield_${vector.id}[$index] + _c[13]*_akhfield_${vector.id}[$index] + _c[14]*_akifield_ [...]
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 603, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 602, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 604, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 604, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 603, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 603, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 604, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 604, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 603, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 603, col 25.
             write(u''';
 ''')
         # 
@@ -1192,8 +1192,6 @@ _${vector.id}[$index] += _c[0]*_akafield_${vector.id}[$index] + _c[7]*_akbfield_
 
     ipPropagationStepFractions =   [ '1.000000000000000', '0.978260869565217', '0.903704189521999', '0.855556284282999',    '0.477941176470588', '0.771575563871365', '0.456396464100663', '0.356643356643357',    '0.517482517482518', '0.931818181818182', '0.749391727493917', '0.332632840343994',    '0.144927536231884', '0.102040816326531' ]
 
-    nonconstantIPFields = 1
-
     extraIntegrationArrayNames =   [ 'akafield', 'akbfield', 'akcfield', 'akdfield', 'akefield',    'akffield', 'akgfield', 'akhfield', 'akifield', 'akjfield' ]
 
     isCrossCapable = False
diff --git a/xpdeint/Segments/Integrators/RK9Stepper.tmpl b/xpdeint/Segments/Integrators/RK9Stepper.tmpl
index b45dc89..d0f38b8 100644
--- a/xpdeint/Segments/Integrators/RK9Stepper.tmpl
+++ b/xpdeint/Segments/Integrators/RK9Stepper.tmpl
@@ -27,7 +27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     '0.477941176470588', '0.771575563871365', '0.456396464100663', '0.356643356643357',
     '0.517482517482518', '0.931818181818182', '0.749391727493917', '0.332632840343994',
     '0.144927536231884', '0.102040816326531' ]
- at attr $nonconstantIPFields = 1
 @attr $extraIntegrationArrayNames = \
   [ 'akafield', 'akbfield', 'akcfield', 'akdfield', 'akefield',
     'akffield', 'akgfield', 'akhfield', 'akifield', 'akjfield' ]
@@ -193,7 +192,7 @@ ${copyVectors($integrationVectors, '_akafield')}@slurp
 _active_${vector.id} = _${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
@@ -222,7 +221,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akbfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 2, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 2, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -2, parentFunction=function)}
@@ -246,7 +245,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akcfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 3, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 3, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -3, parentFunction=function)}
@@ -271,7 +270,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akdfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 4, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 4, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -4, parentFunction=function)}
@@ -297,7 +296,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akefield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 5, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 5, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -5, parentFunction=function)}
@@ -322,7 +321,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akifield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 6, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 6, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -6, parentFunction=function)}
@@ -348,7 +347,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akjfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 7, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 7, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -7, parentFunction=function)}
@@ -373,7 +372,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akbfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 8, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 8, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -8, parentFunction=function)}
@@ -399,7 +398,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akcfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 9, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 9, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -9, parentFunction=function)}
@@ -425,7 +424,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akdfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 10, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 10, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -10, parentFunction=function)}
@@ -452,7 +451,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akefield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 11, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 11, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -11, parentFunction=function)}
@@ -479,7 +478,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akffield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 12, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 12, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -12, parentFunction=function)}
@@ -507,7 +506,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akgfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 13, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 13, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -13, parentFunction=function)}
@@ -535,7 +534,7 @@ ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
 _active_${vector.id} = _akhfield_${vector.id};
   @end for
 
-${callFunction('nonconstantIPFields', arguments, _exponent = 14, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 14, parentFunction=function)}
 
 // a_i = D(a_2*dt)[y1]
 ${callFunction('ipEvolve', arguments, _exponent = -14, parentFunction=function)}
diff --git a/xpdeint/Segments/Integrators/RichardsonFixedStep.py b/xpdeint/Segments/Integrators/RichardsonFixedStep.py
new file mode 100644
index 0000000..387b1d2
--- /dev/null
+++ b/xpdeint/Segments/Integrators/RichardsonFixedStep.py
@@ -0,0 +1,644 @@
+#!/usr/bin/env python
+
+
+
+
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from xpdeint.Segments.Integrators._RichardsonFixedStep import _RichardsonFixedStep
+
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
+__CHEETAH_genTime__ = 1389652445.154266
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
+
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
+
+##################################################
+## CLASSES
+
+class RichardsonFixedStep(_RichardsonFixedStep):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(RichardsonFixedStep, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def description(self, **KWS):
+
+
+
+        ## Generated from @def description: segment $segmentNumber ($stepper.name fixed-step, fixed-order integrator with Richardson Extrapolation) at line 24, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        write(u'''segment ''')
+        _v = VFFSL(SL,"segmentNumber",True) # u'$segmentNumber' on line 24, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'$segmentNumber')) # from line 24, col 27.
+        write(u''' (''')
+        _v = VFFSL(SL,"stepper.name",True) # u'$stepper.name' on line 24, col 43
+        if _v is not None: write(_filter(_v, rawExpr=u'$stepper.name')) # from line 24, col 43.
+        write(u''' fixed-step, fixed-order integrator with Richardson Extrapolation)''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def localInitialise(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def localInitialise at line 32, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = super(RichardsonFixedStep, self).localInitialise()
+        if _v is not None: write(_filter(_v))
+        # 
+        write(u'''
+''')
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 37, col 3
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 38, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 38, col 1.
+            write(u'''* _T0_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 38, col 21
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 38, col 21.
+            write(u'''[''')
+            _v = VFFSL(SL,"extrapolations",True) # u'$extrapolations' on line 38, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'$extrapolations')) # from line 38, col 34.
+            write(u'''];
+''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 39, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 39, col 1.
+            write(u'''* _T1_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 39, col 21
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 39, col 21.
+            write(u'''[''')
+            _v = VFFSL(SL,"extrapolations",True) # u'$extrapolations' on line 39, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'$extrapolations')) # from line 39, col 34.
+            write(u'''];
+
+''')
+            for i in range(0, VFFSL(SL,"extrapolations",True)): # generated from line 41, col 3
+                write(u'''_T0_''')
+                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 42, col 5
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 42, col 5.
+                write(u'''[''')
+                _v = VFFSL(SL,"i",True) # u'$i' on line 42, col 18
+                if _v is not None: write(_filter(_v, rawExpr=u'$i')) # from line 42, col 18.
+                write(u'''] = _rerow_T0_''')
+                _v = VFFSL(SL,"i",True) # u'${i}' on line 42, col 34
+                if _v is not None: write(_filter(_v, rawExpr=u'${i}')) # from line 42, col 34.
+                write(u'''_''')
+                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 42, col 39
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 42, col 39.
+                write(u''';
+_T1_''')
+                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 43, col 5
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 43, col 5.
+                write(u'''[''')
+                _v = VFFSL(SL,"i",True) # u'$i' on line 43, col 18
+                if _v is not None: write(_filter(_v, rawExpr=u'$i')) # from line 43, col 18.
+                write(u'''] = _rerow_T1_''')
+                _v = VFFSL(SL,"i",True) # u'${i}' on line 43, col 34
+                if _v is not None: write(_filter(_v, rawExpr=u'${i}')) # from line 43, col 34.
+                write(u'''_''')
+                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 43, col 39
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 43, col 39.
+                write(u''';
+''')
+            write(u'''
+''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 46, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 46, col 1.
+            write(u'''** _Tprev_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 46, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 46, col 25.
+            write(u''' = _T0_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 46, col 44
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 46, col 44.
+            write(u''';
+''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 47, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 47, col 1.
+            write(u'''** _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 25.
+            write(u''' = _T1_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 44
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 44.
+            write(u''';
+''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 48, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 48, col 1.
+            write(u'''* _result_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 48, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 48, col 25.
+            write(u''';
+
+''')
+        write(u'''
+''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_re_reset') # u"${copyVectors($integrationVectors, '_re_reset')}" on line 52, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_re_reset')}")) # from line 52, col 1.
+        write(u'''
+''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def functionPrototypes(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def functionPrototypes at line 59, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = super(RichardsonFixedStep, self).functionPrototypes()
+        if _v is not None: write(_filter(_v))
+        # 
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 63, col 3
+            write(u'''void _segment''')
+            _v = VFFSL(SL,"segmentNumber",True) # u'${segmentNumber}' on line 64, col 14
+            if _v is not None: write(_filter(_v, rawExpr=u'${segmentNumber}')) # from line 64, col 14.
+            write(u'''_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 64, col 31
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 64, col 31.
+            write(u'''_reset(''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 64, col 50
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 64, col 50.
+            write(u'''* _reset_to);
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def segmentFunctionBody(self, function, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segmentFunctionBody($function) @* Overrides segmentFunctionBody of FixedStep *@ at line 69, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = VFFSL(SL,"createStepVariable",True) # u'${createStepVariable}' on line 71, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${createStepVariable}')) # from line 71, col 1.
+        # 
+        featureOrderingOuter = ['Stochastic']
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateFixedStepBegin', featureOrderingOuter) # u"${insertCodeForFeatures('integrateFixedStepBegin', featureOrderingOuter)}" on line 74, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('integrateFixedStepBegin', featureOrderingOuter)}")) # from line 74, col 1.
+        write(u'''
+''')
+        _v = VFFSL(SL,"allocate",True) # u'${allocate}' on line 76, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${allocate}')) # from line 76, col 1.
+        _v = VFFSL(SL,"initialise",True) # u'${initialise}' on line 77, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${initialise}')) # from line 77, col 1.
+        _v = VFFSL(SL,"localInitialise",True) # u'${localInitialise}' on line 78, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${localInitialise}')) # from line 78, col 1.
+        write(u'''
+for (long _istep = 0; _istep < ''')
+        _v = VFFSL(SL,"stepCount",True) # u'${stepCount}' on line 80, col 32
+        if _v is not None: write(_filter(_v, rawExpr=u'${stepCount}')) # from line 80, col 32.
+        write(u'''; _istep++) {
+''')
+        #  Insert code for features
+        featureOrderingInner = ['Output', 'ErrorCheck', 'Stochastic']
+        # 
+        dict = {'extraIndent': 0}
+        write(u'''  ''')
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('integrateFixedStepInnerLoopBegin', featureOrderingInner, dict) # u"${insertCodeForFeatures('integrateFixedStepInnerLoopBegin', featureOrderingInner, dict), autoIndent=True}" on line 85, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('integrateFixedStepInnerLoopBegin', featureOrderingInner, dict), autoIndent=True}")) # from line 85, col 3.
+        extraIndent = VFFSL(SL,"dict.extraIndent",True)
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"preSingleStep",True) # u'${preSingleStep, autoIndent=True, extraIndent=extraIndent}' on line 88, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${preSingleStep, autoIndent=True, extraIndent=extraIndent}')) # from line 88, col 3.
+        write(u'''  ''')
+        _v = VFFSL(SL,"richardsonExtrapolate",False)(function) # u'${richardsonExtrapolate(function), autoIndent=True, extraIndent=extraIndent}' on line 89, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${richardsonExtrapolate(function), autoIndent=True, extraIndent=extraIndent}')) # from line 89, col 3.
+        write(u'''  ''')
+        _v = VFFSL(SL,"postSingleStep",True) # u'${postSingleStep, autoIndent=True, extraIndent=extraIndent}' on line 90, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${postSingleStep, autoIndent=True, extraIndent=extraIndent}')) # from line 90, col 3.
+        write(u'''  
+''')
+        if VFFSL(SL,"cross",True): # generated from line 92, col 3
+            #  If we are cross-integrating, then we now need to copy our result back
+            #  into the original arrays for the integration vectors
+            write(u'''  ''')
+            _v = VFFSL(SL,"copyResultIntoIntegrationArrays",True) # u'${copyResultIntoIntegrationArrays, autoIndent=True, extraIndent=extraIndent}' on line 95, col 3
+            if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${copyResultIntoIntegrationArrays, autoIndent=True, extraIndent=extraIndent}')) # from line 95, col 3.
+            write(u'''  
+''')
+        # 
+        write(u'''  ''')
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateFixedStepInnerLoopEnd', featureOrderingInner, dict) # u"${insertCodeForFeaturesInReverseOrder('integrateFixedStepInnerLoopEnd', featureOrderingInner, dict), autoIndent=True}" on line 99, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateFixedStepInnerLoopEnd', featureOrderingInner, dict), autoIndent=True}")) # from line 99, col 3.
+        write(u'''}
+
+''')
+        _v = VFFSL(SL,"localFinalise",True) # u'${localFinalise}' on line 102, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${localFinalise}')) # from line 102, col 1.
+        _v = VFFSL(SL,"finalise",True) # u'${finalise}' on line 103, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${finalise}')) # from line 103, col 1.
+        _v = VFFSL(SL,"free",True) # u'${free}' on line 104, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${free}')) # from line 104, col 1.
+        write(u'''
+''')
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('integrateFixedStepEnd', featureOrderingOuter) # u"${insertCodeForFeaturesInReverseOrder('integrateFixedStepEnd', featureOrderingOuter)}" on line 106, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('integrateFixedStepEnd', featureOrderingOuter)}")) # from line 106, col 1.
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def richardsonExtrapolate(self, function, **KWS):
+
+
+
+        ## CHEETAH: generated from @def richardsonExtrapolate($function) at line 110, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''long _k = 0;
+long _max_integration_steps = 0;
+
+long _istep_temp = _istep;
+real _step_temp = _step;
+real _''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 117, col 7
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 117, col 7.
+        write(u'''_temp = ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 117, col 38
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 117, col 38.
+        write(u''';
+
+for (_k = 0; _k < ''')
+        _v = VFFSL(SL,"extrapolations",True) # u'$extrapolations' on line 119, col 19
+        if _v is not None: write(_filter(_v, rawExpr=u'$extrapolations')) # from line 119, col 19.
+        write(u'''; _k++)
+{
+  // Swap active rows
+  {
+''')
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 123, col 3
+            write(u'''    ''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 124, col 5
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 124, col 5.
+            write(u'''** _temp_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 124, col 28
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 124, col 28.
+            write(u''' = _Tprev_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 124, col 50
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 124, col 50.
+            write(u''';
+    _Tprev_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 125, col 12
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 125, col 12.
+            write(u''' = _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 125, col 34
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 125, col 34.
+            write(u''';
+    _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 126, col 12
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 126, col 12.
+            write(u''' = _temp_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 126, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 126, col 33.
+            write(u''';
+''')
+        write(u'''  }
+  
+  long _nk = 2 * (_k + 1);
+  _max_integration_steps = _nk;
+  
+  _step = _step_temp / _nk;
+  
+  ''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 135, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 135, col 3.
+        write(u''' = _''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 135, col 30
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 135, col 30.
+        write(u'''_temp;
+  
+  for (_istep = 0; _istep < _nk; _istep++) {
+    ''')
+        _v = VFN(VFFSL(SL,"stepper",True),"singleIntegrationStep",False)(function) # u'${stepper.singleIntegrationStep(function), autoIndent=True}' on line 138, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${stepper.singleIntegrationStep(function), autoIndent=True}')) # from line 138, col 5.
+        write(u'''  }
+  _istep = _istep_temp;
+  _step = _step_temp;
+  
+''')
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 143, col 3
+            write(u'''  _result_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 144, col 11
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 144, col 11.
+            write(u''' = _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 144, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 144, col 33.
+            write(u'''[0];
+''')
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_result', '_active') # u"${copyVectors($integrationVectors, '_result', '_active'), autoIndent=True}" on line 147, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_result', '_active'), autoIndent=True}")) # from line 147, col 3.
+        write(u'''  
+  for (long _j = 0; _j < _k; _j++)
+  {
+    real _nksubj = 2 * (_k - _j);
+    real _denominator = pow(((real)_nk) / _nksubj, 2) - 1.0;
+    
+''')
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 154, col 5
+            write(u'''    ''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 155, col 5
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 155, col 5.
+            write(u'''* const _TcurrJPlusOne_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 155, col 42
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 155, col 42.
+            write(u''' = _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 155, col 64
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 155, col 64.
+            write(u'''[_j+1];
+    ''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 156, col 5
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 156, col 5.
+            write(u'''* const _TcurrJ_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 156, col 35
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 156, col 35.
+            write(u''' = _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 156, col 57
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 156, col 57.
+            write(u'''[_j];
+    ''')
+            _v = VFFSL(SL,"vector.type",True) # u'${vector.type}' on line 157, col 5
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.type}')) # from line 157, col 5.
+            write(u'''* const _TprevJ_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 157, col 35
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 157, col 35.
+            write(u''' = _Tprev_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 157, col 57
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 157, col 57.
+            write(u'''[_j];
+''')
+        write(u'''    
+    ''')
+        _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
+"""_TcurrJPlusOne_${vector.id}[$index] = _TcurrJ_${vector.id}[$index] + (_TcurrJ_${vector.id}[$index] - _TprevJ_${vector.id}[$index]) / _denominator;
+""", basis = VFFSL(SL,"homeBasis",True))
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""_TcurrJPlusOne_${vector.id}[$index] = _TcurrJ_${vector.id}[$index] + (_TcurrJ_${vector.id}[$index] - _TprevJ_${vector.id}[$index]) / _denominator;\n""", basis = $homeBasis), autoIndent=True}')) # from line 160, col 5.
+        write(u'''  }
+  
+  // Reset
+  ''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_active', '_re_reset') # u"${copyVectors($integrationVectors, '_active', '_re_reset'), autoIndent=True}" on line 166, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${copyVectors($integrationVectors, '_active', '_re_reset'), autoIndent=True}")) # from line 166, col 3.
+        write(u'''}
+
+''')
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 169, col 3
+            write(u'''_result_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 170, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 170, col 9.
+            write(u''' = _Tcurr_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 170, col 31
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 170, col 31.
+            write(u'''[_k-1];
+''')
+        write(u'''
+''')
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_active', '_result') # u"${copyVectors($integrationVectors, '_active', '_result')}" on line 173, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_active', '_result')}")) # from line 173, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_re_reset', '_active') # u"${copyVectors($integrationVectors, '_re_reset', '_active')}" on line 174, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_re_reset', '_active')}")) # from line 174, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 175, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 175, col 1.
+        write(u''' = _''')
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 175, col 28
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 175, col 28.
+        write(u'''_temp + _step;
+
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def writeBody(self, **KWS):
+
+
+
+        ## CHEETAH: main method generated for this template
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        # RichardsonFixedStep.tmpl
+        # 
+        # Created by Sean Wild on 2013-10-10.
+        # 
+        # Copyright (c) 2007-2013, Graham Dennis
+        # 
+        # This program is free software: you can redistribute it and/or modify
+        # it under the terms of the GNU General Public License as published by
+        # the Free Software Foundation, either version 2 of the License, or
+        # (at your option) any later version.
+        # 
+        # This program is distributed in the hope that it will be useful,
+        # but WITHOUT ANY WARRANTY; without even the implied warranty of
+        # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        # GNU General Public License for more details.
+        # 
+        # You should have received a copy of the GNU General Public License
+        # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+        # 
+        write(u'''
+
+
+
+                                      
+
+''')
+        # 
+        #   Function prototypes
+        write(u'''
+
+''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    extrapolations = 4
+
+    supportsConstantIPOperators = False
+
+    maxIntegrationStepsVar = '_max_integration_steps'
+
+    _mainCheetahMethod_for_RichardsonFixedStep= 'writeBody'
+
+## END CLASS DEFINITION
+
+if not hasattr(RichardsonFixedStep, '_initCheetahAttributes'):
+    templateAPIClass = getattr(RichardsonFixedStep, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(RichardsonFixedStep)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=RichardsonFixedStep()).run()
+
+
diff --git a/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl b/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl
new file mode 100644
index 0000000..8872233
--- /dev/null
+++ b/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl
@@ -0,0 +1,178 @@
+@*
+RichardsonFixedStep.tmpl
+
+Created by Sean Wild on 2013-10-10.
+
+Copyright (c) 2007-2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.Segments.Integrators._RichardsonFixedStep
+
+ at def description: segment $segmentNumber ($stepper.name fixed-step, fixed-order integrator with Richardson Extrapolation)
+
+ at attr $extrapolations = 4
+
+ at attr $supportsConstantIPOperators = False
+
+ at attr $maxIntegrationStepsVar = '_max_integration_steps'
+                                      
+ at def localInitialise
+  @#
+  @super
+  @#
+
+  @for $vector in $integrationVectors
+${vector.type}* _T0_${vector.id}[$extrapolations];
+${vector.type}* _T1_${vector.id}[$extrapolations];
+
+  @for $i in range(0, $extrapolations)
+_T0_${vector.id}[$i] = _rerow_T0_${i}_${vector.id};
+_T1_${vector.id}[$i] = _rerow_T1_${i}_${vector.id};
+  @end for
+
+${vector.type}** _Tprev_${vector.id} = _T0_${vector.id};
+${vector.type}** _Tcurr_${vector.id} = _T1_${vector.id};
+${vector.type}* _result_${vector.id};
+
+  @end for
+
+${copyVectors($integrationVectors, '_re_reset')}@slurp
+
+ at end def
+
+@*
+  Function prototypes
+*@
+ at def functionPrototypes
+  @#
+  @super
+  @#
+  @for $vector in $integrationVectors
+void _segment${segmentNumber}_${vector.id}_reset(${vector.type}* _reset_to);
+  @end for
+  @#
+ at end def
+
+ at def segmentFunctionBody($function) @* Overrides segmentFunctionBody of FixedStep *@
+  @#
+${createStepVariable}@slurp
+  @#
+  @set $featureOrderingOuter = ['Stochastic']
+${insertCodeForFeatures('integrateFixedStepBegin', featureOrderingOuter)}@slurp
+
+${allocate}@slurp
+${initialise}@slurp
+${localInitialise}@slurp
+
+for (long _istep = 0; _istep < ${stepCount}; _istep++) {
+  @# Insert code for features
+  @set $featureOrderingInner = ['Output', 'ErrorCheck', 'Stochastic']
+  @#
+  @set $dict = {'extraIndent': 0}
+  ${insertCodeForFeatures('integrateFixedStepInnerLoopBegin', featureOrderingInner, dict), autoIndent=True}@slurp
+  @set $extraIndent = $dict.extraIndent
+  
+  ${preSingleStep, autoIndent=True, extraIndent=extraIndent}@slurp
+  ${richardsonExtrapolate(function), autoIndent=True, extraIndent=extraIndent}@slurp
+  ${postSingleStep, autoIndent=True, extraIndent=extraIndent}@slurp
+  
+  @if $cross
+    @# If we are cross-integrating, then we now need to copy our result back
+    @# into the original arrays for the integration vectors
+  ${copyResultIntoIntegrationArrays, autoIndent=True, extraIndent=extraIndent}@slurp
+  
+  @end if
+  @#
+  ${insertCodeForFeaturesInReverseOrder('integrateFixedStepInnerLoopEnd', featureOrderingInner, dict), autoIndent=True}@slurp
+}
+
+${localFinalise}@slurp
+${finalise}@slurp
+${free}@slurp
+
+${insertCodeForFeaturesInReverseOrder('integrateFixedStepEnd', featureOrderingOuter)}@slurp
+  @#
+ at end def
+
+ at def richardsonExtrapolate($function)
+  @#
+long _k = 0;
+long _max_integration_steps = 0;
+
+long _istep_temp = _istep;
+real _step_temp = _step;
+real _${propagationDimension}_temp = ${propagationDimension};
+
+for (_k = 0; _k < $extrapolations; _k++)
+{
+  // Swap active rows
+  {
+  @for $vector in $integrationVectors
+    ${vector.type}** _temp_${vector.id} = _Tprev_${vector.id};
+    _Tprev_${vector.id} = _Tcurr_${vector.id};
+    _Tcurr_${vector.id} = _temp_${vector.id};
+  @end for
+  }
+  
+  long _nk = 2 * (_k + 1);
+  _max_integration_steps = _nk;
+  
+  _step = _step_temp / _nk;
+  
+  ${propagationDimension} = _${propagationDimension}_temp;
+  
+  for (_istep = 0; _istep < _nk; _istep++) {
+    ${stepper.singleIntegrationStep(function), autoIndent=True}@slurp
+  }
+  _istep = _istep_temp;
+  _step = _step_temp;
+  
+  @for $vector in $integrationVectors
+  _result_${vector.id} = _Tcurr_${vector.id}[0];
+  @end for
+  
+  ${copyVectors($integrationVectors, '_result', '_active'), autoIndent=True}@slurp
+  
+  for (long _j = 0; _j < _k; _j++)
+  {
+    real _nksubj = 2 * (_k - _j);
+    real _denominator = pow(((real)_nk) / _nksubj, 2) - 1.0;
+    
+    @for $vector in $integrationVectors
+    ${vector.type}* const _TcurrJPlusOne_${vector.id} = _Tcurr_${vector.id}[_j+1];
+    ${vector.type}* const _TcurrJ_${vector.id} = _Tcurr_${vector.id}[_j];
+    ${vector.type}* const _TprevJ_${vector.id} = _Tprev_${vector.id}[_j];
+    @end for
+    
+    ${loopOverVectorsWithInnerContentTemplate($integrationVectors,
+"""_TcurrJPlusOne_${vector.id}[$index] = _TcurrJ_${vector.id}[$index] + (_TcurrJ_${vector.id}[$index] - _TprevJ_${vector.id}[$index]) / _denominator;
+""", basis = $homeBasis), autoIndent=True}@slurp
+  }
+  
+  // Reset
+  ${copyVectors($integrationVectors, '_active', '_re_reset'), autoIndent=True}@slurp
+}
+
+  @for $vector in $integrationVectors
+_result_${vector.id} = _Tcurr_${vector.id}[_k-1];
+  @end for
+
+${copyVectors($integrationVectors, '_active', '_result')}@slurp
+${copyVectors($integrationVectors, '_re_reset', '_active')}@slurp
+${propagationDimension} = _${propagationDimension}_temp + _step;
+
+  @#
+ at end def
diff --git a/xpdeint/Segments/Integrators/SICStepper.py b/xpdeint/Segments/Integrators/SICStepper.py
index d55a8ce..6242114 100644
--- a/xpdeint/Segments/Integrators/SICStepper.py
+++ b/xpdeint/Segments/Integrators/SICStepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.927649
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/SICStepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652444.442779
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/SICStepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -96,7 +96,7 @@ class SICStepper(_Stepper):
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 34, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 33, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -113,83 +113,83 @@ class SICStepper(_Stepper):
         
         # 
         arguments = {'_step': '_step', VFFSL(SL,"propagationDimension",True): VFFSL(SL,"propagationDimension",True)}
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}" on line 37, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}")) # from line 37, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 36, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 36, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 39, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 39, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 38, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 38, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 41, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 41, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 40, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 40, col 1.
         write(u''' += 0.5*_step;
 
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 43, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 43, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 42, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 42, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_oldcopy') # u"${copyVectors($integrationVectors, '_oldcopy')}" on line 45, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_oldcopy')}")) # from line 45, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_oldcopy') # u"${copyVectors($integrationVectors, '_oldcopy')}" on line 44, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_oldcopy')}")) # from line 44, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 47, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 46, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 48, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 48, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 48, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 48, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 25.
             write(u''';
 ''')
         write(u'''
 for (int _iteration = 0; _iteration < ''')
-        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 51, col 39
-        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 51, col 39.
+        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 50, col 39
+        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 50, col 39.
         write(u'''; _iteration++) {
   if (_iteration < ''')
-        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 52, col 20
-        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 52, col 20.
+        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 51, col 20
+        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 51, col 20.
         write(u''' - 1) {
 ''')
-        if VFFSL(SL,"integrator.leftOperatorContainer",True): # generated from line 53, col 3
+        if VFFSL(SL,"integrator.leftOperatorContainer",True): # generated from line 52, col 3
             write(u'''    ''')
-            _v = VFFSL(SL,"callFunction",False)('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 54, col 5
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 54, col 5.
-        if VFFSL(SL,"integrator.rightOperatorContainer",True): # generated from line 56, col 3
+            _v = VFFSL(SL,"callFunction",False)('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 53, col 5
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('leftDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 53, col 5.
+        if VFFSL(SL,"integrator.rightOperatorContainer",True): # generated from line 55, col 3
             write(u'''    ''')
-            _v = VFFSL(SL,"callFunction",False)('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 57, col 5
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 57, col 5.
+            _v = VFFSL(SL,"callFunction",False)('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 56, col 5
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('rightDeltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 56, col 5.
         write(u'''  } else {
     ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}" on line 60, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}")) # from line 60, col 5.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}" on line 59, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}")) # from line 59, col 5.
         write(u'''    
     ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 62, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 62, col 5.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 61, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 61, col 5.
         write(u'''    
     ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """// a = oldcopy + a
 _${vector.id}[$index] += _oldcopy_${vector.id}[$index];
 """, basis=VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = oldcopy + a\n_${vector.id}[$index] += _oldcopy_${vector.id}[$index];\n""", basis=$homeBasis), autoIndent=True}')) # from line 64, col 5.
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = oldcopy + a\n_${vector.id}[$index] += _oldcopy_${vector.id}[$index];\n""", basis=$homeBasis), autoIndent=True}')) # from line 63, col 5.
         write(u'''  }
   
 }
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 72, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 72, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 71, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 71, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 74, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 74, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 73, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 73, col 1.
         write(u''' += 0.5*_step;
 
 ''')
@@ -271,8 +271,6 @@ _${vector.id}[$index] += _oldcopy_${vector.id}[$index];
 
     ipPropagationStepFractions = ['0.5']
 
-    nonconstantIPFields = 1
-
     extraIntegrationArrayNames = ['oldcopy']
 
     isCrossCapable = False
diff --git a/xpdeint/Segments/Integrators/SICStepper.tmpl b/xpdeint/Segments/Integrators/SICStepper.tmpl
index 22c550e..d70c5ab 100644
--- a/xpdeint/Segments/Integrators/SICStepper.tmpl
+++ b/xpdeint/Segments/Integrators/SICStepper.tmpl
@@ -23,7 +23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def name: SIC
 @attr $ipPropagationStepFractions = ['0.5']
- at attr $nonconstantIPFields = 1
 @attr $extraIntegrationArrayNames = ['oldcopy']
 @attr $isCrossCapable = False
 @attr $iterations = 3
@@ -34,7 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 @def singleIntegrationStep($function)
   @#
   @set $arguments = {'_step': '_step', $propagationDimension: $propagationDimension}
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}
 
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
 
diff --git a/xpdeint/Segments/Integrators/SIStepper.py b/xpdeint/Segments/Integrators/SIStepper.py
index 9f1a0ae..4ba694d 100644
--- a/xpdeint/Segments/Integrators/SIStepper.py
+++ b/xpdeint/Segments/Integrators/SIStepper.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322832.911266
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:32 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/Integrators/SIStepper.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652444.387261
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/SIStepper.tmpl'
+__CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -96,7 +96,7 @@ class SIStepper(_Stepper):
 
 
 
-        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 34, col 1.
+        ## CHEETAH: generated from @def singleIntegrationStep($function) at line 33, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -113,83 +113,83 @@ class SIStepper(_Stepper):
         
         # 
         arguments = {'_step': '_step', VFFSL(SL,"propagationDimension",True): VFFSL(SL,"propagationDimension",True)}
-        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}" on line 37, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}")) # from line 37, col 1.
+        _v = VFFSL(SL,"callFunction",False)('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function) # u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}" on line 36, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}")) # from line 36, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 39, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 39, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 38, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 38, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 41, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 41, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 40, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 40, col 1.
         write(u''' += 0.5*_step;
 
 ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 43, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 43, col 1.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis)}' on line 42, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis)}')) # from line 42, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_oldCopy') # u"${copyVectors($integrationVectors, '_oldCopy')}" on line 45, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_oldCopy')}")) # from line 45, col 1.
+        _v = VFFSL(SL,"copyVectors",False)(VFFSL(SL,"integrationVectors",True), '_oldCopy') # u"${copyVectors($integrationVectors, '_oldCopy')}" on line 44, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${copyVectors($integrationVectors, '_oldCopy')}")) # from line 44, col 1.
         write(u'''
 ''')
-        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 47, col 3
+        for vector in VFFSL(SL,"integrationVectors",True): # generated from line 46, col 3
             write(u'''_active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 48, col 9
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 48, col 9.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 9
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 9.
             write(u''' = _''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 48, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 48, col 25.
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 47, col 25
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 47, col 25.
             write(u''';
 ''')
         write(u'''
 ''')
-        if VFFSL(SL,"cross",True): # generated from line 51, col 3
+        if VFFSL(SL,"cross",True): # generated from line 50, col 3
             write(u'''// Interpolate dependencies to the half-step
 ''')
-            _v = VFFSL(SL,"interpolateDependencies",True) # u'${interpolateDependencies}' on line 53, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${interpolateDependencies}')) # from line 53, col 1.
+            _v = VFFSL(SL,"interpolateDependencies",True) # u'${interpolateDependencies}' on line 52, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${interpolateDependencies}')) # from line 52, col 1.
         write(u'''
 for (int _iteration = 0; _iteration < ''')
-        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 56, col 39
-        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 56, col 39.
+        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 55, col 39
+        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 55, col 39.
         write(u'''; _iteration++) {
   if (_iteration < ''')
-        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 57, col 20
-        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 57, col 20.
+        _v = VFFSL(SL,"iterations",True) # u'${iterations}' on line 56, col 20
+        if _v is not None: write(_filter(_v, rawExpr=u'${iterations}')) # from line 56, col 20.
         write(u''' - 1) {
     ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('deltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 58, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 58, col 5.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, _step = '0.5*_step', parentFunction=function) # u"${callFunction('deltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}" on line 57, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, _step = '0.5*_step', parentFunction=function), autoIndent=True}")) # from line 57, col 5.
         write(u'''  } else {
     ''')
-        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}" on line 60, col 5
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}")) # from line 60, col 5.
+        _v = VFFSL(SL,"callFunction",False)('deltaA', arguments, parentFunction=function) # u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}" on line 59, col 5
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${callFunction('deltaA', arguments, parentFunction=function), autoIndent=True}")) # from line 59, col 5.
         write(u'''  }
   
   ''')
-        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 63, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 63, col 3.
+        _v = VFFSL(SL,"transformVectorsToBasis",False)(VFFSL(SL,"integrationVectors",True), VFFSL(SL,"homeBasis",True)) # u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}' on line 62, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${transformVectorsToBasis($integrationVectors, $homeBasis), autoIndent=True}')) # from line 62, col 3.
         write(u'''  
   ''')
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)(VFFSL(SL,"integrationVectors",True),
 """// a = oldCopy + a
 _${vector.id}[$index] += _oldCopy_${vector.id}[$index];
 """, basis=VFFSL(SL,"homeBasis",True))
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = oldCopy + a\n_${vector.id}[$index] += _oldCopy_${vector.id}[$index];\n""", basis=$homeBasis), autoIndent=True}')) # from line 65, col 3.
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${loopOverVectorsWithInnerContentTemplate($integrationVectors,\n"""// a = oldCopy + a\n_${vector.id}[$index] += _oldCopy_${vector.id}[$index];\n""", basis=$homeBasis), autoIndent=True}')) # from line 64, col 3.
         write(u'''}
 
 ''')
-        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 71, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 71, col 1.
+        _v = VFFSL(SL,"callFunction",False)('ipEvolve', arguments, _exponent = +1, parentFunction=function) # u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}" on line 70, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}")) # from line 70, col 1.
         write(u'''
 
 ''')
-        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 73, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 73, col 1.
+        _v = VFFSL(SL,"propagationDimension",True) # u'${propagationDimension}' on line 72, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${propagationDimension}')) # from line 72, col 1.
         write(u''' += 0.5*_step;
 
 ''')
@@ -205,7 +205,7 @@ _${vector.id}[$index] += _oldCopy_${vector.id}[$index];
 
 
 
-        ## CHEETAH: generated from @def interpolateDependencies at line 78, col 1.
+        ## CHEETAH: generated from @def interpolateDependencies at line 77, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -229,7 +229,7 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
     0.5*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]
        + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]);
 """)
-        if _v is not None: write(_filter(_v, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    0.5*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n       + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]);\n""")}')) # from line 82, col 1.
+        if _v is not None: write(_filter(_v, rawExpr=u'${reducedFieldCopy($integrator.dependencyMap, \n"""\n_active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentIndex}] = \\\\\n    0.5*(_active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex}]\n       + _active_${vector.id}[_${vector.id}_index_pointer + ${componentIndex} + ${skipSize} * _${vector.id}_ncomponents]);\n""")}')) # from line 81, col 1.
         # 
         
         ########################################
@@ -310,8 +310,6 @@ _active_${reducedVector.id}[_${reducedVector.id}_index_pointer + ${componentInde
 
     ipPropagationStepFractions = ['0.5']
 
-    nonconstantIPFields = 1
-
     extraIntegrationArrayNames = ['oldCopy']
 
     isCrossCapable = True
diff --git a/xpdeint/Segments/Integrators/SIStepper.tmpl b/xpdeint/Segments/Integrators/SIStepper.tmpl
index 281ac30..453e13d 100644
--- a/xpdeint/Segments/Integrators/SIStepper.tmpl
+++ b/xpdeint/Segments/Integrators/SIStepper.tmpl
@@ -23,7 +23,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def name: SI
 @attr $ipPropagationStepFractions = ['0.5']
- at attr $nonconstantIPFields = 1
 @attr $extraIntegrationArrayNames = ['oldCopy']
 @attr $isCrossCapable = True
 @attr $iterations = 3
@@ -34,7 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 @def singleIntegrationStep($function)
   @#
   @set $arguments = {'_step': '_step', $propagationDimension: $propagationDimension}
-${callFunction('nonconstantIPFields', arguments, _exponent = 1, _arrayIndex = 0, parentFunction=function)}
+${callFunction('nonconstantIPFields', arguments, _exponent = 1, parentFunction=function)}
 
 ${callFunction('ipEvolve', arguments, _exponent = +1, parentFunction=function)}
 
diff --git a/xpdeint/Segments/Integrators/_Integrator.py b/xpdeint/Segments/Integrators/_Integrator.py
index cf967e9..c1251a4 100644
--- a/xpdeint/Segments/Integrators/_Integrator.py
+++ b/xpdeint/Segments/Integrators/_Integrator.py
@@ -35,6 +35,7 @@ from itertools import chain
 class _Integrator (_Segment):
   
   canBeInitialisedEarly = True
+  supportsConstantIPOperators = True
   
   def __init__(self, stepperClass, *args, **KWs):
     _Segment.__init__(self, *args, **KWs)
@@ -66,7 +67,7 @@ class _Integrator (_Segment):
                                           returnType = 'inline void')
     
     self.functions['nonconstantIPFields'] = Function(name = functionNamePrefix + '_calculate_nonconstant_ip_fields',
-                                                     args = [('real', '_step'), ('int', '_exponent'), ('int', '_arrayIndex')],
+                                                     args = [('real', '_step'), ('int', '_exponent')],
                                                      implementation = self.nonconstantIPFieldsFunctionBody,
                                                      returnType = 'inline void')
     
@@ -106,10 +107,6 @@ class _Integrator (_Segment):
     return self.stepper.ipPropagationStepFractions
   
   @lazy_property
-  def nonconstantIPFields(self):
-    return self.stepper.nonconstantIPFields
-  
-  @lazy_property
   def stepCount(self):
     return leastCommonMultiple([sample for sample in self.samples])
   
diff --git a/xpdeint/Segments/Integrators/_RichardsonFixedStep.py b/xpdeint/Segments/Integrators/_RichardsonFixedStep.py
new file mode 100644
index 0000000..c9f3a37
--- /dev/null
+++ b/xpdeint/Segments/Integrators/_RichardsonFixedStep.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+# encoding: utf-8
+"""
+_RichardsonFixedStep.py
+
+Created by Graham Dennis on 2013-11-21.
+
+Copyright (c) 2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+
+from xpdeint.Segments.Integrators.FixedStep import FixedStep
+
+
+class _RichardsonFixedStep(FixedStep):
+  
+  extrapolations = 4
+  
+  def preflight(self):
+    super(_RichardsonFixedStep, self).preflight()
+    
+    self.extraIntegrationArrayNames.extend(['rerow_T%i_%i' % (i, j) for j in range(self.extrapolations) for i in range(2)])
+    self.extraIntegrationArrayNames.append('re_reset')
+  
\ No newline at end of file
diff --git a/xpdeint/Segments/Integrators/__init__.py b/xpdeint/Segments/Integrators/__init__.py
index 830d52c..f33afef 100644
--- a/xpdeint/Segments/Integrators/__init__.py
+++ b/xpdeint/Segments/Integrators/__init__.py
@@ -2,10 +2,12 @@
 import FixedStep
 import FixedStepWithCross
 import AdaptiveStep
+import RichardsonFixedStep
 
 import RK4Stepper
 import RK9Stepper
 import RK45Stepper
 import RK89Stepper
 import SIStepper
-import SICStepper
\ No newline at end of file
+import SICStepper
+import MMStepper
diff --git a/xpdeint/Segments/SequenceSegment.py b/xpdeint/Segments/SequenceSegment.py
index 7e1edf6..ca18809 100644
--- a/xpdeint/Segments/SequenceSegment.py
+++ b/xpdeint/Segments/SequenceSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.035691
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/SequenceSegment.tmpl'
+__CHEETAH_genTime__ = 1389652444.325117
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/SequenceSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/TopLevelSequenceElement.py b/xpdeint/Segments/TopLevelSequenceElement.py
index 34293f3..34fa7f0 100644
--- a/xpdeint/Segments/TopLevelSequenceElement.py
+++ b/xpdeint/Segments/TopLevelSequenceElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.096215
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Segments/TopLevelSequenceElement.tmpl'
+__CHEETAH_genTime__ = 1389652444.887542
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/TopLevelSequenceElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Simulation.py b/xpdeint/Simulation.py
index 188a64b..5a28e01 100644
--- a/xpdeint/Simulation.py
+++ b/xpdeint/Simulation.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.105078
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Simulation.tmpl'
-__CHEETAH_srcLastModified__ = 'Thu Jun  6 17:05:13 2013'
+__CHEETAH_genTime__ = 1389652444.689452
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Simulation.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:18 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -69,7 +69,7 @@ class Simulation(ScriptElement):
 
 
 
-        ## CHEETAH: generated from @def logFunctionInnerContent at line 209, col 1.
+        ## CHEETAH: generated from @def logFunctionInnerContent at line 210, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -163,6 +163,15 @@ fflush(stdout); \\
         if _v is not None: write(_filter(_v, rawExpr=u"${features['Driver'].logLevelsBeingLogged}")) # from line 47, col 35.
         write(u''')
 
+#define real Re
+#define imag Im
+
+#include <complex>
+
+#undef real
+#undef imag
+
+
 #include <stdio.h>
 
 ''')
@@ -173,15 +182,15 @@ fflush(stdout); \\
 ''')
         dict = {'extraIndent': 0}
         write(u'''      ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('logFunctionBegin', VFFSL(SL,"featureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeatures('logFunctionBegin', $featureOrdering, $dict), autoIndent=True}" on line 56, col 7
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('logFunctionBegin', $featureOrdering, $dict), autoIndent=True}")) # from line 56, col 7.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('logFunctionBegin', VFFSL(SL,"featureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeatures('logFunctionBegin', $featureOrdering, $dict), autoIndent=True}" on line 65, col 7
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('logFunctionBegin', $featureOrdering, $dict), autoIndent=True}")) # from line 65, col 7.
         extraIndent = dict['extraIndent']
         write(u'''      ''')
-        _v = VFFSL(SL,"logFunctionInnerContent",True) # u'${logFunctionInnerContent, autoIndent=True, extraIndent=extraIndent}' on line 58, col 7
-        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${logFunctionInnerContent, autoIndent=True, extraIndent=extraIndent}')) # from line 58, col 7.
+        _v = VFFSL(SL,"logFunctionInnerContent",True) # u'${logFunctionInnerContent, autoIndent=True, extraIndent=extraIndent}' on line 67, col 7
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${logFunctionInnerContent, autoIndent=True, extraIndent=extraIndent}')) # from line 67, col 7.
         write(u'''      ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('logFunctionEnd', VFFSL(SL,"featureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeaturesInReverseOrder('logFunctionEnd', $featureOrdering, $dict), autoIndent=True}" on line 59, col 7
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('logFunctionEnd', $featureOrdering, $dict), autoIndent=True}")) # from line 59, col 7.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('logFunctionEnd', VFFSL(SL,"featureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeaturesInReverseOrder('logFunctionEnd', $featureOrdering, $dict), autoIndent=True}" on line 68, col 7
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('logFunctionEnd', $featureOrdering, $dict), autoIndent=True}")) # from line 68, col 7.
         write(u"""      if (logLevel & (_ERROR_LOG_LEVEL | _NO_ERROR_TERMINATE_LOG_LEVEL)) \\
         exit(logLevel == _ERROR_LOG_LEVEL); \\
     } \\
@@ -216,29 +225,21 @@ fflush(stdout); \\
 #include <algorithm>
 
 """)
-        for child in VFFSL(SL,"children",True): # generated from line 93, col 1
+        for child in VFFSL(SL,"children",True): # generated from line 102, col 1
             #  Prevent writing zero-length defines
             result = VFN(VFFSL(SL,"child",True),"implementationsForFunctionName",False)('includes')
-            if VFFSL(SL,"result",True) and not VFN(VFFSL(SL,"result",True),"isspace",False)(): # generated from line 96, col 3
-                _v = VFFSL(SL,"result",True) # u'${result}' on line 97, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'${result}')) # from line 97, col 1.
+            if VFFSL(SL,"result",True) and not VFN(VFFSL(SL,"result",True),"isspace",False)(): # generated from line 105, col 3
+                _v = VFFSL(SL,"result",True) # u'${result}' on line 106, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'${result}')) # from line 106, col 1.
                 write(u'''
 ''')
         write(u'''
-#define real Re
-#define imag Im
-
-#include <complex>
-
-#undef real
-#undef imag
-
 ''')
         realType = {'single': 'float', 'double': 'double'}[VFFSL(SL,"precision",True)]
         write(u'''typedef long integer;
 typedef ''')
-        _v = VFFSL(SL,"realType",True) # u'${realType}' on line 112, col 9
-        if _v is not None: write(_filter(_v, rawExpr=u'${realType}')) # from line 112, col 9.
+        _v = VFFSL(SL,"realType",True) # u'${realType}' on line 113, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'${realType}')) # from line 113, col 9.
         write(u""" real;
 typedef std::complex<real> XMDSComplexType;
 
@@ -264,19 +265,19 @@ inline void *xmds_malloc(size_t size);
 // ********************************************************
 """)
         #  only loop over the elements that implement the defines function
-        for child in VFFSL(SL,"children",True): # generated from line 136, col 1
+        for child in VFFSL(SL,"children",True): # generated from line 137, col 1
             #  Prevent writing zero-length defines
             result = VFN(VFFSL(SL,"child",True),"implementationsForFunctionName",False)('defines')
-            if result and not result.isspace(): # generated from line 139, col 3
+            if result and not result.isspace(): # generated from line 140, col 3
                 write(u'''
 // ********************************************************
 //   ''')
-                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 142, col 6
-                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 142, col 6.
+                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 143, col 6
+                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 143, col 6.
                 write(u''' defines
 ''')
-                _v = VFFSL(SL,"result",True) # u'$result' on line 143, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 143, col 1.
+                _v = VFFSL(SL,"result",True) # u'$result' on line 144, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 144, col 1.
         write(u'''
 
 // ********************************************************
@@ -285,19 +286,19 @@ inline void *xmds_malloc(size_t size);
 
 ''')
         #  only loop over the elements that implement the globals function
-        for child in VFFSL(SL,"children",True): # generated from line 153, col 1
+        for child in VFFSL(SL,"children",True): # generated from line 154, col 1
             #  Prevent writing zero-length globals
             result = VFN(VFFSL(SL,"child",True),"implementationsForFunctionName",False)('globals')
-            if result and not result.isspace(): # generated from line 156, col 3
+            if result and not result.isspace(): # generated from line 157, col 3
                 write(u'''
 // ********************************************************
 //   ''')
-                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 159, col 6
-                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 159, col 6.
+                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 160, col 6
+                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 160, col 6.
                 write(u''' globals
 ''')
-                _v = VFFSL(SL,"result",True) # u'$result' on line 160, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 160, col 1.
+                _v = VFFSL(SL,"result",True) # u'$result' on line 161, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 161, col 1.
         write(u'''
 
 // ********************************************************
@@ -305,26 +306,26 @@ inline void *xmds_malloc(size_t size);
 // ********************************************************
 ''')
         #  only loop over the elements that implement the prototypes function
-        for child in VFFSL(SL,"children",True): # generated from line 169, col 1
+        for child in VFFSL(SL,"children",True): # generated from line 170, col 1
             #  Prevent writing zero-length globals
             result = VFN(VFFSL(SL,"child",True),"implementationsForFunctionName",False)('functionPrototypes')
-            if result and not result.isspace(): # generated from line 172, col 3
+            if result and not result.isspace(): # generated from line 173, col 3
                 write(u'''
 // ********************************************************
 //   ''')
-                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 175, col 6
-                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 175, col 6.
+                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 176, col 6
+                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 176, col 6.
                 write(u''' function prototypes
 ''')
-                _v = VFFSL(SL,"result",True) # u'$result' on line 176, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 176, col 1.
+                _v = VFFSL(SL,"result",True) # u'$result' on line 177, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 177, col 1.
         write(u'''
 // ********************************************************
 // MAIN ROUTINE
 // ********************************************************
 ''')
-        _v = VFFSL(SL,"features.Driver.mainRoutine",True) # u'$features.Driver.mainRoutine' on line 183, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'$features.Driver.mainRoutine')) # from line 183, col 1.
+        _v = VFFSL(SL,"features.Driver.mainRoutine",True) # u'$features.Driver.mainRoutine' on line 184, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'$features.Driver.mainRoutine')) # from line 184, col 1.
         write(u'''
 // ********************************************************
 // FUNCTION IMPLEMENTATIONS
@@ -340,19 +341,19 @@ inline void *xmds_malloc(size_t size)
 
 ''')
         #  only loop over the elements that implement the prototypes function
-        for child in VFFSL(SL,"children",True): # generated from line 198, col 1
+        for child in VFFSL(SL,"children",True): # generated from line 199, col 1
             #  Prevent writing zero-length function implementations
             result = VFN(VFFSL(SL,"child",True),"implementationsForFunctionName",False)('functionImplementations')
-            if result and not result.isspace(): # generated from line 201, col 3
+            if result and not result.isspace(): # generated from line 202, col 3
                 write(u'''
 // ********************************************************
 //   ''')
-                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 204, col 6
-                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 204, col 6.
+                _v = VFFSL(SL,"child.description",True) # u'$child.description' on line 205, col 6
+                if _v is not None: write(_filter(_v, rawExpr=u'$child.description')) # from line 205, col 6.
                 write(u''' function implementations
 ''')
-                _v = VFFSL(SL,"result",True) # u'$result' on line 205, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 205, col 1.
+                _v = VFFSL(SL,"result",True) # u'$result' on line 206, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'$result')) # from line 206, col 1.
         write(u'''
 ''')
         
diff --git a/xpdeint/Simulation.tmpl b/xpdeint/Simulation.tmpl
index 245f9bf..898bd03 100644
--- a/xpdeint/Simulation.tmpl
+++ b/xpdeint/Simulation.tmpl
@@ -46,6 +46,15 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define _ALL_LOG_LEVELS        _SAMPLE_LOG_LEVEL|_SEGMENT_LOG_LEVEL|_PATH_LOG_LEVEL|_SIMULATION_LOG_LEVEL|_WARNING_LOG_LEVEL|_ERROR_LOG_LEVEL|_NO_ERROR_TERMINATE_LOG_LEVEL
 #define _LOG_LEVELS_BEING_LOGGED (${features['Driver'].logLevelsBeingLogged})
 
+#define real Re
+#define imag Im
+
+#include <complex>
+
+#undef real
+#undef imag
+
+
 #include <stdio.h>
 
 @set $featureOrdering = ['Driver']
@@ -99,14 +108,6 @@ ${result}@slurp
   @end if
 @end for
 
-#define real Re
-#define imag Im
-
-#include <complex>
-
-#undef real
-#undef imag
-
 @set $realType = {'single': 'float', 'double': 'double'}[$precision]
 typedef long integer;
 typedef ${realType} real;
diff --git a/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py
new file mode 100644
index 0000000..055d6d4
--- /dev/null
+++ b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py
@@ -0,0 +1,773 @@
+#!/usr/bin/env python
+
+
+
+
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from xpdeint.SimulationDrivers.MPIMultiPathDriver import MPIMultiPathDriver
+
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
+__CHEETAH_genTime__ = 1389652444.980388
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Nov 18 20:57:44 2013'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
+
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
+
+##################################################
+## CLASSES
+
+class AdaptiveMPIMultiPathDriver(MPIMultiPathDriver):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(AdaptiveMPIMultiPathDriver, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def description(self, **KWS):
+
+
+
+        ## Generated from @def description: Adaptive MPI Multipath Simulation Driver at line 25, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        write(u'''Adaptive MPI Multipath Simulation Driver''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def seedOffset(self, dict, **KWS):
+
+
+
+        ## CHEETAH: generated from @def seedOffset($dict) at line 31, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u''' + _rank + (_size * _batches_run)''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def segment0_loop(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segment0_loop at line 37, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''for (long _i0 = ''')
+        _v = VFFSL(SL,"pathLoopStart",True) # u'${pathLoopStart}' on line 39, col 17
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStart}')) # from line 39, col 17.
+        write(u'''; _i0 < ''')
+        _v = VFFSL(SL,"pathLoopEnd",True) # u'${pathLoopEnd}' on line 39, col 41
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopEnd}')) # from line 39, col 41.
+        write(u'''; _i0+=''')
+        _v = VFFSL(SL,"pathLoopStep",True) # u'${pathLoopStep}' on line 39, col 62
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStep}')) # from line 39, col 62.
+        write(u''') {
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def runningSimulationCode(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def runningSimulationCode at line 43, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''if (_size > 1){
+  if (_rank == 0)
+    _master();
+  else
+    _slave();
+  
+  _reduce();
+}
+else
+{
+  _local_schedule = _n_paths;
+  _segment0();
+}
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def segment0End(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segment0End at line 61, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def functionPrototypes(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def functionPrototypes at line 66, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = super(AdaptiveMPIMultiPathDriver, self).functionPrototypes()
+        if _v is not None: write(_filter(_v))
+        # 
+        write(u'''void _master();
+void *_mslave(void *ptr); 
+void _slave();
+
+void _reduce();
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def globals(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def globals at line 78, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = super(AdaptiveMPIMultiPathDriver, self).globals()
+        if _v is not None: write(_filter(_v))
+        # 
+        write(u'''
+pthread_mutex_t tasklock;    /*Ensures mutual exclusion when assigning tasks*/
+pthread_mutex_t finlock;     /*Lock to synchronize completion of thread and master*/
+
+int paths_assigned=0;        /*number of full paths assigned or completed*/
+
+long _local_schedule;        /*current batch size for a slave*/
+long _batches_run=0;         /*number of batches a slave has run*/
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def topLevelSegmentFunctionImplementation(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 93, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''void _segment0()
+{
+  _LOG(_PATH_LOG_LEVEL, "Running %li paths\\n", ''')
+        _v = VFFSL(SL,"pathLoopEnd",True) # u'${pathLoopEnd}' on line 97, col 48
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopEnd}')) # from line 97, col 48.
+        write(u''');
+''')
+        #  And now insert the code for the features that apply in the top level sequence
+        featureOrdering = ['ErrorCheck', 'Stochastic']
+        dict = {'extraIndent': 0}
+        write(u'''  ''')
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 101, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 101, col 3.
+        extraIndent = dict['extraIndent']
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"topLevelSegmentPathLoop",True) # u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}' on line 104, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}')) # from line 104, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 106, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 106, col 3.
+        write(u'''  
+  ''')
+        _v = VFFSL(SL,"segment0End",True) # u'${segment0End}' on line 108, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${segment0End}')) # from line 108, col 3.
+        write(u'''
+}
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def functionImplementations(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def functionImplementations at line 113, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = super(AdaptiveMPIMultiPathDriver, self).functionImplementations()
+        if _v is not None: write(_filter(_v))
+        # 
+        write(u'''
+void _reduce()
+{
+  ''')
+        _v = VFFSL(SL,"segment0ReduceBlock",True) # u'${segment0ReduceBlock}' on line 120, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${segment0ReduceBlock}')) # from line 120, col 3.
+        write(u'''
+}
+
+void _master() 
+{  
+  int outstanding = 0;        /*number of slaves that are still processing tasks*/
+  int *schedule = new int[_size];        /*Batch size scheduled for each slave [reset every iteration]*/
+  double *timing = new double[_size];       /*Timing function to determine computation to communication ratio*/
+  int *partitions = new int[_size];      /*Batch size scheduled for each slave [resetted after completion]*/
+
+  int i, j;                   /*indexes*/
+
+  MPI_Status *stats = new MPI_Status[_size];    /*MPI Structures*/
+  MPI_Request *reqs = new MPI_Request[_size];
+  int *indices = new int[_size];
+  int ndone;
+  double *bufs = new double[_size];         /*MPI Input buffer*/
+  
+  int *slave_stat = new int[_size];
+  double *throughput = new double[_size];
+  double *commave = new double[_size];
+
+  double schedtime=0.0;      /*time spent deciding and dispatching schedules*/
+  double commtime=0.0;       /*index for communication latency*/
+  double totaltime=0.0;      /*index for seconds per schedule*/
+  double totalcommtime=0.0;  /*total communication latency*/
+  double paratime=0.0;       /*total parallel walltime for slaves excluding mslave*/
+
+  /************* Scheduling Parameters **************/
+  double calpha = 0.2;        /*weighting for communication average*/
+  double talpha = 0.2;        /*weighting for throughput average*/
+
+  double epsilon = 0.005;     /*maximum tolerated communication overhead*/
+  double lower = 2.0;         /*minimum tolerated resolution in seconds*/
+  double upper = 10.0;        /*maximum tolerated resolution seconds*/
+  /***************************************************/
+
+  double tp1, tp2;
+
+  //Initialise slave status arrays
+  for (i=0; i<_size; i++){
+    slave_stat[i]=0;
+    partitions[i]=0;
+    commave[i]=0.0;
+    throughput[i]=0.0;
+  }
+
+  //pthread is always busy doing something
+  slave_stat[0] = 1;
+
+  /************* PThread Initialization **************/
+  pthread_t helper;
+  
+  //Initialise mutual exclusion mechanism
+  pthread_mutex_init(&tasklock, NULL);
+  pthread_mutex_init(&finlock, NULL);
+  pthread_mutex_lock(&finlock);
+
+  //Create a thread to act as a slave
+  if (pthread_create(&helper, NULL, _mslave, NULL)!=0)
+    _LOG(_ERROR_LOG_LEVEL, "Thread creation failed\\n");
+  
+  //Listen for messages from all slaves
+  for (i=0; i<_size; i++){
+    MPI_Irecv(&bufs[i], 1, MPI_DOUBLE, i, MPI_ANY_TAG, MPI_COMM_WORLD, &reqs[i]);
+  }
+  
+  //Loop until all paths are finished, and all results recieved
+  //      -Test for messages from slaves
+  //      -Determine path schedule for idle slaves
+  //      -Send schedule to slaves
+  
+  /**************LISTEN FOR "TASKS COMPLETED" MESSAGES FROM SLAVES*******************/
+  
+  while (paths_assigned < _n_paths || outstanding > 0){
+    
+    //Wait for messages from slaves
+    if (outstanding > 0){
+      MPI_Waitsome(_size, reqs, &ndone, indices, stats);
+      
+      for (i=0; i<ndone; i++){
+        //Deal with incoming messages
+        j = indices[i];
+
+        //Dynamically determine bandwidth and throughput
+        totaltime = MPI_Wtime() - timing[j];
+        commtime = totaltime - bufs[j];
+
+        //Calculate average communication time and average throughput
+        if (commave[j] == 0.0){
+          commave[j] = commtime;
+          throughput[j] = partitions[j]/totaltime;
+        }
+        else {
+          commave[j] = commave[j] * (1 - calpha) + (commtime * calpha);
+          throughput[j] = throughput[j] * (1 - talpha) + (partitions[j] / totaltime) * talpha;
+        }
+        
+        totalcommtime += commtime;
+        paratime += totaltime;
+        slave_stat[j] = 0;
+        outstanding--;
+        MPI_Irecv(&bufs[j], 1, MPI_DOUBLE, j, MPI_ANY_TAG, MPI_COMM_WORLD, &reqs[j]);
+      }
+    }
+    
+    // If no more tasks need to be assigned continue to listen for messages from slaves
+    if (paths_assigned >= _n_paths)
+      continue;
+    
+    /********************SCHEDULE MORE TASKS FOR IDLE SLAVES***********************/
+    
+    for (i=0; i<_size; i++){
+      schedule[i]=0;
+    }
+    tp1 = MPI_Wtime();
+
+    //allocate tasks to free processors
+    //scheduling must be mutually exclusive as the slave thread
+    //also modifies the global variables below for self-scheduling
+    pthread_mutex_lock(&tasklock);
+    
+    for (i=1; i<_size; i++){
+      if (paths_assigned >= _n_paths)
+        break;
+      
+      //only allocate more tasks to slaves that are idle
+      if (slave_stat[i] == 0){
+        slave_stat[i]=1;
+        
+        //Determine new batch size based on slave throughput and
+        //communication overhead. Preferable estimated computing times
+        //for each schedule is high enough to reduce comm overhead
+        //and between upper and lower
+        partitions[i] = (int) (MAX((commave[i]*throughput[i])/epsilon, throughput[i]*lower));
+        partitions[i] = (int) (MIN(partitions[i], throughput[i]*upper));
+        partitions[i] = (int) (MAX(partitions[i], 1));
+        
+        if (paths_assigned + partitions[i] > _n_paths){
+          partitions[i] = _n_paths - paths_assigned;
+        }
+        
+        schedule[i] = partitions[i];
+        paths_assigned += partitions[i];
+      }
+    }
+    
+    pthread_mutex_unlock(&tasklock);
+    
+    /**************************SEND SCHEDULE TO SLAVE(S)********************/
+    for (i=1; i<_size; i++){
+      if (schedule[i]>0){
+        timing[i] = MPI_Wtime();
+        MPI_Send(&schedule[i], 1, MPI_INT, i, 1, MPI_COMM_WORLD);
+        outstanding++;
+      }
+    }
+    tp2 = MPI_Wtime() - tp1;
+    schedtime += tp2;
+  }
+  
+  //Block until the thread slave has completed processing
+  pthread_mutex_lock(&finlock);
+  
+  //Tell slave processes to Reduce then exit
+  for (i=1; i<_size; i++){
+    MPI_Send(NULL, 0, MPI_INT, i, 0, MPI_COMM_WORLD);
+  }
+
+  //Kill slave thread
+  pthread_cancel(helper);
+  
+  delete[] schedule;
+  delete[] timing;
+  delete[] partitions;
+  delete[] stats;
+  delete[] reqs;
+  delete[] indices;
+  delete[] bufs;
+  delete[] slave_stat;
+  delete[] throughput;
+  delete[] commave;
+}
+
+void *_mslave(void *ptr) 
+{
+  double thr_throughput=0.0; 
+  double thr_time_per_batch=2.0; 
+  double thr_talpha=0.2; 
+  
+  int i; 
+  double tp1, tp2;
+  
+  _local_schedule = 1; 
+  
+  while(paths_assigned < _n_paths)
+  { 
+    //Self schedule more tasks to process
+    tp1 = MPI_Wtime();
+    
+    /********************SCHEDULE MORE TASKS*************************/
+    pthread_mutex_lock(&tasklock);
+    
+    if (paths_assigned >= _n_paths){
+      pthread_mutex_unlock(&tasklock);
+      break;
+    }
+    
+    if (paths_assigned + _local_schedule > _n_paths)
+      _local_schedule = _n_paths - paths_assigned;
+    
+    paths_assigned += _local_schedule;
+    
+    pthread_mutex_unlock(&tasklock);
+    /*****************************************************************/
+    
+    _segment0();
+    
+    _batches_run++;
+    
+    tp2 = MPI_Wtime() - tp1;
+    
+    /********************CALCULATE NEW BATCH SIZE*********************/
+    
+    if (thr_throughput == 0.0)
+      thr_throughput = _local_schedule/tp2;
+    else
+      thr_throughput = (1-thr_talpha)*thr_throughput + thr_talpha * (_local_schedule/tp2);
+    
+    _local_schedule = MAX(1, (int) (thr_throughput * thr_time_per_batch));
+    
+    /*****************************************************************/ 
+  }
+  
+  //Unlocking indicates that the thread slave has finished processing 
+  pthread_mutex_unlock(&finlock);
+  
+  return NULL;
+}
+
+void _slave() 
+{
+  MPI_Status stat;
+  
+  double tp1, tp2;
+  
+  while(1) {
+    //Wait for initial communication from master
+    MPI_Recv(&_local_schedule, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &stat);
+    
+    tp1 = MPI_Wtime();    
+    
+    if (stat.MPI_TAG == 0)
+      break;
+    
+    _segment0();
+    
+    _batches_run++;
+    
+    tp2 = MPI_Wtime() - tp1;
+    
+    //Send completion notice to the master
+    MPI_Send(&tp2, 1, MPI_DOUBLE, 0, stat.MPI_TAG, MPI_COMM_WORLD);
+  }
+  
+  //Tell master that slave is done
+  MPI_Send(NULL, 0, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
+}
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def writeBody(self, **KWS):
+
+
+
+        ## CHEETAH: main method generated for this template
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        # AdaptiveMPIMultiPathDriver.tmpl
+        # 
+        # Created by Liam Madge on 2013-09-20.
+        # Modified by Gregory Bogomiagkov on 2013-10-12
+        # 
+        # Copyright (c) 2008-2013, Graham Dennis
+        # 
+        # This program is free software: you can redistribute it and/or modify
+        # it under the terms of the GNU General Public License as published by
+        # the Free Software Foundation, either version 2 of the License, or
+        # (at your option) any later version.
+        # 
+        # This program is distributed in the hope that it will be useful,
+        # but WITHOUT ANY WARRANTY; without even the implied warranty of
+        # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        # GNU General Public License for more details.
+        # 
+        # You should have received a copy of the GNU General Public License
+        # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+        # 
+        write(u'''
+
+
+
+
+
+
+
+
+
+''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    pathLoopStart = '0'
+
+    pathLoopStep = '1'
+
+    pathLoopEnd = '_local_schedule'
+
+    _mainCheetahMethod_for_AdaptiveMPIMultiPathDriver= 'writeBody'
+
+## END CLASS DEFINITION
+
+if not hasattr(AdaptiveMPIMultiPathDriver, '_initCheetahAttributes'):
+    templateAPIClass = getattr(AdaptiveMPIMultiPathDriver, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(AdaptiveMPIMultiPathDriver)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=AdaptiveMPIMultiPathDriver()).run()
+
+
diff --git a/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl
new file mode 100644
index 0000000..aaea53c
--- /dev/null
+++ b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl
@@ -0,0 +1,389 @@
+@*
+AdaptiveMPIMultiPathDriver.tmpl
+
+Created by Liam Madge on 2013-09-20.
+Modified by Gregory Bogomiagkov on 2013-10-12
+
+Copyright (c) 2008-2013, Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+ at extends xpdeint.SimulationDrivers.MPIMultiPathDriver
+
+ at def description: Adaptive MPI Multipath Simulation Driver
+
+ at attr $pathLoopStart = '0'
+ at attr $pathLoopStep = '1'
+ at attr $pathLoopEnd = '_local_schedule'
+
+ at def seedOffset($dict)
+  @#
+ + _rank + (_size * _batches_run)@slurp
+  @#
+ at end def
+
+ at def segment0_loop
+  @#
+for (long _i0 = ${pathLoopStart}; _i0 < ${pathLoopEnd}; _i0+=${pathLoopStep}) {
+  @#
+ at end def
+
+ at def runningSimulationCode
+  @#
+if (_size > 1){
+  if (_rank == 0)
+    _master();
+  else
+    _slave();
+  
+  _reduce();
+}
+else
+{
+  _local_schedule = _n_paths;
+  _segment0();
+}
+  @#
+ at end def
+
+ at def segment0End
+  @#
+  @#
+ at end def
+
+ at def functionPrototypes
+  @#
+  @super
+  @#
+void _master();
+void *_mslave(void *ptr); 
+void _slave();
+
+void _reduce();
+  @#
+ at end def
+
+ at def globals
+  @#
+  @super
+  @#
+
+pthread_mutex_t tasklock;    /*Ensures mutual exclusion when assigning tasks*/
+pthread_mutex_t finlock;     /*Lock to synchronize completion of thread and master*/
+
+int paths_assigned=0;        /*number of full paths assigned or completed*/
+
+long _local_schedule;        /*current batch size for a slave*/
+long _batches_run=0;         /*number of batches a slave has run*/
+  @#
+ at end def
+
+ at def topLevelSegmentFunctionImplementation
+  @#
+void _segment0()
+{
+  _LOG(_PATH_LOG_LEVEL, "Running %li paths\n", ${pathLoopEnd});
+  @# And now insert the code for the features that apply in the top level sequence
+  @set $featureOrdering = ['ErrorCheck', 'Stochastic']
+  @set $dict = {'extraIndent': 0}
+  ${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}@slurp
+  @set $extraIndent = dict['extraIndent']
+  
+  ${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}@slurp
+  
+  ${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}@slurp
+  
+  ${segment0End}
+}
+  @#
+ at end def
+
+ at def functionImplementations
+  @#
+  @super
+  @#
+
+void _reduce()
+{
+  ${segment0ReduceBlock}
+}
+
+void _master() 
+{  
+  int outstanding = 0;        /*number of slaves that are still processing tasks*/
+  int *schedule = new int[_size];        /*Batch size scheduled for each slave [reset every iteration]*/
+  double *timing = new double[_size];       /*Timing function to determine computation to communication ratio*/
+  int *partitions = new int[_size];      /*Batch size scheduled for each slave [resetted after completion]*/
+
+  int i, j;                   /*indexes*/
+
+  MPI_Status *stats = new MPI_Status[_size];    /*MPI Structures*/
+  MPI_Request *reqs = new MPI_Request[_size];
+  int *indices = new int[_size];
+  int ndone;
+  double *bufs = new double[_size];         /*MPI Input buffer*/
+  
+  int *slave_stat = new int[_size];
+  double *throughput = new double[_size];
+  double *commave = new double[_size];
+
+  double schedtime=0.0;      /*time spent deciding and dispatching schedules*/
+  double commtime=0.0;       /*index for communication latency*/
+  double totaltime=0.0;      /*index for seconds per schedule*/
+  double totalcommtime=0.0;  /*total communication latency*/
+  double paratime=0.0;       /*total parallel walltime for slaves excluding mslave*/
+
+  /************* Scheduling Parameters **************/
+  double calpha = 0.2;        /*weighting for communication average*/
+  double talpha = 0.2;        /*weighting for throughput average*/
+
+  double epsilon = 0.005;     /*maximum tolerated communication overhead*/
+  double lower = 2.0;         /*minimum tolerated resolution in seconds*/
+  double upper = 10.0;        /*maximum tolerated resolution seconds*/
+  /***************************************************/
+
+  double tp1, tp2;
+
+  //Initialise slave status arrays
+  for (i=0; i<_size; i++){
+    slave_stat[i]=0;
+    partitions[i]=0;
+    commave[i]=0.0;
+    throughput[i]=0.0;
+  }
+
+  //pthread is always busy doing something
+  slave_stat[0] = 1;
+
+  /************* PThread Initialization **************/
+  pthread_t helper;
+  
+  //Initialise mutual exclusion mechanism
+  pthread_mutex_init(&tasklock, NULL);
+  pthread_mutex_init(&finlock, NULL);
+  pthread_mutex_lock(&finlock);
+
+  //Create a thread to act as a slave
+  if (pthread_create(&helper, NULL, _mslave, NULL)!=0)
+    _LOG(_ERROR_LOG_LEVEL, "Thread creation failed\n");
+  
+  //Listen for messages from all slaves
+  for (i=0; i<_size; i++){
+    MPI_Irecv(&bufs[i], 1, MPI_DOUBLE, i, MPI_ANY_TAG, MPI_COMM_WORLD, &reqs[i]);
+  }
+  
+  //Loop until all paths are finished, and all results recieved
+  //      -Test for messages from slaves
+  //      -Determine path schedule for idle slaves
+  //      -Send schedule to slaves
+  
+  /**************LISTEN FOR "TASKS COMPLETED" MESSAGES FROM SLAVES*******************/
+  
+  while (paths_assigned < _n_paths || outstanding > 0){
+    
+    //Wait for messages from slaves
+    if (outstanding > 0){
+      MPI_Waitsome(_size, reqs, &ndone, indices, stats);
+      
+      for (i=0; i<ndone; i++){
+        //Deal with incoming messages
+        j = indices[i];
+
+        //Dynamically determine bandwidth and throughput
+        totaltime = MPI_Wtime() - timing[j];
+        commtime = totaltime - bufs[j];
+
+        //Calculate average communication time and average throughput
+        if (commave[j] == 0.0){
+          commave[j] = commtime;
+          throughput[j] = partitions[j]/totaltime;
+        }
+        else {
+          commave[j] = commave[j] * (1 - calpha) + (commtime * calpha);
+          throughput[j] = throughput[j] * (1 - talpha) + (partitions[j] / totaltime) * talpha;
+        }
+        
+        totalcommtime += commtime;
+        paratime += totaltime;
+        slave_stat[j] = 0;
+        outstanding--;
+        MPI_Irecv(&bufs[j], 1, MPI_DOUBLE, j, MPI_ANY_TAG, MPI_COMM_WORLD, &reqs[j]);
+      }
+    }
+    
+    // If no more tasks need to be assigned continue to listen for messages from slaves
+    if (paths_assigned >= _n_paths)
+      continue;
+    
+    /********************SCHEDULE MORE TASKS FOR IDLE SLAVES***********************/
+    
+    for (i=0; i<_size; i++){
+      schedule[i]=0;
+    }
+    tp1 = MPI_Wtime();
+
+    //allocate tasks to free processors
+    //scheduling must be mutually exclusive as the slave thread
+    //also modifies the global variables below for self-scheduling
+    pthread_mutex_lock(&tasklock);
+    
+    for (i=1; i<_size; i++){
+      if (paths_assigned >= _n_paths)
+        break;
+      
+      //only allocate more tasks to slaves that are idle
+      if (slave_stat[i] == 0){
+        slave_stat[i]=1;
+        
+        //Determine new batch size based on slave throughput and
+        //communication overhead. Preferable estimated computing times
+        //for each schedule is high enough to reduce comm overhead
+        //and between upper and lower
+        partitions[i] = (int) (MAX((commave[i]*throughput[i])/epsilon, throughput[i]*lower));
+        partitions[i] = (int) (MIN(partitions[i], throughput[i]*upper));
+        partitions[i] = (int) (MAX(partitions[i], 1));
+        
+        if (paths_assigned + partitions[i] > _n_paths){
+          partitions[i] = _n_paths - paths_assigned;
+        }
+        
+        schedule[i] = partitions[i];
+        paths_assigned += partitions[i];
+      }
+    }
+    
+    pthread_mutex_unlock(&tasklock);
+    
+    /**************************SEND SCHEDULE TO SLAVE(S)********************/
+    for (i=1; i<_size; i++){
+      if (schedule[i]>0){
+        timing[i] = MPI_Wtime();
+        MPI_Send(&schedule[i], 1, MPI_INT, i, 1, MPI_COMM_WORLD);
+        outstanding++;
+      }
+    }
+    tp2 = MPI_Wtime() - tp1;
+    schedtime += tp2;
+  }
+  
+  //Block until the thread slave has completed processing
+  pthread_mutex_lock(&finlock);
+  
+  //Tell slave processes to Reduce then exit
+  for (i=1; i<_size; i++){
+    MPI_Send(NULL, 0, MPI_INT, i, 0, MPI_COMM_WORLD);
+  }
+
+  //Kill slave thread
+  pthread_cancel(helper);
+  
+  delete[] schedule;
+  delete[] timing;
+  delete[] partitions;
+  delete[] stats;
+  delete[] reqs;
+  delete[] indices;
+  delete[] bufs;
+  delete[] slave_stat;
+  delete[] throughput;
+  delete[] commave;
+}
+
+void *_mslave(void *ptr) 
+{
+  double thr_throughput=0.0; 
+  double thr_time_per_batch=2.0; 
+  double thr_talpha=0.2; 
+  
+  int i; 
+  double tp1, tp2;
+  
+  _local_schedule = 1; 
+  
+  while(paths_assigned < _n_paths)
+  { 
+    //Self schedule more tasks to process
+    tp1 = MPI_Wtime();
+    
+    /********************SCHEDULE MORE TASKS*************************/
+    pthread_mutex_lock(&tasklock);
+    
+    if (paths_assigned >= _n_paths){
+      pthread_mutex_unlock(&tasklock);
+      break;
+    }
+    
+    if (paths_assigned + _local_schedule > _n_paths)
+      _local_schedule = _n_paths - paths_assigned;
+    
+    paths_assigned += _local_schedule;
+    
+    pthread_mutex_unlock(&tasklock);
+    /*****************************************************************/
+    
+    _segment0();
+    
+    _batches_run++;
+    
+    tp2 = MPI_Wtime() - tp1;
+    
+    /********************CALCULATE NEW BATCH SIZE*********************/
+    
+    if (thr_throughput == 0.0)
+      thr_throughput = _local_schedule/tp2;
+    else
+      thr_throughput = (1-thr_talpha)*thr_throughput + thr_talpha * (_local_schedule/tp2);
+    
+    _local_schedule = MAX(1, (int) (thr_throughput * thr_time_per_batch));
+    
+    /*****************************************************************/ 
+  }
+  
+  //Unlocking indicates that the thread slave has finished processing 
+  pthread_mutex_unlock(&finlock);
+  
+  return NULL;
+}
+
+void _slave() 
+{
+  MPI_Status stat;
+  
+  double tp1, tp2;
+  
+  while(1) {
+    //Wait for initial communication from master
+    MPI_Recv(&_local_schedule, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &stat);
+    
+    tp1 = MPI_Wtime();    
+    
+    if (stat.MPI_TAG == 0)
+      break;
+    
+    _segment0();
+    
+    _batches_run++;
+    
+    tp2 = MPI_Wtime() - tp1;
+    
+    //Send completion notice to the master
+    MPI_Send(&tp2, 1, MPI_DOUBLE, 0, stat.MPI_TAG, MPI_COMM_WORLD);
+  }
+  
+  //Tell master that slave is done
+  MPI_Send(NULL, 0, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
+}
+  @#
+ at end def
diff --git a/xpdeint/SimulationDrivers/DistributedMPIDriver.py b/xpdeint/SimulationDrivers/DistributedMPIDriver.py
index e80b473..269f38f 100644
--- a/xpdeint/SimulationDrivers/DistributedMPIDriver.py
+++ b/xpdeint/SimulationDrivers/DistributedMPIDriver.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.311083
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl'
-__CHEETAH_srcLastModified__ = 'Tue Jul 24 13:07:03 2012'
+__CHEETAH_genTime__ = 1389652446.404937
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:09 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -630,12 +630,12 @@ for (long _dataForRank = 0; _dataForRank < _size; _dataForRank++) {
             return
         # 
         writeLoopContents = dict['writeLoopContents']
-        ## START CAPTURE REGION: _23931602 newWriteLoopContents at line 242, col 3 in the source.
-        _orig_trans_23931602 = trans
-        _wasBuffering_23931602 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _34044003 newWriteLoopContents at line 242, col 3 in the source.
+        _orig_trans_34044003 = trans
+        _wasBuffering_34044003 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_23931602 = DummyTransaction()
-        write = _captureCollector_23931602.response().write
+        trans = _captureCollector_34044003 = DummyTransaction()
+        write = _captureCollector_34044003.response().write
         for fileDimIndex, memDimIndex, dimRep in dimRepOrdering: # generated from line 243, col 5
             write(u'''hsize_t file_start_''')
             _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 244, col 20
@@ -691,13 +691,13 @@ mem_count[''')
             if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 256, col 33.
             write(u''';
 ''')
-        trans = _orig_trans_23931602
+        trans = _orig_trans_34044003
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_23931602 
-        newWriteLoopContents = _captureCollector_23931602.response().getvalue()
-        del _orig_trans_23931602
-        del _captureCollector_23931602
-        del _wasBuffering_23931602
+        self._CHEETAH__isBuffering = _wasBuffering_34044003 
+        newWriteLoopContents = _captureCollector_34044003.response().getvalue()
+        del _orig_trans_34044003
+        del _captureCollector_34044003
+        del _wasBuffering_34044003
         # 
         dict['writeLoopContents'] = newWriteLoopContents
         # 
@@ -889,8 +889,17 @@ MPI_Bcast(_active_''')
         ## START - generated method body
         
         # 
-        write(u'''if (_rank == 0) {
-  // Only generate random seeds on the first rank, then distribute to all.
+        generator = dict['caller']
+        # 
+        write(u'''// Only generate random seeds on the first rank, then distribute to all.
+unsigned long _local_''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 322, col 22
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 322, col 22.
+        write(u'''_seeds[''')
+        _v = VFFSL(SL,"generator.seedCount",True) # u'${generator.seedCount}' on line 322, col 55
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.seedCount}')) # from line 322, col 55.
+        write(u'''];
+if (_rank == 0) {
 ''')
         dict['extraIndent'] += 2
         # 
@@ -905,7 +914,7 @@ MPI_Bcast(_active_''')
 
 
 
-        ## CHEETAH: generated from @def runtimeSeedGenerationEnd($dict) at line 325, col 1.
+        ## CHEETAH: generated from @def runtimeSeedGenerationEnd($dict) at line 328, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -923,15 +932,38 @@ MPI_Bcast(_active_''')
         # 
         generator = dict['caller']
         dict['extraIndent'] -= 2
-        write(u'''}
+        write(u'''  for (int _i0 = 0; _i0 < ''')
+        _v = VFFSL(SL,"generator.seedCount",True) # u'${generator.seedCount}' on line 332, col 27
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.seedCount}')) # from line 332, col 27.
+        write(u'''; _i0++)
+      _local_''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 333, col 14
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 333, col 14.
+        write(u'''_seeds[_i0] = (unsigned long)''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 333, col 69
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 333, col 69.
+        write(u'''_seeds[_i0];
+}
 // Broadcast seeds to other nodes
-MPI_Bcast(''')
-        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 331, col 11
-        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 331, col 11.
+MPI_Bcast(_local_''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 336, col 18
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 336, col 18.
         write(u'''_seeds, ''')
-        _v = VFFSL(SL,"generator.seedCount",True) # u'${generator.seedCount}' on line 331, col 45
-        if _v is not None: write(_filter(_v, rawExpr=u'${generator.seedCount}')) # from line 331, col 45.
-        write(u''', MPI_UINT32_T, 0, MPI_COMM_WORLD);
+        _v = VFFSL(SL,"generator.seedCount",True) # u'${generator.seedCount}' on line 336, col 52
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.seedCount}')) # from line 336, col 52.
+        write(u''', MPI_UNSIGNED_LONG, 0, MPI_COMM_WORLD);
+// Copy to the correct array
+for (int _i0 = 0; _i0 < ''')
+        _v = VFFSL(SL,"generator.seedCount",True) # u'${generator.seedCount}' on line 338, col 25
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.seedCount}')) # from line 338, col 25.
+        write(u'''; _i0++)
+    ''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 339, col 5
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 339, col 5.
+        write(u'''_seeds[_i0] = (uint32_t)_local_''')
+        _v = VFFSL(SL,"generator.generatorName",True) # u'${generator.generatorName}' on line 339, col 62
+        if _v is not None: write(_filter(_v, rawExpr=u'${generator.generatorName}')) # from line 339, col 62.
+        write(u'''_seeds[_i0];
 
 ''')
         # 
@@ -946,7 +978,7 @@ MPI_Bcast(''')
 
 
 
-        ## CHEETAH: generated from @def openXSILFile($dict) at line 336, col 1.
+        ## CHEETAH: generated from @def openXSILFile($dict) at line 344, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
diff --git a/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl b/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl
index 800854e..fc98ace 100644
--- a/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl
+++ b/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl
@@ -316,8 +316,11 @@ MPI_Bcast(_active_${noiseVector.id}, ${noiseVector.sizeInBasisInReals(noiseVecto
 
 @def runtimeSeedGenerationBegin($dict)
   @#
+  @set generator = dict['caller']
+  @#
+// Only generate random seeds on the first rank, then distribute to all.
+unsigned long _local_${generator.generatorName}_seeds[${generator.seedCount}];
 if (_rank == 0) {
-  // Only generate random seeds on the first rank, then distribute to all.
   @set dict['extraIndent'] += 2
   @#
 @end def
@@ -326,9 +329,14 @@ if (_rank == 0) {
   @#
   @set generator = dict['caller']
   @set dict['extraIndent'] -= 2
+  for (int _i0 = 0; _i0 < ${generator.seedCount}; _i0++)
+      _local_${generator.generatorName}_seeds[_i0] = (unsigned long)${generator.generatorName}_seeds[_i0];
 }
 // Broadcast seeds to other nodes
-MPI_Bcast(${generator.generatorName}_seeds, ${generator.seedCount}, MPI_UINT32_T, 0, MPI_COMM_WORLD);
+MPI_Bcast(_local_${generator.generatorName}_seeds, ${generator.seedCount}, MPI_UNSIGNED_LONG, 0, MPI_COMM_WORLD);
+// Copy to the correct array
+for (int _i0 = 0; _i0 < ${generator.seedCount}; _i0++)
+    ${generator.generatorName}_seeds[_i0] = (uint32_t)_local_${generator.generatorName}_seeds[_i0];
 
   @#
 @end def
diff --git a/xpdeint/SimulationDrivers/MPI.py b/xpdeint/SimulationDrivers/MPI.py
index 93f72fa..e79ae1f 100644
--- a/xpdeint/SimulationDrivers/MPI.py
+++ b/xpdeint/SimulationDrivers/MPI.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.140892
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationDrivers/MPI.tmpl'
+__CHEETAH_genTime__ = 1389652444.776772
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Mar 29 16:44:30 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationDrivers/MPIMultiPathDriver.py b/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
index 4f7811c..0d1d227 100644
--- a/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
+++ b/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.161057
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652444.98107
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -69,7 +69,7 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
 
 
 
-        ## Generated from @def description: MPI Multipath Simulation Driver at line 24, col 1.
+        ## Generated from @def description: MPI Multipath Simulation Driver at line 26, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -96,7 +96,7 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
 
 
 
-        ## CHEETAH: generated from @def mainRoutine at line 29, col 1.
+        ## CHEETAH: generated from @def mainRoutine at line 31, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -119,8 +119,8 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
   MPI_Comm_rank(MPI_COMM_WORLD, &_rank);
   
   ''')
-        _v = VFFSL(SL,"mainRoutineInnerContent",True) # u'${mainRoutineInnerContent, autoIndent=True}' on line 37, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${mainRoutineInnerContent, autoIndent=True}')) # from line 37, col 3.
+        _v = VFFSL(SL,"mainRoutineInnerContent",True) # u'${mainRoutineInnerContent, autoIndent=True}' on line 39, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${mainRoutineInnerContent, autoIndent=True}')) # from line 39, col 3.
         write(u'''  
   MPI_Finalize();
   
@@ -135,11 +135,41 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
+    def segment0End(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segment0End at line 48, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        _v = VFFSL(SL,"segment0ReduceBlock",True) # u'${segment0ReduceBlock}' on line 50, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${segment0ReduceBlock}')) # from line 50, col 1.
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
     def topLevelSegmentFunctionImplementation(self, **KWS):
 
 
 
-        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 47, col 1.
+        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 54, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -162,45 +192,75 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
         featureOrdering = ['ErrorCheck', 'Stochastic']
         dict = {'extraIndent': 0}
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 54, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 54, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 61, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 61, col 3.
         extraIndent = dict['extraIndent']
         write(u'''  
   ''')
-        _v = VFFSL(SL,"topLevelSegmentPathLoop",True) # u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}' on line 57, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}')) # from line 57, col 3.
+        _v = VFFSL(SL,"topLevelSegmentPathLoop",True) # u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}' on line 64, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}')) # from line 64, col 3.
         write(u'''  
   ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 59, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 59, col 3.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 66, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 66, col 3.
         write(u'''  
+  ''')
+        _v = VFFSL(SL,"segment0End",True) # u'${segment0End, autoIndent=True}' on line 68, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${segment0End, autoIndent=True}')) # from line 68, col 3.
+        write(u'''}
 ''')
-        for mg in VFFSL(SL,"momentGroups",True): # generated from line 61, col 3
-            for vector in mg.outputField.managedVectors: # generated from line 62, col 5
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
+    def segment0ReduceBlock(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segment0ReduceBlock at line 73, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        for mg in VFFSL(SL,"momentGroups",True): # generated from line 75, col 3
+            for vector in mg.outputField.managedVectors: # generated from line 76, col 5
                 arrayNames = [''.join([u'_',str(VFFSL(SL,"vector.id",True))])]
                 VFN(VFFSL(SL,"arrayNames",True),"extend",False)(VFFSL(SL,"vector.aliases",True))
-                for arrayName in arrayNames: # generated from line 65, col 7
+                for arrayName in arrayNames: # generated from line 79, col 7
                     write(u'''  
-  if (_rank == 0)
-    MPI_Reduce(MPI_IN_PLACE, ''')
-                    _v = VFFSL(SL,"arrayName",True) # u'$arrayName' on line 68, col 30
-                    if _v is not None: write(_filter(_v, rawExpr=u'$arrayName')) # from line 68, col 30.
+if (_rank == 0)
+  MPI_Reduce(MPI_IN_PLACE, ''')
+                    _v = VFFSL(SL,"arrayName",True) # u'$arrayName' on line 82, col 28
+                    if _v is not None: write(_filter(_v, rawExpr=u'$arrayName')) # from line 82, col 28.
                     write(u''', ''')
-                    _v = VFN(VFFSL(SL,"vector",True),"sizeInBasisInReals",False)(mg.outputBasis) # u'${vector.sizeInBasisInReals(mg.outputBasis)}' on line 68, col 42
-                    if _v is not None: write(_filter(_v, rawExpr=u'${vector.sizeInBasisInReals(mg.outputBasis)}')) # from line 68, col 42.
+                    _v = VFN(VFFSL(SL,"vector",True),"sizeInBasisInReals",False)(mg.outputBasis) # u'${vector.sizeInBasisInReals(mg.outputBasis)}' on line 82, col 40
+                    if _v is not None: write(_filter(_v, rawExpr=u'${vector.sizeInBasisInReals(mg.outputBasis)}')) # from line 82, col 40.
                     write(u''',
-               MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
-  else
-    MPI_Reduce(''')
-                    _v = VFFSL(SL,"arrayName",True) # u'$arrayName' on line 71, col 16
-                    if _v is not None: write(_filter(_v, rawExpr=u'$arrayName')) # from line 71, col 16.
+             MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
+else
+  MPI_Reduce(''')
+                    _v = VFFSL(SL,"arrayName",True) # u'$arrayName' on line 85, col 14
+                    if _v is not None: write(_filter(_v, rawExpr=u'$arrayName')) # from line 85, col 14.
                     write(u''', NULL, ''')
-                    _v = VFN(VFFSL(SL,"vector",True),"sizeInBasisInReals",False)(mg.outputBasis) # u'${vector.sizeInBasisInReals(mg.outputBasis)}' on line 71, col 34
-                    if _v is not None: write(_filter(_v, rawExpr=u'${vector.sizeInBasisInReals(mg.outputBasis)}')) # from line 71, col 34.
+                    _v = VFN(VFFSL(SL,"vector",True),"sizeInBasisInReals",False)(mg.outputBasis) # u'${vector.sizeInBasisInReals(mg.outputBasis)}' on line 85, col 32
+                    if _v is not None: write(_filter(_v, rawExpr=u'${vector.sizeInBasisInReals(mg.outputBasis)}')) # from line 85, col 32.
                     write(u''',
-               MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
-''')
-        write(u'''}
+             MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
 ''')
         # 
         
@@ -214,7 +274,7 @@ class MPIMultiPathDriver(_MPIMultiPathDriver):
 
 
 
-        ## CHEETAH: generated from @def writeOutBegin($dict) at line 80, col 1.
+        ## CHEETAH: generated from @def writeOutBegin($dict) at line 93, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -264,7 +324,9 @@ if (_rank != 0)
         # 
         # MPIMultiPathDriver.tmpl
         # 
-        # Created by Graham Dennis on 2008-02-25.
+        # Created by Graham Dennis on 2008-02-25
+        # Modified by Liam Madge on 2013-09-11
+        # Modified by Gregory Bogomiagkov on 2013-09-12
         # 
         # Copyright (c) 2008-2012, Graham Dennis
         # 
@@ -287,6 +349,7 @@ if (_rank != 0)
 
 
 
+
 ''')
         
         ########################################
diff --git a/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl b/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl
index 9a9de52..fa33174 100644
--- a/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl
+++ b/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl
@@ -1,7 +1,9 @@
 @*
 MPIMultiPathDriver.tmpl
 
-Created by Graham Dennis on 2008-02-25.
+Created by Graham Dennis on 2008-02-25
+Modified by Liam Madge on 2013-09-11
+Modified by Gregory Bogomiagkov on 2013-09-12
 
 Copyright (c) 2008-2012, Graham Dennis
 
@@ -43,6 +45,11 @@ int main(int argc, char **argv)
   @#
 @end def
 
+ at def segment0End
+  @#
+${segment0ReduceBlock}@slurp
+  @#
+ at end def
 
 @def topLevelSegmentFunctionImplementation
   @#
@@ -58,22 +65,28 @@ void _segment0()
   
   ${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}@slurp
   
+  ${segment0End, autoIndent=True}@slurp
+}
+  @#
+ at end def
+
+ at def segment0ReduceBlock
+  @#
   @for mg in $momentGroups
     @for vector in mg.outputField.managedVectors
       @set $arrayNames = [c'_${vector.id}']
       @silent $arrayNames.extend($vector.aliases)
       @for arrayName in arrayNames
   
-  if (_rank == 0)
-    MPI_Reduce(MPI_IN_PLACE, $arrayName, ${vector.sizeInBasisInReals(mg.outputBasis)},
-               MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
-  else
-    MPI_Reduce($arrayName, NULL, ${vector.sizeInBasisInReals(mg.outputBasis)},
-               MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
+if (_rank == 0)
+  MPI_Reduce(MPI_IN_PLACE, $arrayName, ${vector.sizeInBasisInReals(mg.outputBasis)},
+             MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
+else
+  MPI_Reduce($arrayName, NULL, ${vector.sizeInBasisInReals(mg.outputBasis)},
+             MPI_REAL, MPI_SUM, 0, MPI_COMM_WORLD);
       @end for
     @end for
   @end for
-}
   @#
 @end def
 
diff --git a/xpdeint/SimulationDrivers/MultiPathDriver.py b/xpdeint/SimulationDrivers/MultiPathDriver.py
index e02d485..59210ff 100644
--- a/xpdeint/SimulationDrivers/MultiPathDriver.py
+++ b/xpdeint/SimulationDrivers/MultiPathDriver.py
@@ -33,10 +33,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.243509
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationDrivers/MultiPathDriver.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
+__CHEETAH_genTime__ = 1389652445.35523
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MultiPathDriver.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -92,11 +92,51 @@ class MultiPathDriver(_MultiPathDriver):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
+    def segment0_loop(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def segment0_loop at line 30, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''for (long _i0 = ''')
+        _v = VFFSL(SL,"pathLoopStart",True) # u'${pathLoopStart}' on line 32, col 17
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStart}')) # from line 32, col 17.
+        write(u'''; _i0 < ''')
+        _v = VFFSL(SL,"pathLoopEnd",True) # u'${pathLoopEnd}' on line 32, col 41
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopEnd}')) # from line 32, col 41.
+        write(u'''; _i0+=''')
+        _v = VFFSL(SL,"pathLoopStep",True) # u'${pathLoopStep}' on line 32, col 62
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStep}')) # from line 32, col 62.
+        write(u''') {
+  _LOG(_PATH_LOG_LEVEL, "Starting path %li\\n", _i0 + 1);
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
     def defines(self, **KWS):
 
 
 
-        ## CHEETAH: generated from @def defines at line 29, col 1.
+        ## CHEETAH: generated from @def defines at line 37, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -116,8 +156,8 @@ class MultiPathDriver(_MultiPathDriver):
         if _v is not None: write(_filter(_v))
         # 
         write(u'''#define _n_paths ''')
-        _v = VFFSL(SL,"pathCount",True) # u'${pathCount}' on line 33, col 18
-        if _v is not None: write(_filter(_v, rawExpr=u'${pathCount}')) # from line 33, col 18.
+        _v = VFFSL(SL,"pathCount",True) # u'${pathCount}' on line 41, col 18
+        if _v is not None: write(_filter(_v, rawExpr=u'${pathCount}')) # from line 41, col 18.
         write(u'''
 ''')
         # 
@@ -132,7 +172,7 @@ class MultiPathDriver(_MultiPathDriver):
 
 
 
-        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 37, col 1.
+        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 45, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -155,17 +195,17 @@ class MultiPathDriver(_MultiPathDriver):
         featureOrdering = ['ErrorCheck', 'Stochastic']
         dict = {'extraIndent': 0}
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 44, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 44, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 52, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 52, col 3.
         extraIndent = dict['extraIndent']
         write(u'''
   ''')
-        _v = VFFSL(SL,"topLevelSegmentPathLoop",True) # u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}' on line 47, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}')) # from line 47, col 3.
+        _v = VFFSL(SL,"topLevelSegmentPathLoop",True) # u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}' on line 55, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSegmentPathLoop, autoIndent=True, extraIndent=extraIndent}')) # from line 55, col 3.
         write(u'''
   ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 49, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 49, col 3.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 57, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 57, col 3.
         write(u'''}
 ''')
         # 
@@ -180,7 +220,7 @@ class MultiPathDriver(_MultiPathDriver):
 
 
 
-        ## CHEETAH: generated from @def topLevelSegmentPathLoop at line 54, col 1.
+        ## CHEETAH: generated from @def topLevelSegmentPathLoop at line 62, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -203,64 +243,60 @@ class MultiPathDriver(_MultiPathDriver):
         #  possible to split this up into two stages of initialisation, but that
         #  seems to me like it would be ugly.
         #  
-        _v = VFFSL(SL,"topLevelSequence.allocate",True) # u'${topLevelSequence.allocate}' on line 63, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSequence.allocate}')) # from line 63, col 1.
+        _v = VFFSL(SL,"topLevelSequence.allocate",True) # u'${topLevelSequence.allocate}' on line 71, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSequence.allocate}')) # from line 71, col 1.
         write(u'''
 ''')
         objectsNeedingInitialisation = [o for o in VFFSL(SL,"templates",True) if o.hasattr('canBeInitialisedEarly') and o.canBeInitialisedEarly]
-        for o in VFFSL(SL,"objectsNeedingInitialisation",True): # generated from line 66, col 3
-            _v = VFFSL(SL,"o.initialise",True) # u'${o.initialise}' on line 67, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${o.initialise}')) # from line 67, col 1.
+        for o in VFFSL(SL,"objectsNeedingInitialisation",True): # generated from line 74, col 3
+            _v = VFFSL(SL,"o.initialise",True) # u'${o.initialise}' on line 75, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${o.initialise}')) # from line 75, col 1.
         # 
         #  We must capture the finalisation of all the objects we initialised
         #  to make sure they don't get finalised early. As that could lead to
         #  NULL pointer dereferences, and that is bad.
         # 
-        ## START CAPTURE REGION: _37828414 finalisationCode at line 74, col 3 in the source.
-        _orig_trans_37828414 = trans
-        _wasBuffering_37828414 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _24375999 finalisationCode at line 82, col 3 in the source.
+        _orig_trans_24375999 = trans
+        _wasBuffering_24375999 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_37828414 = DummyTransaction()
-        write = _captureCollector_37828414.response().write
-        for o in VFFSL(SL,"objectsNeedingInitialisation",True): # generated from line 75, col 5
-            _v = VFFSL(SL,"o.finalise",True) # u'${o.finalise}' on line 76, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${o.finalise}')) # from line 76, col 1.
+        trans = _captureCollector_24375999 = DummyTransaction()
+        write = _captureCollector_24375999.response().write
+        for o in VFFSL(SL,"objectsNeedingInitialisation",True): # generated from line 83, col 5
+            _v = VFFSL(SL,"o.finalise",True) # u'${o.finalise}' on line 84, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${o.finalise}')) # from line 84, col 1.
         write(u'''
 ''')
-        _v = VFFSL(SL,"topLevelSequence.free",True) # u'${topLevelSequence.free}' on line 79, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSequence.free}')) # from line 79, col 1.
-        trans = _orig_trans_37828414
+        _v = VFFSL(SL,"topLevelSequence.free",True) # u'${topLevelSequence.free}' on line 87, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSequence.free}')) # from line 87, col 1.
+        trans = _orig_trans_24375999
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_37828414 
-        finalisationCode = _captureCollector_37828414.response().getvalue()
-        del _orig_trans_37828414
-        del _captureCollector_37828414
-        del _wasBuffering_37828414
+        self._CHEETAH__isBuffering = _wasBuffering_24375999 
+        finalisationCode = _captureCollector_24375999.response().getvalue()
+        del _orig_trans_24375999
+        del _captureCollector_24375999
+        del _wasBuffering_24375999
+        write(u'''
+''')
+        _v = VFFSL(SL,"segment0_loop",True) # u'${segment0_loop}' on line 90, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${segment0_loop}')) # from line 90, col 1.
         write(u'''
-for (long _i0 = ''')
-        _v = VFFSL(SL,"pathLoopStart",True) # u'${pathLoopStart}' on line 82, col 17
-        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStart}')) # from line 82, col 17.
-        write(u'''; _i0 < _n_paths; _i0+=''')
-        _v = VFFSL(SL,"pathLoopStep",True) # u'${pathLoopStep}' on line 82, col 56
-        if _v is not None: write(_filter(_v, rawExpr=u'${pathLoopStep}')) # from line 82, col 56.
-        write(u''') {
-  _LOG(_PATH_LOG_LEVEL, "Starting path %li\\n", _i0 + 1);
   
 ''')
-        for mg in VFFSL(SL,"momentGroups",True): # generated from line 85, col 3
+        for mg in VFFSL(SL,"momentGroups",True): # generated from line 92, col 3
             write(u'''  ''')
-            _v = VFN(VFN(VFFSL(SL,"mg.rawVector",True),"functions",True)['initialise'],"call",False)() # u"${mg.rawVector.functions['initialise'].call(), autoIndent=True}" on line 86, col 3
-            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${mg.rawVector.functions['initialise'].call(), autoIndent=True}")) # from line 86, col 3.
+            _v = VFN(VFN(VFFSL(SL,"mg.rawVector",True),"functions",True)['initialise'],"call",False)() # u"${mg.rawVector.functions['initialise'].call(), autoIndent=True}" on line 93, col 3
+            if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${mg.rawVector.functions['initialise'].call(), autoIndent=True}")) # from line 93, col 3.
         write(u'''  
   ''')
-        _v = VFFSL(SL,"topLevelSequence.topLevelSequenceInnerContent",True) # u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True}' on line 89, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True}')) # from line 89, col 3.
+        _v = VFFSL(SL,"topLevelSequence.topLevelSequenceInnerContent",True) # u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True}' on line 96, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True}')) # from line 96, col 3.
         write(u'''}
 
 ''')
         #  Now clean up after all of the objects that we initialised early.
-        _v = VFFSL(SL,"finalisationCode",True) # u'${finalisationCode}' on line 93, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${finalisationCode}')) # from line 93, col 1.
+        _v = VFFSL(SL,"finalisationCode",True) # u'${finalisationCode}' on line 100, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${finalisationCode}')) # from line 100, col 1.
         # 
         
         ########################################
@@ -283,7 +319,7 @@ for (long _i0 = ''')
         The return value is the template string that will be added to the processing loop template.
         """
 
-        ## CHEETAH: generated from @def insideMomentGroupProcessingNoProcessingCodeLoop(dict) at line 97, col 1.
+        ## CHEETAH: generated from @def insideMomentGroupProcessingNoProcessingCodeLoop(dict) at line 104, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -301,8 +337,8 @@ for (long _i0 = ''')
         # 
         momentGroup = dict['caller']
         write(u'''_''')
-        _v = VFFSL(SL,"momentGroup.outputField.name",True) # u'${momentGroup.outputField.name}' on line 110, col 2
-        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroup.outputField.name}')) # from line 110, col 2.
+        _v = VFFSL(SL,"momentGroup.outputField.name",True) # u'${momentGroup.outputField.name}' on line 117, col 2
+        if _v is not None: write(_filter(_v, rawExpr=u'${momentGroup.outputField.name}')) # from line 117, col 2.
         write(u'''_sd[${index}] += _active_${vector.id}[${index}] * _active_${vector.id}[${index}];''')
         # 
         
@@ -337,7 +373,7 @@ for (long _i0 = ''')
         The return value is the template string that will be
         """
 
-        ## CHEETAH: generated from @def writeOutFunctionImplementationBegin(dict) at line 115, col 1.
+        ## CHEETAH: generated from @def writeOutFunctionImplementationBegin(dict) at line 122, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -376,38 +412,38 @@ _active_${vector.id}[${index}] /= (real) _n_paths;
 
 // Calculate the standard error
 _''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 163, col 2
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 163, col 2.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 170, col 2
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 170, col 2.
         write(u'''_sd[${index}] /= (real) _n_paths;
 _''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 164, col 2
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 164, col 2.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 171, col 2
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 171, col 2.
         write(u'''_sd[${index}] -= _active_${vector.id}[${index}] * _active_${vector.id}[${index}];
 if (_''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 165, col 6
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 165, col 6.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 172, col 6
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 172, col 6.
         write(u'''_sd[${index}] > 0.0) // UNVECTORISABLE
   _''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 166, col 4
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 166, col 4.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 173, col 4
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 173, col 4.
         write(u'''_sd[${index}] = sqrt(_''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 166, col 39
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 166, col 39.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 173, col 39
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 173, col 39.
         write(u'''_sd[${index}] / _n_paths);
 else
   _''')
-        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 168, col 4
-        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 168, col 4.
+        _v = VFFSL(SL,"fieldName",True) # u'${fieldName}' on line 175, col 4
+        if _v is not None: write(_filter(_v, rawExpr=u'${fieldName}')) # from line 175, col 4.
         write(u'''_sd[${index}] = 0.0;
 ''')
         # 
-        if len(otherArrayNames): # generated from line 170, col 3
+        if len(otherArrayNames): # generated from line 177, col 3
             write(u'''
 // Calculate other means
 ''')
-            for arrayName in VFFSL(SL,"otherArrayNames",True): # generated from line 173, col 5
-                _v = VFFSL(SL,"arrayName",True) # u'${arrayName}' on line 174, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'${arrayName}')) # from line 174, col 1.
+            for arrayName in VFFSL(SL,"otherArrayNames",True): # generated from line 180, col 5
+                _v = VFFSL(SL,"arrayName",True) # u'${arrayName}' on line 181, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'${arrayName}')) # from line 181, col 1.
                 write(u'''[${index}] /= (real) _n_paths;
 ''')
         # 
@@ -465,6 +501,7 @@ else
 
 
 
+
 ''')
         
         ########################################
@@ -490,9 +527,11 @@ else
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    pathLoopStart = 0
+    pathLoopStart = '0'
+
+    pathLoopStep = '1'
 
-    pathLoopStep = 1
+    pathLoopEnd = '_n_paths'
 
     _mainCheetahMethod_for_MultiPathDriver= 'writeBody'
 
diff --git a/xpdeint/SimulationDrivers/MultiPathDriver.tmpl b/xpdeint/SimulationDrivers/MultiPathDriver.tmpl
index 8a1bf45..72f427b 100644
--- a/xpdeint/SimulationDrivers/MultiPathDriver.tmpl
+++ b/xpdeint/SimulationDrivers/MultiPathDriver.tmpl
@@ -23,8 +23,16 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 @def description: Multipath Simulation Driver
 
- at attr $pathLoopStart = 0
- at attr $pathLoopStep = 1
+ at attr $pathLoopStart = '0'
+ at attr $pathLoopStep = '1'
+ at attr $pathLoopEnd = '_n_paths'
+
+ at def segment0_loop
+  @#
+for (long _i0 = ${pathLoopStart}; _i0 < ${pathLoopEnd}; _i0+=${pathLoopStep}) {
+  _LOG(_PATH_LOG_LEVEL, "Starting path %li\n", _i0 + 1);
+  @#
+ at end def
 
 @def defines
   @#
@@ -79,8 +87,7 @@ ${o.finalise}@slurp
 ${topLevelSequence.free}@slurp
   @end capture
 
-for (long _i0 = ${pathLoopStart}; _i0 < _n_paths; _i0+=${pathLoopStep}) {
-  _LOG(_PATH_LOG_LEVEL, "Starting path %li\n", _i0 + 1);
+${segment0_loop}
   
   @for $mg in $momentGroups
   ${mg.rawVector.functions['initialise'].call(), autoIndent=True}@slurp
diff --git a/xpdeint/SimulationDrivers/SimulationDriver.py b/xpdeint/SimulationDrivers/SimulationDriver.py
index a657a8f..1ba4d7e 100644
--- a/xpdeint/SimulationDrivers/SimulationDriver.py
+++ b/xpdeint/SimulationDrivers/SimulationDriver.py
@@ -34,10 +34,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.257376
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationDrivers/SimulationDriver.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri Oct 19 15:05:48 2012'
+__CHEETAH_genTime__ = 1389652445.065407
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/SimulationDriver.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -70,7 +70,7 @@ class SimulationDriver(_SimulationDriver):
 
 
 
-        ## Generated from @def description: Default Simulation Driver at line 26, col 1.
+        ## Generated from @def description: Default Simulation Driver at line 28, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -97,7 +97,7 @@ class SimulationDriver(_SimulationDriver):
 
 
 
-        ## CHEETAH: generated from @def functionImplementations at line 28, col 1.
+        ## CHEETAH: generated from @def functionImplementations at line 30, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -116,8 +116,8 @@ class SimulationDriver(_SimulationDriver):
         _v = super(SimulationDriver, self).functionImplementations()
         if _v is not None: write(_filter(_v))
         # 
-        _v = VFFSL(SL,"topLevelSegmentFunctionImplementation",True) # u'${topLevelSegmentFunctionImplementation}' on line 32, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSegmentFunctionImplementation}')) # from line 32, col 1.
+        _v = VFFSL(SL,"topLevelSegmentFunctionImplementation",True) # u'${topLevelSegmentFunctionImplementation}' on line 34, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSegmentFunctionImplementation}')) # from line 34, col 1.
         write(u'''
 ''')
         # 
@@ -128,11 +128,41 @@ class SimulationDriver(_SimulationDriver):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
+    def runningSimulationCode(self, **KWS):
+
+
+
+        ## CHEETAH: generated from @def runningSimulationCode at line 39, col 1.
+        trans = KWS.get("trans")
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        # 
+        write(u'''_segment0();
+''')
+        # 
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+
     def topLevelSegmentFunctionImplementation(self, **KWS):
 
 
 
-        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 37, col 1.
+        ## CHEETAH: generated from @def topLevelSegmentFunctionImplementation at line 45, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -156,16 +186,16 @@ class SimulationDriver(_SimulationDriver):
         featureOrdering = ['ErrorCheck', 'Stochastic']
         dict = {'extraIndent': 0}
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 45, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 45, col 3.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('topLevelSequenceBegin', featureOrdering, dict) # u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}" on line 53, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeatures('topLevelSequenceBegin', featureOrdering, dict), autoIndent=True}")) # from line 53, col 3.
         extraIndent = dict['extraIndent']
         write(u'''  ''')
-        _v = VFFSL(SL,"topLevelSequence.topLevelSequenceInnerContent",True) # u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True, extraIndent=extraIndent}' on line 47, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True, extraIndent=extraIndent}')) # from line 47, col 3.
+        _v = VFFSL(SL,"topLevelSequence.topLevelSequenceInnerContent",True) # u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True, extraIndent=extraIndent}' on line 55, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, extraIndent=extraIndent, rawExpr=u'${topLevelSequence.topLevelSequenceInnerContent, autoIndent=True, extraIndent=extraIndent}')) # from line 55, col 3.
         # 
         write(u'''  ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 49, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 49, col 3.
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('topLevelSequenceEnd', featureOrdering, dict) # u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}" on line 57, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u"${insertCodeForFeaturesInReverseOrder('topLevelSequenceEnd', featureOrdering, dict), autoIndent=True}")) # from line 57, col 3.
         write(u'''}
 ''')
         # 
@@ -180,7 +210,7 @@ class SimulationDriver(_SimulationDriver):
 
 
 
-        ## CHEETAH: generated from @def mainRoutine at line 55, col 1.
+        ## CHEETAH: generated from @def mainRoutine at line 63, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -199,8 +229,8 @@ class SimulationDriver(_SimulationDriver):
         write(u'''int main(int argc, char **argv)
 {
   ''')
-        _v = VFFSL(SL,"mainRoutineInnerContent",True) # u'${mainRoutineInnerContent, autoIndent=True}' on line 59, col 3
-        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${mainRoutineInnerContent, autoIndent=True}')) # from line 59, col 3.
+        _v = VFFSL(SL,"mainRoutineInnerContent",True) # u'${mainRoutineInnerContent, autoIndent=True}' on line 67, col 3
+        if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${mainRoutineInnerContent, autoIndent=True}')) # from line 67, col 3.
         write(u'''  
   return 0;
 }
@@ -217,7 +247,7 @@ class SimulationDriver(_SimulationDriver):
 
 
 
-        ## CHEETAH: generated from @def mainRoutineInnerContent at line 66, col 1.
+        ## CHEETAH: generated from @def mainRoutineInnerContent at line 74, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -240,8 +270,8 @@ class SimulationDriver(_SimulationDriver):
   IOReturn __io_result = IOPMAssertionCreateWithDescription(
     kIOPMAssertionTypePreventUserIdleSystemSleep,
     CFSTR("XMDS simulation \'''')
-        _v = VFFSL(SL,"simulationName",True) # u'${simulationName}' on line 74, col 29
-        if _v is not None: write(_filter(_v, rawExpr=u'${simulationName}')) # from line 74, col 29.
+        _v = VFFSL(SL,"simulationName",True) # u'${simulationName}' on line 82, col 29
+        if _v is not None: write(_filter(_v, rawExpr=u'${simulationName}')) # from line 82, col 29.
         write(u'''\' preventing user idle sleep"), // Assertion name
     NULL, // Assertion details
     NULL, // Human-readable reason
@@ -261,44 +291,46 @@ class SimulationDriver(_SimulationDriver):
   
 ''')
         preAllocationFeatureOrdering = ['Arguments', 'Driver', 'ChunkedOutput']
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('preAllocation', VFFSL(SL,"preAllocationFeatureOrdering",True)) # u"${insertCodeForFeatures('preAllocation', $preAllocationFeatureOrdering)}" on line 92, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('preAllocation', $preAllocationFeatureOrdering)}")) # from line 92, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('preAllocation', VFFSL(SL,"preAllocationFeatureOrdering",True)) # u"${insertCodeForFeatures('preAllocation', $preAllocationFeatureOrdering)}" on line 100, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('preAllocation', $preAllocationFeatureOrdering)}")) # from line 100, col 1.
         write(u'''  
 
 ''')
         vectors = set([v for v in VFFSL(SL,"templates",True) if isinstance(v, VectorElement)])
-        _v = VFFSL(SL,"setVectorAllocSizes",False)(vectors) # u'${setVectorAllocSizes(vectors)}' on line 96, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u'${setVectorAllocSizes(vectors)}')) # from line 96, col 1.
+        _v = VFFSL(SL,"setVectorAllocSizes",False)(vectors) # u'${setVectorAllocSizes(vectors)}' on line 104, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${setVectorAllocSizes(vectors)}')) # from line 104, col 1.
         # 
-        for field in VFFSL(SL,"fields",True): # generated from line 98, col 3
-            _v = VFFSL(SL,"field.allocate",True) # u'${field.allocate}' on line 99, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${field.allocate}')) # from line 99, col 1.
+        for field in VFFSL(SL,"fields",True): # generated from line 106, col 3
+            _v = VFFSL(SL,"field.allocate",True) # u'${field.allocate}' on line 107, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${field.allocate}')) # from line 107, col 1.
         write(u'''
 ''')
-        for mg in VFFSL(SL,"momentGroups",True): # generated from line 102, col 3
-            _v = VFFSL(SL,"mg.allocate",True) # u'${mg.allocate}' on line 103, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${mg.allocate}')) # from line 103, col 1.
+        for mg in VFFSL(SL,"momentGroups",True): # generated from line 110, col 3
+            _v = VFFSL(SL,"mg.allocate",True) # u'${mg.allocate}' on line 111, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${mg.allocate}')) # from line 111, col 1.
         write(u'''
 ''')
         # 
         #     And now insert the code for the features that apply in the main function
         #   
         featureOrdering = ['Bing', 'Validation', 'Driver', 'OpenMP', 'Stochastic', 'TransformMultiplexer', 'Benchmark', 'Output']
-        _v = VFFSL(SL,"insertCodeForFeatures",False)('mainBegin', VFFSL(SL,"featureOrdering",True)) # u"${insertCodeForFeatures('mainBegin', $featureOrdering)}" on line 110, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('mainBegin', $featureOrdering)}")) # from line 110, col 1.
+        _v = VFFSL(SL,"insertCodeForFeatures",False)('mainBegin', VFFSL(SL,"featureOrdering",True)) # u"${insertCodeForFeatures('mainBegin', $featureOrdering)}" on line 118, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('mainBegin', $featureOrdering)}")) # from line 118, col 1.
         write(u'''
 ''')
         #  This needs to be extracted into a function so that it can be indented further if necessary
         write(u'''/* Code that actually does stuff goes here */
-_segment0();
-
 ''')
-        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('mainEnd', VFFSL(SL,"featureOrdering",True)) # u"${insertCodeForFeaturesInReverseOrder('mainEnd', $featureOrdering)}" on line 116, col 1
-        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('mainEnd', $featureOrdering)}")) # from line 116, col 1.
+        _v = VFFSL(SL,"runningSimulationCode",True) # u'${runningSimulationCode}' on line 122, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'${runningSimulationCode}')) # from line 122, col 1.
+        write(u'''
+''')
+        _v = VFFSL(SL,"insertCodeForFeaturesInReverseOrder",False)('mainEnd', VFFSL(SL,"featureOrdering",True)) # u"${insertCodeForFeaturesInReverseOrder('mainEnd', $featureOrdering)}" on line 124, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeaturesInReverseOrder('mainEnd', $featureOrdering)}")) # from line 124, col 1.
         # 
-        for field in VFFSL(SL,"fields",True): # generated from line 118, col 3
-            _v = VFFSL(SL,"field.free",True) # u'${field.free}' on line 119, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${field.free}')) # from line 119, col 1.
+        for field in VFFSL(SL,"fields",True): # generated from line 126, col 3
+            _v = VFFSL(SL,"field.free",True) # u'${field.free}' on line 127, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${field.free}')) # from line 127, col 1.
         write(u'''
 ''')
         # 
@@ -313,7 +345,7 @@ _segment0();
 
 
 
-        ## CHEETAH: generated from @def setVectorAllocSizes($vectors) at line 125, col 1.
+        ## CHEETAH: generated from @def setVectorAllocSizes($vectors) at line 133, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -329,19 +361,19 @@ _segment0();
         ## START - generated method body
         
         # 
-        for vector in vectors: # generated from line 127, col 3
-            for basis in vector.basesNeeded: # generated from line 128, col 5
-                _v = VFFSL(SL,"vector.allocSize",True) # u'${vector.allocSize}' on line 129, col 1
-                if _v is not None: write(_filter(_v, rawExpr=u'${vector.allocSize}')) # from line 129, col 1.
+        for vector in vectors: # generated from line 135, col 3
+            for basis in vector.basesNeeded: # generated from line 136, col 5
+                _v = VFFSL(SL,"vector.allocSize",True) # u'${vector.allocSize}' on line 137, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.allocSize}')) # from line 137, col 1.
                 write(u''' = MAX(''')
-                _v = VFFSL(SL,"vector.allocSize",True) # u'${vector.allocSize}' on line 129, col 27
-                if _v is not None: write(_filter(_v, rawExpr=u'${vector.allocSize}')) # from line 129, col 27.
+                _v = VFFSL(SL,"vector.allocSize",True) # u'${vector.allocSize}' on line 137, col 27
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.allocSize}')) # from line 137, col 27.
                 write(u''', ''')
-                _v = VFN(VFFSL(SL,"vector.field",True),"sizeInBasis",False)(basis) # u'${vector.field.sizeInBasis(basis)}' on line 129, col 48
-                if _v is not None: write(_filter(_v, rawExpr=u'${vector.field.sizeInBasis(basis)}')) # from line 129, col 48.
+                _v = VFN(VFFSL(SL,"vector.field",True),"sizeInBasis",False)(basis) # u'${vector.field.sizeInBasis(basis)}' on line 137, col 48
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.field.sizeInBasis(basis)}')) # from line 137, col 48.
                 write(u''' * _''')
-                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 129, col 86
-                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 129, col 86.
+                _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 137, col 86
+                if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 137, col 86.
                 write(u'''_ncomponents);
 ''')
         # 
@@ -356,7 +388,7 @@ _segment0();
 
 
 
-        ## CHEETAH: generated from @def mainBegin($dict) at line 135, col 1.
+        ## CHEETAH: generated from @def mainBegin($dict) at line 143, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -374,16 +406,16 @@ _segment0();
         # 
         initialisedDimRepArrays = set()
         # 
-        for field in VFFSL(SL,"fields",True): # generated from line 139, col 3
+        for field in VFFSL(SL,"fields",True): # generated from line 147, col 3
             # 
-            for dim in field.dimensions: # generated from line 141, col 5
-                for dimRep in [dimRep for dimRep in dim.representations if dimRep and not dimRep.arrayName in initialisedDimRepArrays]: # generated from line 142, col 7
-                    _v = VFFSL(SL,"dimRep.initialiseArray",True) # u'${dimRep.initialiseArray}' on line 143, col 1
-                    if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.initialiseArray}')) # from line 143, col 1.
+            for dim in field.dimensions: # generated from line 149, col 5
+                for dimRep in [dimRep for dimRep in dim.representations if dimRep and not dimRep.arrayName in initialisedDimRepArrays]: # generated from line 150, col 7
+                    _v = VFFSL(SL,"dimRep.initialiseArray",True) # u'${dimRep.initialiseArray}' on line 151, col 1
+                    if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.initialiseArray}')) # from line 151, col 1.
                     initialisedDimRepArrays.add(dimRep.arrayName)
-        for mg in VFFSL(SL,"momentGroups",True): # generated from line 148, col 3
-            _v = VFFSL(SL,"mg.outputField.initialise",True) # u'${mg.outputField.initialise}' on line 149, col 1
-            if _v is not None: write(_filter(_v, rawExpr=u'${mg.outputField.initialise}')) # from line 149, col 1.
+        for mg in VFFSL(SL,"momentGroups",True): # generated from line 156, col 3
+            _v = VFFSL(SL,"mg.outputField.initialise",True) # u'${mg.outputField.initialise}' on line 157, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${mg.outputField.initialise}')) # from line 157, col 1.
         # 
         
         ########################################
@@ -414,7 +446,9 @@ _segment0();
         # 
         # SimulationDriver.tmpl
         # 
-        # Created by Graham Dennis on 2008-02-27.
+        # Created by Graham Dennis on 2008-02-27
+        # Modified by Liam Madge on 2013-09-11
+        # Modified by Gregory Bogomiagkov on 2013-09-12
         # 
         # Copyright (c) 2008-2012, Graham Dennis
         # 
@@ -440,6 +474,7 @@ _segment0();
 
 
 
+
 ''')
         
         ########################################
diff --git a/xpdeint/SimulationDrivers/SimulationDriver.tmpl b/xpdeint/SimulationDrivers/SimulationDriver.tmpl
index 118e3a2..e6baa6d 100644
--- a/xpdeint/SimulationDrivers/SimulationDriver.tmpl
+++ b/xpdeint/SimulationDrivers/SimulationDriver.tmpl
@@ -1,7 +1,9 @@
 @*
 SimulationDriver.tmpl
 
-Created by Graham Dennis on 2008-02-27.
+Created by Graham Dennis on 2008-02-27
+Modified by Liam Madge on 2013-09-11
+Modified by Gregory Bogomiagkov on 2013-09-12
 
 Copyright (c) 2008-2012, Graham Dennis
 
@@ -34,6 +36,12 @@ ${topLevelSegmentFunctionImplementation}@slurp
   @#
 @end def
 
+ at def runningSimulationCode
+  @#
+_segment0();
+  @#
+ at end def
+
 @def topLevelSegmentFunctionImplementation
   @#
 void _segment0()
@@ -111,7 +119,7 @@ ${insertCodeForFeatures('mainBegin', $featureOrdering)}@slurp
 
 @# This needs to be extracted into a function so that it can be indented further if necessary
 /* Code that actually does stuff goes here */
-_segment0();
+${runningSimulationCode}@slurp
 
 ${insertCodeForFeaturesInReverseOrder('mainEnd', $featureOrdering)}@slurp
   @#
diff --git a/xpdeint/SimulationElement.py b/xpdeint/SimulationElement.py
index 5f9b25e..1528543 100644
--- a/xpdeint/SimulationElement.py
+++ b/xpdeint/SimulationElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.277653
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/SimulationElement.tmpl'
+__CHEETAH_genTime__ = 1389652445.171348
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Feb 24 16:41:39 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/DSFMTGenerator.py b/xpdeint/Stochastic/Generators/DSFMTGenerator.py
index a0c0406..cde4293 100644
--- a/xpdeint/Stochastic/Generators/DSFMTGenerator.py
+++ b/xpdeint/Stochastic/Generators/DSFMTGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.426863
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/Generators/DSFMTGenerator.tmpl'
+__CHEETAH_genTime__ = 1389652445.791002
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/DSFMTGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/Generator.py b/xpdeint/Stochastic/Generators/Generator.py
index d7040ed..5b99919 100644
--- a/xpdeint/Stochastic/Generators/Generator.py
+++ b/xpdeint/Stochastic/Generators/Generator.py
@@ -35,10 +35,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.35564
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/Generators/Generator.tmpl'
-__CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
+__CHEETAH_genTime__ = 1389652445.624598
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/Generator.tmpl'
+__CHEETAH_srcLastModified__ = 'Mon Oct 14 10:16:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -270,10 +270,12 @@ srandomdev();
         write(u'''_local_seeds[''')
         _v = VFFSL(SL,"seedCount",True) # u'${seedCount}' on line 95, col 39
         if _v is not None: write(_filter(_v, rawExpr=u'${seedCount}')) # from line 95, col 39.
-        write(u'''] = { ''')
-        _v = ', '.join([''.join([str(VFFSL(SL,"generatorName",True)),u'_seeds[',str(VFFSL(SL,"i",True)),u']',str(VFFSL(SL,"seedOffset",True))]) for i in xrange(VFFSL(SL,"seedCount",True))]) # u"${', '.join([c'${generatorName}_seeds[$i]${seedOffset}' for i in xrange($seedCount)])}" on line 95, col 57
-        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join([c'${generatorName}_seeds[$i]${seedOffset}' for i in xrange($seedCount)])}")) # from line 95, col 57.
-        write(u''' };
+        write(u'''] = {
+  ''')
+        _v = ',\n  '.join([''.join([str(VFFSL(SL,"generatorName",True)),u'_seeds[',str(VFFSL(SL,"i",True)),u']+(0',str(VFFSL(SL,"seedOffset",True)),u')*',str(VFFSL(SL,"i",True)+1)]) for i in xrange(VFFSL(SL,"seedCount",True))]) # u"${',\\n  '.join([c'${generatorName}_seeds[$i]+(0${seedOffset})*${i+1}' for i in xrange($seedCount)])}" on line 96, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u"${',\\n  '.join([c'${generatorName}_seeds[$i]+(0${seedOffset})*${i+1}' for i in xrange($seedCount)])}")) # from line 96, col 3.
+        write(u'''
+};
 ''')
         # 
         
@@ -287,7 +289,7 @@ srandomdev();
 
 
 
-        ## CHEETAH: generated from @def runtimeGenerateSeeds at line 99, col 1.
+        ## CHEETAH: generated from @def runtimeGenerateSeeds at line 101, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -303,12 +305,12 @@ srandomdev();
         ## START - generated method body
         
         write(u'''for (unsigned long _i0=0; _i0 < ''')
-        _v = VFFSL(SL,"seedCount",True) # u'${seedCount}' on line 100, col 33
-        if _v is not None: write(_filter(_v, rawExpr=u'${seedCount}')) # from line 100, col 33.
+        _v = VFFSL(SL,"seedCount",True) # u'${seedCount}' on line 102, col 33
+        if _v is not None: write(_filter(_v, rawExpr=u'${seedCount}')) # from line 102, col 33.
         write(u'''; _i0++)
   ''')
-        _v = VFFSL(SL,"generatorName",True) # u'${generatorName}' on line 101, col 3
-        if _v is not None: write(_filter(_v, rawExpr=u'${generatorName}')) # from line 101, col 3.
+        _v = VFFSL(SL,"generatorName",True) # u'${generatorName}' on line 103, col 3
+        if _v is not None: write(_filter(_v, rawExpr=u'${generatorName}')) # from line 103, col 3.
         write(u'''_seeds[_i0] = (uint32_t)random();
 ''')
         
@@ -327,7 +329,7 @@ srandomdev();
         the same results.
         """
 
-        ## CHEETAH: generated from @def xsilOutputInfo($dict) at line 104, col 1.
+        ## CHEETAH: generated from @def xsilOutputInfo($dict) at line 106, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -345,25 +347,25 @@ srandomdev();
         # 
         fp = dict['fp']
         # 
-        if len(VFFSL(SL,"seedArray",True)): # generated from line 113, col 3
+        if len(VFFSL(SL,"seedArray",True)): # generated from line 115, col 3
             return
         # 
         write(u'''fprintf(''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 117, col 9
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 117, col 9.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 119, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 119, col 9.
         write(u''', "\\nNo seeds were provided for noise vector \'''')
-        _v = VFFSL(SL,"parent.parent.name",True) # u'${parent.parent.name}' on line 117, col 58
-        if _v is not None: write(_filter(_v, rawExpr=u'${parent.parent.name}')) # from line 117, col 58.
+        _v = VFFSL(SL,"parent.parent.name",True) # u'${parent.parent.name}' on line 119, col 58
+        if _v is not None: write(_filter(_v, rawExpr=u'${parent.parent.name}')) # from line 119, col 58.
         write(u'''\'. The seeds generated were:\\n");
 fprintf(''')
-        _v = VFFSL(SL,"fp",True) # u'$fp' on line 118, col 9
-        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 118, col 9.
+        _v = VFFSL(SL,"fp",True) # u'$fp' on line 120, col 9
+        if _v is not None: write(_filter(_v, rawExpr=u'$fp')) # from line 120, col 9.
         write(u''', "    ''')
-        _v = ', '.join(['%u' for _ in xrange(VFFSL(SL,"seedCount",True))]) # u"${', '.join(['%u' for _ in xrange($seedCount)])}" on line 118, col 19
-        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join(['%u' for _ in xrange($seedCount)])}")) # from line 118, col 19.
+        _v = ', '.join(['%u' for _ in xrange(VFFSL(SL,"seedCount",True))]) # u"${', '.join(['%u' for _ in xrange($seedCount)])}" on line 120, col 19
+        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join(['%u' for _ in xrange($seedCount)])}")) # from line 120, col 19.
         write(u'''\\n", ''')
-        _v = ', '.join([''.join([str(VFFSL(SL,"generatorName",True)),u'_seeds[',str(VFFSL(SL,"i",True)),u']']) for i in xrange(VFFSL(SL,"seedCount",True))]) # u"${', '.join([c'${generatorName}_seeds[$i]' for i in xrange($seedCount)])}" on line 118, col 72
-        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join([c'${generatorName}_seeds[$i]' for i in xrange($seedCount)])}")) # from line 118, col 72.
+        _v = ', '.join([''.join([str(VFFSL(SL,"generatorName",True)),u'_seeds[',str(VFFSL(SL,"i",True)),u']']) for i in xrange(VFFSL(SL,"seedCount",True))]) # u"${', '.join([c'${generatorName}_seeds[$i]' for i in xrange($seedCount)])}" on line 120, col 72
+        if _v is not None: write(_filter(_v, rawExpr=u"${', '.join([c'${generatorName}_seeds[$i]' for i in xrange($seedCount)])}")) # from line 120, col 72.
         write(u''');
 ''')
         
diff --git a/xpdeint/Stochastic/Generators/Generator.tmpl b/xpdeint/Stochastic/Generators/Generator.tmpl
index 0b4223f..5fe2af5 100644
--- a/xpdeint/Stochastic/Generators/Generator.tmpl
+++ b/xpdeint/Stochastic/Generators/Generator.tmpl
@@ -92,7 +92,9 @@ srandomdev();
   @set $featureOrdering = ['Driver']
   @silent seedOffset = $insertCodeForFeatures('seedOffset', $featureOrdering)
   @#
-uint32_t ${generatorName}_local_seeds[${seedCount}] = { ${', '.join([c'${generatorName}_seeds[$i]${seedOffset}' for i in xrange($seedCount)])} };
+uint32_t ${generatorName}_local_seeds[${seedCount}] = {
+  ${',\n  '.join([c'${generatorName}_seeds[$i]+(0${seedOffset})*${i+1}' for i in xrange($seedCount)])}
+};
   @#
 @end def
 
diff --git a/xpdeint/Stochastic/Generators/MKLGenerator.py b/xpdeint/Stochastic/Generators/MKLGenerator.py
index e9a9ba5..f98cdf7 100644
--- a/xpdeint/Stochastic/Generators/MKLGenerator.py
+++ b/xpdeint/Stochastic/Generators/MKLGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.370998
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/Generators/MKLGenerator.tmpl'
+__CHEETAH_genTime__ = 1389652445.431739
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/MKLGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/POSIXGenerator.py b/xpdeint/Stochastic/Generators/POSIXGenerator.py
index 1a0ad1c..291a22a 100644
--- a/xpdeint/Stochastic/Generators/POSIXGenerator.py
+++ b/xpdeint/Stochastic/Generators/POSIXGenerator.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.400994
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/Generators/POSIXGenerator.tmpl'
+__CHEETAH_genTime__ = 1389652445.501446
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/POSIXGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Aug 29 13:13:17 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/SolirteGenerator.py b/xpdeint/Stochastic/Generators/SolirteGenerator.py
index 9ba5401..c4cce7e 100644
--- a/xpdeint/Stochastic/Generators/SolirteGenerator.py
+++ b/xpdeint/Stochastic/Generators/SolirteGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.421733
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/Generators/SolirteGenerator.tmpl'
+__CHEETAH_genTime__ = 1389652445.5027
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/SolirteGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
index effa9fc..7fab9cf 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.452896
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652445.647655
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
index 6db4180..39301cf 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.455465
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652445.565054
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
index 4bd5fe7..a4554ca 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.475867
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652445.749136
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -162,12 +162,12 @@ class GaussianRandomVariable(ScriptElement):
         # 
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 67, col 3
-            ## START CAPTURE REGION: _77271064 loopString at line 68, col 5 in the source.
-            _orig_trans_77271064 = trans
-            _wasBuffering_77271064 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _73475261 loopString at line 68, col 5 in the source.
+            _orig_trans_73475261 = trans
+            _wasBuffering_73475261 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_77271064 = DummyTransaction()
-            write = _captureCollector_77271064.response().write
+            trans = _captureCollector_73475261 = DummyTransaction()
+            write = _captureCollector_73475261.response().write
             fixupString = ' * '.join(''.join([str(VFFSL(SL,"dimRep.stepSizeArrayName",True)),u'_invsqrt[',str(VFFSL(SL,"dimRep.index",True)),u' + ',str(VFFSL(SL,"dimRep.localOffset",True)),u']']) for dimRep in nonUniformDimReps)
             for component in noiseVector.components: # generated from line 70, col 7
                 _v = VFFSL(SL,"component",True) # u'${component}' on line 71, col 1
@@ -177,13 +177,13 @@ class GaussianRandomVariable(ScriptElement):
                 if _v is not None: write(_filter(_v, rawExpr=u'${fixupString}')) # from line 71, col 17.
                 write(u''';
 ''')
-            trans = _orig_trans_77271064
+            trans = _orig_trans_73475261
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_77271064 
-            loopString = _captureCollector_77271064.response().getvalue()
-            del _orig_trans_77271064
-            del _captureCollector_77271064
-            del _wasBuffering_77271064
+            self._CHEETAH__isBuffering = _wasBuffering_73475261 
+            loopString = _captureCollector_73475261.response().getvalue()
+            del _orig_trans_73475261
+            del _captureCollector_73475261
+            del _wasBuffering_73475261
             _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 74, col 1
             if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 74, col 1.
         # 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
index 3ceefbe..921f720 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.471774
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652445.646922
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py b/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
index d15cbeb..43c654f 100644
--- a/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.562143
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652446.228393
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sun Feb 12 20:15:16 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -104,12 +104,12 @@ const real _old_volume = (''')
         write(u''' * _old_step);
 
 ''')
-        ## START CAPTURE REGION: _54657516 loopString at line 39, col 3 in the source.
-        _orig_trans_54657516 = trans
-        _wasBuffering_54657516 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _85991179 loopString at line 39, col 3 in the source.
+        _orig_trans_85991179 = trans
+        _wasBuffering_85991179 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_54657516 = DummyTransaction()
-        write = _captureCollector_54657516.response().write
+        trans = _captureCollector_85991179 = DummyTransaction()
+        write = _captureCollector_85991179.response().write
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 41, col 5
             volumeFixup = ' * '.join('%s * (%s)' % (dimRep.stepSize, dimRep.volumePrefactor) for dimRep in nonUniformDimReps)
@@ -138,13 +138,13 @@ const real _old_volume = (''')
             if _v is not None: write(_filter(_v, rawExpr=u'${volumeFixup}')) # from line 50, col 172.
             write(u'''));
 ''')
-        trans = _orig_trans_54657516
+        trans = _orig_trans_85991179
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_54657516 
-        loopString = _captureCollector_54657516.response().getvalue()
-        del _orig_trans_54657516
-        del _captureCollector_54657516
-        del _wasBuffering_54657516
+        self._CHEETAH__isBuffering = _wasBuffering_85991179 
+        loopString = _captureCollector_85991179.response().getvalue()
+        del _orig_trans_85991179
+        del _captureCollector_85991179
+        del _wasBuffering_85991179
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 53, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 53, col 1.
         write(u'''
@@ -193,12 +193,12 @@ const real _old_volume = (''')
         write(u''';
 const real _var = 1.0 / _dVdt;
 ''')
-        ## START CAPTURE REGION: _83720223 loopString at line 74, col 3 in the source.
-        _orig_trans_83720223 = trans
-        _wasBuffering_83720223 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _80253774 loopString at line 74, col 3 in the source.
+        _orig_trans_80253774 = trans
+        _wasBuffering_80253774 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_83720223 = DummyTransaction()
-        write = _captureCollector_83720223.response().write
+        trans = _captureCollector_80253774 = DummyTransaction()
+        write = _captureCollector_80253774.response().write
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 76, col 5
             volumeFixup = ' * '.join('%s * (%s)' % (dimRep.stepSize, dimRep.volumePrefactor) for dimRep in nonUniformDimReps)
@@ -224,13 +224,13 @@ const real _var = 1.0 / _dVdt;
             if _v is not None: write(_filter(_v, rawExpr=u'${volumeFixup}')) # from line 85, col 84.
             write(u''');
 ''')
-        trans = _orig_trans_83720223
+        trans = _orig_trans_80253774
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_83720223 
-        loopString = _captureCollector_83720223.response().getvalue()
-        del _orig_trans_83720223
-        del _captureCollector_83720223
-        del _wasBuffering_83720223
+        self._CHEETAH__isBuffering = _wasBuffering_80253774 
+        loopString = _captureCollector_80253774.response().getvalue()
+        del _orig_trans_80253774
+        del _captureCollector_80253774
+        del _wasBuffering_80253774
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 88, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 88, col 1.
         # 
diff --git a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py b/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
index 0f65831..f32f6ec 100644
--- a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.491777
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1389652445.834884
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/ComputedVector.py b/xpdeint/Vectors/ComputedVector.py
index 041dd59..b7f6baf 100644
--- a/xpdeint/Vectors/ComputedVector.py
+++ b/xpdeint/Vectors/ComputedVector.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.542305
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/ComputedVector.tmpl'
+__CHEETAH_genTime__ = 1389652445.950886
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/ComputedVector.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/NoiseVector.py b/xpdeint/Vectors/NoiseVector.py
index 7b8e07e..3252752 100644
--- a/xpdeint/Vectors/NoiseVector.py
+++ b/xpdeint/Vectors/NoiseVector.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.558946
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/NoiseVector.tmpl'
+__CHEETAH_genTime__ = 1389652446.007444
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/NoiseVector.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorElement.py b/xpdeint/Vectors/VectorElement.py
index c0f402c..ab99e75 100644
--- a/xpdeint/Vectors/VectorElement.py
+++ b/xpdeint/Vectors/VectorElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.616958
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/VectorElement.tmpl'
+__CHEETAH_genTime__ = 1389652446.482126
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:30:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -495,12 +495,12 @@ _active_''')
             modFunction = 'abs'
         else: # generated from line 134, col 3
             modFunction = 'mod2'
-        ## START CAPTURE REGION: _54047541 loopContents at line 137, col 3 in the source.
-        _orig_trans_54047541 = trans
-        _wasBuffering_54047541 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _48891470 loopContents at line 137, col 3 in the source.
+        _orig_trans_48891470 = trans
+        _wasBuffering_48891470 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_54047541 = DummyTransaction()
-        write = _captureCollector_54047541.response().write
+        trans = _captureCollector_48891470 = DummyTransaction()
+        write = _captureCollector_48891470.response().write
         write(u'''real _current_size = ''')
         _v = VFFSL(SL,"modFunction",True) # u'${modFunction}' on line 138, col 22
         if _v is not None: write(_filter(_v, rawExpr=u'${modFunction}')) # from line 138, col 22.
@@ -514,13 +514,13 @@ if (_current_size > ''')
         if _v is not None: write(_filter(_v, rawExpr=u'${variableName}')) # from line 140, col 3.
         write(u''' = _current_size;
 ''')
-        trans = _orig_trans_54047541
+        trans = _orig_trans_48891470
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_54047541 
-        loopContents = _captureCollector_54047541.response().getvalue()
-        del _orig_trans_54047541
-        del _captureCollector_54047541
-        del _wasBuffering_54047541
+        self._CHEETAH__isBuffering = _wasBuffering_48891470 
+        loopContents = _captureCollector_48891470.response().getvalue()
+        del _orig_trans_48891470
+        del _captureCollector_48891470
+        del _wasBuffering_48891470
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)([self], loopContents, basis = basis) # u'${loopOverVectorsWithInnerContentTemplate([self], loopContents, basis = basis)}' on line 142, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate([self], loopContents, basis = basis)}')) # from line 142, col 1.
         if VFFSL(SL,"type",True) == 'complex': # generated from line 143, col 3
diff --git a/xpdeint/Vectors/VectorInitialisation.py b/xpdeint/Vectors/VectorInitialisation.py
index e9a6720..a5cd40f 100644
--- a/xpdeint/Vectors/VectorInitialisation.py
+++ b/xpdeint/Vectors/VectorInitialisation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.620831
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/VectorInitialisation.tmpl'
+__CHEETAH_genTime__ = 1389652445.967572
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:30:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromCDATA.py b/xpdeint/Vectors/VectorInitialisationFromCDATA.py
index c56e5fb..0737e1d 100644
--- a/xpdeint/Vectors/VectorInitialisationFromCDATA.py
+++ b/xpdeint/Vectors/VectorInitialisationFromCDATA.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.612134
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/VectorInitialisationFromCDATA.tmpl'
+__CHEETAH_genTime__ = 1389652446.209509
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisationFromCDATA.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:17:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromHDF5.py b/xpdeint/Vectors/VectorInitialisationFromHDF5.py
index f0e8969..ebedf4b 100644
--- a/xpdeint/Vectors/VectorInitialisationFromHDF5.py
+++ b/xpdeint/Vectors/VectorInitialisationFromHDF5.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.868601
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/VectorInitialisationFromHDF5.tmpl'
+__CHEETAH_genTime__ = 1389652446.615517
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisationFromHDF5.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:17:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromXSIL.py b/xpdeint/Vectors/VectorInitialisationFromXSIL.py
index e24dd4c..54e3787 100644
--- a/xpdeint/Vectors/VectorInitialisationFromXSIL.py
+++ b/xpdeint/Vectors/VectorInitialisationFromXSIL.py
@@ -36,10 +36,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.885613
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri May 25 16:17:13 2012'
+__CHEETAH_genTime__ = 1389652446.664879
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:18 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -842,10 +842,7 @@ if (_inputfield''')
             write(u''': %e, d''')
             _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 397, col 58
             if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 397, col 58.
-            write(u''': %''')
-            _v = VFFSL(SL,"dimRepTypeFormat",True) # u'${dimRepTypeFormat}' on line 397, col 71
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimRepTypeFormat}')) # from line 397, col 71.
-            write(u''', diff/Delta: %e\\n",
+            write(u''': %e, diff/Delta: %e\\n",
                            ''')
             _v = VFFSL(SL,"dimRep.loopIndex",True) # u'${dimRep.loopIndex}' on line 398, col 28
             if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.loopIndex}')) # from line 398, col 28.
@@ -859,18 +856,18 @@ if (_inputfield''')
                            _inputfield_''')
             _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 40
             if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 40.
-            write(u''', d''')
-            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 53
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 53.
+            write(u''', (real)d''')
+            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 59
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 59.
             write(u''', abs(_inputfield_''')
-            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 81
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 81.
+            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 87
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 87.
             write(u''' - ''')
-            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 94
-            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 94.
+            _v = VFFSL(SL,"dimName",True) # u'${dimName}' on line 399, col 100
+            if _v is not None: write(_filter(_v, rawExpr=u'${dimName}')) # from line 399, col 100.
             write(u''')/_dimDelta[''')
-            _v = VFFSL(SL,"dimensionNumber",True) # u'$dimensionNumber' on line 399, col 116
-            if _v is not None: write(_filter(_v, rawExpr=u'$dimensionNumber')) # from line 399, col 116.
+            _v = VFFSL(SL,"dimensionNumber",True) # u'$dimensionNumber' on line 399, col 122
+            if _v is not None: write(_filter(_v, rawExpr=u'$dimensionNumber')) # from line 399, col 122.
             write(u''']);
 }
 
@@ -915,22 +912,13 @@ if (_isPrecisionDouble) {
             write(u'''_index_pointer + _component] = (real)_value;
 ''')
         else: # generated from line 426, col 3
-            write(u'''if (_component & 1)
-  _active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 428, col 11
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 428, col 11.
-            write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 428, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 428, col 25.
-            write(u'''_index_pointer + _component/2].Im() = (real)_value;
-else
-  _active_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 430, col 11
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 430, col 11.
-            write(u'''[_''')
-            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 430, col 25
-            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 430, col 25.
-            write(u'''_index_pointer + _component/2].Re() = (real)_value;
+            write(u'''reinterpret_cast<real*>(_active_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 427, col 33
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 427, col 33.
+            write(u''')[2*_''')
+            _v = VFFSL(SL,"vector.id",True) # u'${vector.id}' on line 427, col 50
+            if _v is not None: write(_filter(_v, rawExpr=u'${vector.id}')) # from line 427, col 50.
+            write(u'''_index_pointer + _component] = (real)_value;
 ''')
         write(u'''  
 _ENDLOOP:;
diff --git a/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl b/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
index 0dd126f..2253d90 100644
--- a/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
+++ b/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
@@ -394,9 +394,9 @@ if (_inputfield${dimRep.loopIndex} < 0 || _inputfield${dimRep.loopIndex} >= _inp
     @set dimRepTypeFormat = {'real': 'e', 'long': 'li'}[dimRep.type]
     _LOG(_ERROR_LOG_LEVEL, "The input field coordinate in the '$dimName' dimension does not match up with the field coordinate.\n"
                            "${dimRep.loopIndex}: %li, ${dimName}: %${dimRepTypeFormat}, _inputfield${dimRep.loopIndex}: %li, "
-                           "_inputfield_${dimName}: %e, d${dimName}: %${dimRepTypeFormat}, diff/Delta: %e\n",
+                           "_inputfield_${dimName}: %e, d${dimName}: %e, diff/Delta: %e\n",
                            ${dimRep.loopIndex}, ${dimName}, _inputfield${dimRep.loopIndex},
-                           _inputfield_${dimName}, d${dimName}, abs(_inputfield_${dimName} - ${dimName})/_dimDelta[$dimensionNumber]);
+                           _inputfield_${dimName}, (real)d${dimName}, abs(_inputfield_${dimName} - ${dimName})/_dimDelta[$dimensionNumber]);
 }
 
 _inputfield_index_pointer += _inputfield${dimRep.loopIndex}${''.join([c' * _inputLattice[$i]' for i in range(dimensionNumber + 1, len($vector.field.dimensions))])};
@@ -424,10 +424,7 @@ if (_isPrecisionDouble) {
   @if $vector.type == 'real'
 _active_${vector.id}[_${vector.id}_index_pointer + _component] = (real)_value;
   @else
-if (_component & 1)
-  _active_${vector.id}[_${vector.id}_index_pointer + _component/2].Im() = (real)_value;
-else
-  _active_${vector.id}[_${vector.id}_index_pointer + _component/2].Re() = (real)_value;
+reinterpret_cast<real*>(_active_${vector.id})[2*_${vector.id}_index_pointer + _component] = (real)_value;
   @end if
   
 _ENDLOOP:;
diff --git a/xpdeint/Version.py b/xpdeint/Version.py
index 69280f8..ed35e29 100644
--- a/xpdeint/Version.py
+++ b/xpdeint/Version.py
@@ -1,4 +1,4 @@
 #!/usr/bin/env python
 # encoding: utf-8
 """This is generated by the makefile via the shell program \'version.sh\'"""
-subversionRevisionString ="r2874"
+subversionRevisionString ="r2941"
diff --git a/xpdeint/XMDS2Parser.py b/xpdeint/XMDS2Parser.py
index f84d124..9b1e489 100755
--- a/xpdeint/XMDS2Parser.py
+++ b/xpdeint/XMDS2Parser.py
@@ -62,6 +62,7 @@ from xpdeint.Segments.TopLevelSequenceElement import TopLevelSequenceElement as
 from xpdeint.SimulationDrivers.SimulationDriver import SimulationDriver as SimulationDriverTemplate
 from xpdeint.SimulationDrivers.MultiPathDriver import MultiPathDriver as MultiPathDriverTemplate
 from xpdeint.SimulationDrivers.MPIMultiPathDriver import MPIMultiPathDriver as MPIMultiPathDriverTemplate
+from xpdeint.SimulationDrivers.AdaptiveMPIMultiPathDriver import AdaptiveMPIMultiPathDriver as AdaptiveMPIMultiPathDriverTemplate
 from xpdeint.SimulationDrivers.DistributedMPIDriver import DistributedMPIDriver as DistributedMPIDriverTemplate
 
 from xpdeint.Segments import Integrators
@@ -198,6 +199,8 @@ class XMDS2Parser(ScriptParser):
             driverClass = MultiPathDriverTemplate
           elif driverName == 'mpi-multi-path':
             driverClass = MPIMultiPathDriverTemplate
+          elif driverName == 'adaptive-mpi-multi-path':
+            driverClass = AdaptiveMPIMultiPathDriverTemplate
           else:
             raise UnknownDriverException()
           
@@ -228,7 +231,7 @@ class XMDS2Parser(ScriptParser):
           raise UnknownDriverException()
       except UnknownDriverException, err:
         raise ParserException(driverElement, "Unknown driver type '%(driverName)s'. "
-                                             "The options are 'none' (default), 'multi-path', 'mpi-multi-path' or 'distributed-mpi'." % locals())
+                                             "The options are 'none' (default), 'multi-path', 'mpi-multi-path', 'adaptive-mpi-multi-path' or 'distributed-mpi'." % locals())
       
       if driverClass == MultiPathDriverTemplate:
         kindString = None
@@ -1375,6 +1378,12 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
       'ARK45': (Integrators.AdaptiveStep.AdaptiveStep,             Integrators.RK45Stepper.RK45Stepper),
       'ARK89': (Integrators.AdaptiveStep.AdaptiveStep,             Integrators.RK89Stepper.RK89Stepper),
       'SIC':   (Integrators.FixedStepWithCross.FixedStepWithCross, Integrators.SICStepper.SICStepper),
+      'MM':    (Integrators.FixedStep.FixedStep, Integrators.MMStepper.MMStepper),
+      'REMM':  (Integrators.RichardsonFixedStep.RichardsonFixedStep, Integrators.MMStepper.MMStepper),
+      'BS':    (Integrators.RichardsonFixedStep.RichardsonFixedStep, Integrators.MMStepper.MMStepper), # Synonym for REMM
+      'RERK4': (Integrators.RichardsonFixedStep.RichardsonFixedStep, Integrators.RK4Stepper.RK4Stepper),
+      'RERK9': (Integrators.RichardsonFixedStep.RichardsonFixedStep, Integrators.RK9Stepper.RK9Stepper),
+      'RESI':  (Integrators.RichardsonFixedStep.RichardsonFixedStep, Integrators.SIStepper.SIStepper),
     }
     integratorTemplateClass, stepperTemplateClass = algorithmMap.get(algorithmString, (None, None))
     
@@ -1396,6 +1405,12 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
         "RK89 is probably not the algorithm you want. RK89 is a 9th-order algorithm with embedded 8th-order "
         "where the 8th-order results are just thrown away. Unless you know what you are doing, you probably meant RK9 or ARK89."
       )
+    elif algorithmString == 'MM':
+      parserWarning(
+        integrateElement,
+        "You have selected the Modified Midpoint Stepper directly. To use the full functionality of this "
+        "stepper, use 'REMM' instead, which is Richardson Extrapolation using the Modified Midpoint Stepper."
+      )  
     elif algorithmString in ['SI','SIC']:
       if integrateElement.hasAttribute('iterations'):
         algorithmSpecificOptionsDict['iterations'] = RegularExpressionStrings.integerInString(integrateElement.getAttribute('iterations'))
@@ -1453,7 +1468,20 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
                                                   "as a number." % locals())
         integratorTemplate.cutoff = cutoff
         
-    
+    if integrateElement.hasAttribute('extrapolations'):
+      if isinstance(integratorTemplate, Integrators.RichardsonFixedStep.RichardsonFixedStep):
+        extrapolations = RegularExpressionStrings.integerInString(integrateElement.getAttribute('extrapolations'))
+        if extrapolations < 1:
+          raise ParserException(integrateElement, "Extrapolations element must be 1 or greater (default 4).")
+        else:
+          integratorTemplate.extrapolations = extrapolations
+      else:
+        parserWarning(
+          integrateElement,
+          "Extrapolations attribute is only applicable to fixed step Richardson Extrapolation integrators (including \'BS\'). "
+          "This attribute will been ignored."
+        )
+          
     if not integrateElement.hasAttribute('interval'):
       raise ParserException(integrateElement, "Integrator needs 'interval' attribute.")
     
@@ -1685,13 +1713,21 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
     if kindString == 'ip':
       integratorTemplate = operatorContainer.parent
       
-      if isinstance(integratorTemplate, Integrators.FixedStep.FixedStep) and not constantString:
-        raise ParserException(operatorElement, "Missing 'constant' attribute.")
-      elif isinstance(integratorTemplate, Integrators.AdaptiveStep.AdaptiveStep):
+      if integratorTemplate.supportsConstantIPOperators and not constantString:
+        # Assume that the IP operator is constant
+        operatorTemplateClass = ConstantIPOperatorTemplate
+      elif not integratorTemplate.supportsConstantIPOperators:
         operatorTemplateClass = NonConstantIPOperatorTemplate
       elif constantString == 'yes':
         operatorTemplateClass = ConstantIPOperatorTemplate
       elif constantString == 'no':
+        # We are fixed-step, but non-constant.  Warn the user as this will either be non-optimal, or lower-order than
+        # what they expect
+        parserWarning(operatorElement, "Using 'constant=no' with an IP operator in a fixed-step integrator is not recommended.  "
+                                       "If your IP operator depends on the propagation dimension, use 'constant=yes' as this is faster.  "
+                                       "If your IP operator does depend on the propagation dimension, be aware that this will almost certainly reduce the order "
+                                       "of the integrator, and this is also true if you use an adaptive-step integrator.")
+        
         operatorTemplateClass = NonConstantIPOperatorTemplate
       else:
         raise ParserException(operatorElement, "The 'constant' attribute must be either 'yes' or 'no'.")
@@ -1699,7 +1735,8 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
       parserMethod = self.parseIPOperatorElement
     elif kindString == 'ex':
       if not constantString:
-        raise ParserException(operatorElement, "Missing 'constant' attribute.")
+        # default to constant="no" because it uses less memory, and so is typically slightly faster.
+        constantString = "no"
       
       parserMethod = self.parseEXOperatorElement
       if constantString == 'yes':
@@ -1722,7 +1759,7 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
                                              xmlElement = operatorElement,
                                              **self.argumentsToTemplateConstructors)
     
-    operatorDefinitionCodeBlock = _UserLoopCodeBlock(field = operatorContainer.field, xmlElement = operatorElement,
+    operatorDefinitionCodeBlock = _UserLoopCodeBlock(field = operatorTemplate.field, xmlElement = operatorElement,
                                                      parent = operatorTemplate, **self.argumentsToTemplateConstructors)
     operatorDefinitionCodeBlock.dependenciesEntity = self.parseDependencies(operatorElement, optional=True)
     
@@ -1736,11 +1773,25 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
   def parseIPOperatorElement(self, operatorTemplate, operatorElement):
     operatorDefinitionCodeBlock = operatorTemplate.primaryCodeBlock
     
+    if operatorElement.hasAttribute('dimensions'):
+      dimensionsString = operatorElement.getAttribute('dimensions').strip()
+      dimensionNames = Utilities.symbolsInString(dimensionsString, xmlElement = operatorElement)
+      
+      for dimensionName in dimensionNames:
+        if not operatorTemplate.field.hasDimensionName(dimensionName):
+          raise ParserException(operatorElement, "Cannot list dimension '%(dimensionName)s' as a dimension as the integration vectors don't have this dimension." % locals())
+      field = FieldElementTemplate.sortedFieldWithDimensionNames(dimensionNames, xmlElement = operatorElement)
+      operatorTemplate.field = field
+      operatorTemplate.primaryCodeBlock.field = field
+      
+    
+    basis = None
     if operatorElement.hasAttribute('basis'):
-      operatorDefinitionCodeBlock.basis = \
-        operatorTemplate.field.basisFromString(operatorElement.getAttribute('basis'), xmlElement = operatorElement)
+      basis = operatorTemplate.field.basisFromString(operatorElement.getAttribute('basis'), xmlElement = operatorElement)
     else:
-      operatorDefinitionCodeBlock.basis = operatorTemplate.field.defaultSpectralBasis
+      basis = operatorTemplate.field.defaultSpectralBasis
+    
+    operatorDefinitionCodeBlock.basis = basis
     
     operatorNamesElement = operatorElement.getChildElementByTagName('operator_names')
     operatorNames = Utilities.symbolsInString(operatorNamesElement.innerText(), xmlElement = operatorNamesElement)
@@ -1752,7 +1803,6 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
       if operatorName in self.globalNameSpace['symbolNames']:
         raise ParserException(operatorNamesElement,
                 "Operator name '%(operatorName)s' conflicts with previously-defined symbol." % locals())
-      # self.globalNameSpace['symbolNames'].add(operatorName)
       
     operatorTemplate.operatorNames = operatorNames
     
@@ -1783,10 +1833,7 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
     operatorContainer = operatorTemplate.parent
     integratorTemplate = operatorContainer.parent
     
-    if not isinstance(operatorTemplate, NonConstantIPOperatorTemplate):
-      operatorVectorTemplate.nComponents = len(integratorTemplate.ipPropagationStepFractions) * len(operatorNames)
-    else:
-      operatorVectorTemplate.nComponents = integratorTemplate.nonconstantIPFields * len(operatorNames)
+    operatorVectorTemplate.nComponents = len(integratorTemplate.ipPropagationStepFractions) * len(operatorNames)
     operatorTemplate.operatorVector = operatorVectorTemplate
     
     return operatorTemplate
@@ -1916,8 +1963,8 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
     propDimRep = propagationDimension.representations[0]
     
     if not propDimRep.type == 'real' or not isinstance(propDimRep, UniformDimensionRepresentation):
-      raise ParserException(operatorElement, "Cannot integrate in the '%(propagationDimensionName)s' direction as it is an integer-valued dimension.\n"
-                                             "Cross-propagators can only integrate along normal dimensions." % locals())
+      raise ParserException(operatorElement, "Cannot integrate in the '%(propagationDimensionName)s' direction as it is not a uniformly spaced 'real' dimension.\n"
+                                             "Cross-propagators can only integrate along dimensions with transforms 'dft', 'dct', 'dst', or 'none'." % locals())
     
     fieldPropagationDimensionIndex = fullField.indexOfDimension(propagationDimension)
     # Set the stepCount -- this is the lattice for this dimension minus 1 because we know the value at the starting boundary
diff --git a/xpdeint/includes/solirte/randpool.h b/xpdeint/includes/solirte/randpool.h
index 8f241f8..777e861 100644
--- a/xpdeint/includes/solirte/randpool.h
+++ b/xpdeint/includes/solirte/randpool.h
@@ -109,9 +109,9 @@ class CRandPool
         }
 
         template<class ElementType> inline CDataBuffer_ConstView<ElementType, N * 16> GetConstView(void)
-        { return FPool.GetConstView<ElementType>(); }
+        { return FPool.template GetConstView<ElementType>(); }
         template<class ElementType> inline CDataBuffer_VarView<ElementType, N * 16> GetVarView(void)
-        { return FPool.GetVarView<ElementType>(); }
+        { return FPool.template GetVarView<ElementType>(); }
 
         void *GetDataPointer(void) { return &FPool; }
 
@@ -132,9 +132,9 @@ class CRandPool
         int GetRefCount(void) { return FBlock->GetRefCount(); }
 
         template<class ElementType> inline CDataBuffer_ConstView<ElementType, N * 16> GetConstView(void)
-        { return FBlock->GetConstView<ElementType>(); }
+        { return FBlock->template GetConstView<ElementType>(); }
         template<class ElementType> inline CDataBuffer_VarView<ElementType, N * 16> GetVarView(void)
-        { return FBlock->GetVarView<ElementType>(); }
+        { return FBlock->template GetVarView<ElementType>(); }
 
         void *GetDataPointer(void) { return FBlock->GetDataPointer(); }
 
diff --git a/xpdeint/parser2.py b/xpdeint/parser2.py
index 92fa4d0..b904a4e 100755
--- a/xpdeint/parser2.py
+++ b/xpdeint/parser2.py
@@ -33,7 +33,7 @@ from pkg_resources import resource_filename
 import hashlib
 import shutil
 
-DATA_CACHE_VERSION = 1
+DATA_CACHE_VERSION = 2
 
 import cPickle
 
diff --git a/xpdeint/support/wscript b/xpdeint/support/wscript
index 6ea0314..07c8494 100755
--- a/xpdeint/support/wscript
+++ b/xpdeint/support/wscript
@@ -230,9 +230,7 @@ def configure(conf):
                 msg = "Checking for cautious math flags"
             )
             
-            # Needed to silence some warnings on Mac OS X related to FFTW and AVX
             if sys.platform == 'darwin':
-                env.append_unique('LINKFLAGS', ['-Wl,-no_compact_unwind'])
                 env.append_unique('CXXFLAGS', ['-mmacosx-version-min=%s' % '.'.join(platform.mac_ver()[0].split('.')[:2])])
             
             check_cxx(
diff --git a/xpdeint/support/xpdeint.rnc b/xpdeint/support/xpdeint.rnc
index 20c732c..031a47c 100644
--- a/xpdeint/support/xpdeint.rnc
+++ b/xpdeint/support/xpdeint.rnc
@@ -35,7 +35,7 @@ XSILFile = element xsil_file {
         attribute number { text },
         attribute relative_tolerance { text }?,
         attribute absolute_tolerance { text }?
-    }?
+    }*
 }
 
 InputXSILFile = element input_xsil_file {
@@ -178,6 +178,7 @@ Integrate = element integrate {
     , attribute iterations { text }?
     , attribute cutoff { text }?
     , attribute home_space { text }?
+    , attribute extrapolations { text }?
     , (
         element samples { text }
         | Filters
@@ -215,6 +216,7 @@ IPEXOperatorContents =
     , attribute constant { Bool }?
     , attribute basis { text }?
     , attribute type { text }?
+    , attribute dimensions { text }?
     , ( element operator_names { text }
     & Dependencies?
     & text )
diff --git a/xpdeint/support/xpdeint.rng b/xpdeint/support/xpdeint.rng
index 5d3ecaf..51ecf83 100644
--- a/xpdeint/support/xpdeint.rng
+++ b/xpdeint/support/xpdeint.rng
@@ -56,7 +56,7 @@
       <optional>
         <attribute name="relative_tolerance"/>
       </optional>
-      <optional>
+      <zeroOrMore>
         <element name="moment_group">
           <attribute name="number"/>
           <optional>
@@ -66,7 +66,7 @@
             <attribute name="absolute_tolerance"/>
           </optional>
         </element>
-      </optional>
+      </zeroOrMore>
     </element>
   </define>
   <define name="InputXSILFile">
@@ -370,6 +370,9 @@
       <optional>
         <attribute name="home_space"/>
       </optional>
+      <optional>
+        <attribute name="extrapolations"/>
+      </optional>
       <oneOrMore>
         <choice>
           <element name="samples">
@@ -441,6 +444,9 @@
     <optional>
       <attribute name="type"/>
     </optional>
+    <optional>
+      <attribute name="dimensions"/>
+    </optional>
     <interleave>
       <element name="operator_names">
         <text/>
diff --git a/xpdeint/version.sh b/xpdeint/version.sh
index 86111ca..1e97fcb 100755
--- a/xpdeint/version.sh
+++ b/xpdeint/version.sh
@@ -8,7 +8,7 @@ elif [ -d "../.git" ]; then
   REVISION=\""r`git log -1 | sed -n 's/.*xpdeint@\([0-9]*\).*/\1/p'`"\"
   # If we don't have a revision, then we must have git commits after the last SVN revision.
   # So mark the revision number as the last SVN revision with '+git' appended.
-  if [ "$REVISION" == "\"r\"" ]; then
+  if [ "$REVISION" = "\"r\"" ]; then
     REVISION=\""r`git log | grep git-svn-id | head -1 | sed -n 's/.*xpdeint@\([0-9]*\).*/\1/p'`+git"\"
   fi
 elif [ -f "Version.py" ]; then
@@ -18,4 +18,4 @@ fi
 echo "#!/usr/bin/env python" > Version.py
 echo "# encoding: utf-8" >> Version.py
 echo "\"\"\"This is generated by the makefile via the shell program \'version.sh\'\"\"\"" >> Version.py
-echo "subversionRevisionString =$REVISION" >> Version.py
\ No newline at end of file
+echo "subversionRevisionString =$REVISION" >> Version.py
diff --git a/xpdeint/waf/waflib/Build.pyc b/xpdeint/waf/waflib/Build.pyc
index b37db9b..7b6066a 100644
Binary files a/xpdeint/waf/waflib/Build.pyc and b/xpdeint/waf/waflib/Build.pyc differ
diff --git a/xpdeint/waf/waflib/ConfigSet.pyc b/xpdeint/waf/waflib/ConfigSet.pyc
index ccd4ffd..0c5f165 100644
Binary files a/xpdeint/waf/waflib/ConfigSet.pyc and b/xpdeint/waf/waflib/ConfigSet.pyc differ
diff --git a/xpdeint/waf/waflib/Configure.pyc b/xpdeint/waf/waflib/Configure.pyc
index f560aec..a002e9e 100644
Binary files a/xpdeint/waf/waflib/Configure.pyc and b/xpdeint/waf/waflib/Configure.pyc differ
diff --git a/xpdeint/waf/waflib/Context.pyc b/xpdeint/waf/waflib/Context.pyc
index 21ebfe1..3192ba6 100644
Binary files a/xpdeint/waf/waflib/Context.pyc and b/xpdeint/waf/waflib/Context.pyc differ
diff --git a/xpdeint/waf/waflib/Errors.pyc b/xpdeint/waf/waflib/Errors.pyc
index 5e88127..c39ef57 100644
Binary files a/xpdeint/waf/waflib/Errors.pyc and b/xpdeint/waf/waflib/Errors.pyc differ
diff --git a/xpdeint/waf/waflib/Logs.pyc b/xpdeint/waf/waflib/Logs.pyc
index 56c5fba..c27e6ef 100644
Binary files a/xpdeint/waf/waflib/Logs.pyc and b/xpdeint/waf/waflib/Logs.pyc differ
diff --git a/xpdeint/waf/waflib/Node.pyc b/xpdeint/waf/waflib/Node.pyc
index 001dc7f..5b29de4 100644
Binary files a/xpdeint/waf/waflib/Node.pyc and b/xpdeint/waf/waflib/Node.pyc differ
diff --git a/xpdeint/waf/waflib/Options.pyc b/xpdeint/waf/waflib/Options.pyc
index 7a77d74..a6abd06 100644
Binary files a/xpdeint/waf/waflib/Options.pyc and b/xpdeint/waf/waflib/Options.pyc differ
diff --git a/xpdeint/waf/waflib/Runner.pyc b/xpdeint/waf/waflib/Runner.pyc
index c10c2d5..9b7a7c4 100644
Binary files a/xpdeint/waf/waflib/Runner.pyc and b/xpdeint/waf/waflib/Runner.pyc differ
diff --git a/xpdeint/waf/waflib/Scripting.pyc b/xpdeint/waf/waflib/Scripting.pyc
index ef156e0..8b3dd85 100644
Binary files a/xpdeint/waf/waflib/Scripting.pyc and b/xpdeint/waf/waflib/Scripting.pyc differ
diff --git a/xpdeint/waf/waflib/Task.py b/xpdeint/waf/waflib/Task.py
index 4ae2564..066a99e 100644
--- a/xpdeint/waf/waflib/Task.py
+++ b/xpdeint/waf/waflib/Task.py
@@ -43,10 +43,12 @@ def f(tsk):
 	gen = tsk.generator
 	bld = gen.bld
 	wd = getattr(tsk, 'cwd', None)
+	def _fixSpace(s):
+		return s if ' ' not in s else '"' + s + '"'
 	def p(key):
 		s = env[key]
-		if isinstance(s, str): return '"' + s + '"'
-		return ' '.join('"' + x + '"' for x in s)
+		if isinstance(s, str): return _fixSpace(s)
+		return ' '.join(_fixSpace(x) for x in s)
 	tsk.last_cmd = cmd = \'\'\' %s \'\'\' % s
 	return tsk.exec_command(cmd, cwd=wd, env=env.env or None)
 '''
@@ -60,12 +62,16 @@ def f(tsk):
 	def to_list(xx):
 		if isinstance(xx, str): return [xx]
 		return xx
+	def _fixSpace(s):
+		return s if ' ' not in s else '"' + s + '"'
 	tsk.last_cmd = lst = []
 	%s
 	lst = [x for x in lst if x]
 	return tsk.exec_command(lst, cwd=wd, env=env.env or None)
 '''
 
+def _fixSpace(s): return s if ' ' not in s else '"' + s + '"'
+
 def cache_outputs(cls):
 	"""
 	Task class decorator applied to all task classes by default unless they define the attribute 'nocache'::
@@ -386,14 +392,14 @@ class TaskBase(evil):
 		else:
 			it = var2
 		if isinstance(tmp, str):
-			return [tmp % '"' + x + '"' for x in it]
+			return [tmp % _fixSpace(x) for x in it]
 		else:
 			if Logs.verbose and not tmp and it:
 				Logs.warn('Missing env variable %r for task %r (generator %r)' % (var1, self, self.generator))
 			lst = []
 			for y in it:
 				lst.extend(tmp)
-				lst.append('"' + y + '"')
+				lst.append(y if ' ' not in y else '"' + y + '"')
 			return lst
 
 class Task(TaskBase):
@@ -1021,11 +1027,11 @@ def compile_fun_shell(line):
 	app = parm.append
 	for (var, meth) in extr:
 		if var == 'SRC':
-			if meth: app('"\\"" + tsk.inputs%s + "\\""' % meth)
-			else: app('" ".join(["\\"" + a.path_from(bld.bldnode) + "\\"" for a in tsk.inputs])')
+			if meth: app('_fixSpace(tsk.inputs%s)' % meth)
+			else: app('" ".join([_fixSpace(a.path_from(bld.bldnode)) for a in tsk.inputs])')
 		elif var == 'TGT':
-			if meth: app('"\\"" + tsk.outputs%s + "\\""' % meth)
-			else: app('" ".join(["\\"" + a.path_from(bld.bldnode) + "\\"" for a in tsk.outputs])')
+			if meth: app('_fixSpace(tsk.outputs%s)' % meth)
+			else: app('" ".join([_fixSpace(a.path_from(bld.bldnode)) for a in tsk.outputs])')
 		elif meth:
 			if meth.startswith(':'):
 				m = meth[1:]
diff --git a/xpdeint/waf/waflib/Task.pyc b/xpdeint/waf/waflib/Task.pyc
index 8ed391c..a032c19 100644
Binary files a/xpdeint/waf/waflib/Task.pyc and b/xpdeint/waf/waflib/Task.pyc differ
diff --git a/xpdeint/waf/waflib/TaskGen.pyc b/xpdeint/waf/waflib/TaskGen.pyc
index 77ff1f7..0686526 100644
Binary files a/xpdeint/waf/waflib/TaskGen.pyc and b/xpdeint/waf/waflib/TaskGen.pyc differ
diff --git a/xpdeint/waf/waflib/Tools/__init__.pyc b/xpdeint/waf/waflib/Tools/__init__.pyc
index ad8f809..5e782f1 100644
Binary files a/xpdeint/waf/waflib/Tools/__init__.pyc and b/xpdeint/waf/waflib/Tools/__init__.pyc differ
diff --git a/xpdeint/waf/waflib/Tools/c_config.pyc b/xpdeint/waf/waflib/Tools/c_config.pyc
index e44053b..366b706 100644
Binary files a/xpdeint/waf/waflib/Tools/c_config.pyc and b/xpdeint/waf/waflib/Tools/c_config.pyc differ
diff --git a/xpdeint/waf/waflib/Tools/c_preproc.pyc b/xpdeint/waf/waflib/Tools/c_preproc.pyc
index 0df35e0..86fb289 100644
Binary files a/xpdeint/waf/waflib/Tools/c_preproc.pyc and b/xpdeint/waf/waflib/Tools/c_preproc.pyc differ
diff --git a/xpdeint/waf/waflib/Utils.pyc b/xpdeint/waf/waflib/Utils.pyc
index 0c6c9ad..20433e8 100644
Binary files a/xpdeint/waf/waflib/Utils.pyc and b/xpdeint/waf/waflib/Utils.pyc differ
diff --git a/xpdeint/waf/waflib/__init__.pyc b/xpdeint/waf/waflib/__init__.pyc
index a86c047..5ec5a91 100644
Binary files a/xpdeint/waf/waflib/__init__.pyc and b/xpdeint/waf/waflib/__init__.pyc differ
diff --git a/xpdeint/waf/waflib/ansiterm.pyc b/xpdeint/waf/waflib/ansiterm.pyc
index e016c68..e6842f4 100644
Binary files a/xpdeint/waf/waflib/ansiterm.pyc and b/xpdeint/waf/waflib/ansiterm.pyc differ
diff --git a/xpdeint/waf/waflib/extras/__init__.pyc b/xpdeint/waf/waflib/extras/__init__.pyc
index 3e1f153..8b0ded4 100644
Binary files a/xpdeint/waf/waflib/extras/__init__.pyc and b/xpdeint/waf/waflib/extras/__init__.pyc differ
diff --git a/xpdeint/waf/waflib/extras/compat15.pyc b/xpdeint/waf/waflib/extras/compat15.pyc
index c868826..3d1c087 100644
Binary files a/xpdeint/waf/waflib/extras/compat15.pyc and b/xpdeint/waf/waflib/extras/compat15.pyc differ
diff --git a/xpdeint/xsil2graphics2/MathematicaImport.py b/xpdeint/xsil2graphics2/MathematicaImport.py
index b674f25..11aa3c1 100644
--- a/xpdeint/xsil2graphics2/MathematicaImport.py
+++ b/xpdeint/xsil2graphics2/MathematicaImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.794166
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/xsil2graphics2/MathematicaImport.tmpl'
+__CHEETAH_genTime__ = 1389652446.246509
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/MathematicaImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jun  5 14:30:43 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/xsil2graphics2/MatlabOctaveImport.py b/xpdeint/xsil2graphics2/MatlabOctaveImport.py
index 63a8846..144ff27 100644
--- a/xpdeint/xsil2graphics2/MatlabOctaveImport.py
+++ b/xpdeint/xsil2graphics2/MatlabOctaveImport.py
@@ -32,10 +32,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.883388
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl'
-__CHEETAH_srcLastModified__ = 'Mon Jul 29 21:30:22 2013'
+__CHEETAH_genTime__ = 1389652446.576239
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:13 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -264,7 +264,7 @@ class MatlabOctaveImport(Template):
             if _v is not None: write(_filter(_v, rawExpr=u'${\', \'.join([format(float(e),$stringFormat) for e in var["array"]])}')) # from line 66, col 13.
             write(u'''];
 ''')
-        for varD in xsilObject.dependentVariables: # generated from line 68, col 3
+        for var in xsilObject.dependentVariables: # generated from line 68, col 3
             varName = VFFSL(SL,"generateVariableName",False)(var, objectNum)
             write(u'''clear ''')
             _v = VFFSL(SL,"varName",True) # u'$varName' on line 70, col 7
@@ -275,24 +275,24 @@ class MatlabOctaveImport(Template):
                 _v = VFFSL(SL,"varName",True) # u'$varName' on line 72, col 1
                 if _v is not None: write(_filter(_v, rawExpr=u'$varName')) # from line 72, col 1.
                 write(u''' = [''')
-                _v = ', '.join([format(float(e), VFFSL(SL,"stringFormat",True)) for e in varD["array"]]) # u'${\', \'.join([format(float(e), $stringFormat) for e in varD["array"]])}' on line 72, col 13
-                if _v is not None: write(_filter(_v, rawExpr=u'${\', \'.join([format(float(e), $stringFormat) for e in varD["array"]])}')) # from line 72, col 13.
+                _v = ', '.join([format(float(e), VFFSL(SL,"stringFormat",True)) for e in var["array"]]) # u'${\', \'.join([format(float(e), $stringFormat) for e in var["array"]])}' on line 72, col 13
+                if _v is not None: write(_filter(_v, rawExpr=u'${\', \'.join([format(float(e), $stringFormat) for e in var["array"]])}')) # from line 72, col 13.
                 write(u'''];
 ''')
             elif nIndepVar == 2: # generated from line 73, col 5
                 _v = VFFSL(SL,"varName",True) # u'$varName' on line 74, col 1
                 if _v is not None: write(_filter(_v, rawExpr=u'$varName')) # from line 74, col 1.
                 write(u''' = [''')
-                _v = ';'.join([(','.join([format(float(val), VFFSL(SL,"stringFormat",True)) for val in subArray])) for subArray in varD["array"]]) # u'${\';\'.join([(\',\'.join([format(float(val), $stringFormat) for val in subArray])) for subArray in varD["array"]])}' on line 74, col 13
-                if _v is not None: write(_filter(_v, rawExpr=u'${\';\'.join([(\',\'.join([format(float(val), $stringFormat) for val in subArray])) for subArray in varD["array"]])}')) # from line 74, col 13.
+                _v = ';'.join([(','.join([format(float(val), VFFSL(SL,"stringFormat",True)) for val in subArray])) for subArray in var["array"]]) # u'${\';\'.join([(\',\'.join([format(float(val), $stringFormat) for val in subArray])) for subArray in var["array"]])}' on line 74, col 13
+                if _v is not None: write(_filter(_v, rawExpr=u'${\';\'.join([(\',\'.join([format(float(val), $stringFormat) for val in subArray])) for subArray in var["array"]])}')) # from line 74, col 13.
                 write(u'''];
 ''')
             else: # generated from line 75, col 5
                 _v = VFFSL(SL,"varName",True) # u'$varName' on line 76, col 1
                 if _v is not None: write(_filter(_v, rawExpr=u'$varName')) # from line 76, col 1.
                 write(u''' = ''')
-                _v = VFFSL(SL,"printMatlabListOrElement",False)(VFFSL(SL,"varD",True)["array"], VFFSL(SL,"nIndepVar",True)) # u'$printMatlabListOrElement($varD["array"], $nIndepVar)' on line 76, col 12
-                if _v is not None: write(_filter(_v, rawExpr=u'$printMatlabListOrElement($varD["array"], $nIndepVar)')) # from line 76, col 12.
+                _v = VFFSL(SL,"printMatlabListOrElement",False)(VFFSL(SL,"var",True)["array"], VFFSL(SL,"nIndepVar",True)) # u'$printMatlabListOrElement($var["array"], $nIndepVar)' on line 76, col 12
+                if _v is not None: write(_filter(_v, rawExpr=u'$printMatlabListOrElement($var["array"], $nIndepVar)')) # from line 76, col 12.
                 write(u''';
 ''')
             _v = VFFSL(SL,"permuteDimensionsOfMATLABVariable",False)(varName) # u'${permuteDimensionsOfMATLABVariable(varName)}' on line 78, col 1
diff --git a/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl b/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl
index be94172..a8c2f6c 100644
--- a/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl
+++ b/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl
@@ -65,15 +65,15 @@ ${handleHDF5XSILObject(objectNum, xsilObject)}@slurp
 clear $varName
 $varName = [${', '.join([format(float(e),$stringFormat) for e in var["array"]])}];
   @end for
-  @for varD in xsilObject.dependentVariables:
+  @for var in xsilObject.dependentVariables:
     @set varName = $generateVariableName(var, objectNum)
 clear $varName
     @if nIndepVar == 1:
-$varName = [${', '.join([format(float(e), $stringFormat) for e in varD["array"]])}];
+$varName = [${', '.join([format(float(e), $stringFormat) for e in var["array"]])}];
     @else if nIndepVar == 2:
-$varName = [${';'.join([(','.join([format(float(val), $stringFormat) for val in subArray])) for subArray in varD["array"]])}];
+$varName = [${';'.join([(','.join([format(float(val), $stringFormat) for val in subArray])) for subArray in var["array"]])}];
     @else
-$varName = $printMatlabListOrElement($varD["array"], $nIndepVar);
+$varName = $printMatlabListOrElement($var["array"], $nIndepVar);
     @end if
 ${permuteDimensionsOfMATLABVariable(varName)}@slurp
   @end for
diff --git a/xpdeint/xsil2graphics2/PythonImport.py b/xpdeint/xsil2graphics2/PythonImport.py
index 2ad4682..d03f886 100644
--- a/xpdeint/xsil2graphics2/PythonImport.py
+++ b/xpdeint/xsil2graphics2/PythonImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322833.89898
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:33 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/xsil2graphics2/PythonImport.tmpl'
+__CHEETAH_genTime__ = 1389652446.427775
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/PythonImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Sun Jul 28 14:51:41 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/BesselBasis.py b/xpdeint/xsil2graphics2/RImport.py
similarity index 59%
copy from xpdeint/Features/Transforms/BesselBasis.py
copy to xpdeint/xsil2graphics2/RImport.py
index 73f6d1e..af0b5b1 100644
--- a/xpdeint/Features/Transforms/BesselBasis.py
+++ b/xpdeint/xsil2graphics2/RImport.py
@@ -23,7 +23,6 @@ from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valu
 from Cheetah.CacheRegion import CacheRegion
 import Cheetah.Filters as Filters
 import Cheetah.ErrorCatchers as ErrorCatchers
-from xpdeint.Features.Transforms.Basis import Basis
 
 ##################################################
 ## MODULE CONSTANTS
@@ -33,10 +32,10 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1380322831.310537
-__CHEETAH_genTimestamp__ = 'Sat Sep 28 09:00:31 2013'
-__CHEETAH_src__ = '/Users/graham/Library/XMDS/src/xmds2/admin/staging/xmds-2.1.4/xpdeint/Features/Transforms/BesselBasis.tmpl'
-__CHEETAH_srcLastModified__ = 'Fri Sep 14 16:04:46 2012'
+__CHEETAH_genTime__ = 1389652446.475812
+__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
+__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/RImport.tmpl'
+__CHEETAH_srcLastModified__ = 'Wed Jan  8 13:35:53 2014'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -48,7 +47,7 @@ if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
 ##################################################
 ## CLASSES
 
-class BesselBasis(Basis):
+class RImport(Template):
 
     ##################################################
     ## CHEETAH GENERATED METHODS
@@ -56,7 +55,7 @@ class BesselBasis(Basis):
 
     def __init__(self, *args, **KWs):
 
-        super(BesselBasis, self).__init__(*args, **KWs)
+        super(RImport, self).__init__(*args, **KWs)
         if not self._CHEETAH__instanceInitialized:
             cheetahKWArgs = {}
             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
@@ -69,7 +68,7 @@ class BesselBasis(Basis):
 
 
 
-        ## Generated from @def description: Bessel function basis at line 24, col 1.
+        ## Generated from @def description: Creates text to import data from XSIL files into R. at line 28, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -84,7 +83,7 @@ class BesselBasis(Basis):
         ########################################
         ## START - generated method body
         
-        write(u'''Bessel function basis''')
+        write(u'''Creates text to import data from XSIL files into R.''')
         
         ########################################
         ## END - generated method body
@@ -92,11 +91,11 @@ class BesselBasis(Basis):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def transformMatricesForDimRepsAtIndices(self, forwardDimRep, backwardDimRep, forwardIndex, backwardIndex, **KWS):
+    def generateVariableName(self, xsilVariable, xsilObjectNumber, **KWS):
 
 
 
-        ## CHEETAH: generated from @def transformMatricesForDimRepsAtIndices($forwardDimRep, $backwardDimRep, $forwardIndex, $backwardIndex) at line 26, col 1.
+        ## CHEETAH: generated from @def generateVariableName(xsilVariable, xsilObjectNumber) at line 34, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -111,17 +110,7 @@ class BesselBasis(Basis):
         ########################################
         ## START - generated method body
         
-        # 
-        order = forwardDimRep._order
-        write(u'''const real besselFactor = ''')
-        _v = VFN(VFFSL(SL,"forwardDimRep",True),"besselJFunctionCall",False)(VFFSL(SL,"order",True), ''.join([u'_normbesseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"forwardIndex",True)),u'] * _normbesseljzeros_',str(VFFSL(SL,"forwardDimRep.parent.name",True)),u'[',str(VFFSL(SL,"backwardIndex",True)),u'] * _besseljnorm_',str(VFFSL(SL,"forwardDimRep.parent.name",True))])) # u"${forwardDimRep.besselJFunctionCall($order, c'_normbesseljzeros_${forwardDimRep.p [...]
-        if _v is not None: write(_filter(_v, rawExpr=u"${forwardDimRep.besselJFunctionCall($order, c'_normbesseljzeros_${forwardDimRep.parent.name}[${forwardIndex}] * _normbesseljzeros_${forwardDimRep.parent.name}[${backwardIndex}] * _besseljnorm_${forwardDimRep.parent.name}')}")) # from line 29, col 27.
-        write(u''';
-''')
-        # 
-        _v = super(BesselBasis, self).transformMatricesForDimRepsAtIndices(forwardDimRep,backwardDimRep,forwardIndex,backwardIndex)
-        if _v is not None: write(_filter(_v))
-        # 
+        return ''.join([str(VFFSL(SL,"xsilVariable.name",True)),u'_',str(VFFSL(SL,"xsilObjectNumber",True)+1)])
         
         ########################################
         ## END - generated method body
@@ -129,11 +118,11 @@ class BesselBasis(Basis):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def forwardMatrixForDimAtIndices(self, forwardDimRep, backwardDimRep, forwardIndex, backwardIndex, **KWS):
+    def loadXSILFile(self, xsilFile, **KWS):
 
 
 
-        ## CHEETAH: generated from @def forwardMatrixForDimAtIndices($forwardDimRep, $backwardDimRep, $forwardIndex, $backwardIndex) at line 35, col 1.
+        ## CHEETAH: generated from @def loadXSILFile($xsilFile) at line 38, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -148,13 +137,12 @@ class BesselBasis(Basis):
         ########################################
         ## START - generated method body
         
-        write(u'''besselFactor * ''')
-        _v = VFFSL(SL,"forwardDimRep.stepSizeArrayName",True) # u'${forwardDimRep.stepSizeArrayName}' on line 36, col 16
-        if _v is not None: write(_filter(_v, rawExpr=u'${forwardDimRep.stepSizeArrayName}')) # from line 36, col 16.
-        write(u'''[''')
-        _v = VFFSL(SL,"forwardIndex",True) # u'$forwardIndex' on line 36, col 51
-        if _v is not None: write(_filter(_v, rawExpr=u'$forwardIndex')) # from line 36, col 51.
-        write(u''']''')
+        for objectNum, xsilObject in enumerate(xsilFile.xsilObjects): # generated from line 39, col 3
+            if xsilObject.data.format == 'hdf5': # generated from line 40, col 5
+                _v = VFFSL(SL,"handleHDF5XSILObject",False)(objectNum, xsilObject) # u'${handleHDF5XSILObject(objectNum, xsilObject)}' on line 41, col 1
+                if _v is not None: write(_filter(_v, rawExpr=u'${handleHDF5XSILObject(objectNum, xsilObject)}')) # from line 41, col 1.
+            else: # generated from line 42, col 5
+                raise Exception("No support for R output for XSIL format '%s'." % xsilObject.data.format)
         
         ########################################
         ## END - generated method body
@@ -162,11 +150,11 @@ class BesselBasis(Basis):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def backwardMatrixForDimAtIndices(self, forwardDimRep, backwardDimRep, forwardIndex, backwardIndex, **KWS):
+    def handleHDF5XSILObject(self, objectNum, xsilObject, **KWS):
 
 
 
-        ## CHEETAH: generated from @def backwardMatrixForDimAtIndices($forwardDimRep, $backwardDimRep, $forwardIndex, $backwardIndex) at line 39, col 1.
+        ## CHEETAH: generated from @def handleHDF5XSILObject(objectNum, xsilObject) at line 49, col 1.
         trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
@@ -181,13 +169,54 @@ class BesselBasis(Basis):
         ########################################
         ## START - generated method body
         
-        write(u'''besselFactor * ''')
-        _v = VFFSL(SL,"backwardDimRep.stepSizeArrayName",True) # u'${backwardDimRep.stepSizeArrayName}' on line 40, col 16
-        if _v is not None: write(_filter(_v, rawExpr=u'${backwardDimRep.stepSizeArrayName}')) # from line 40, col 16.
-        write(u'''[''')
-        _v = VFFSL(SL,"backwardIndex",True) # u'$backwardIndex' on line 40, col 52
-        if _v is not None: write(_filter(_v, rawExpr=u'$backwardIndex')) # from line 40, col 52.
-        write(u''']''')
+        write(u'''tryCatch (library (hdf5),
+          error = function (e) {
+                      message (e)
+                      cat ("\\n")
+                      stop ("Install the hdf5 library for loading XSIL data", call. = FALSE)
+                      return (NA)
+          })
+
+''')
+        filename = xsilObject.data.filename
+        write(u'''hdf5load ("''')
+        _v = VFFSL(SL,"filename",True) # u'${filename}' on line 59, col 12
+        if _v is not None: write(_filter(_v, rawExpr=u'${filename}')) # from line 59, col 12.
+        write(u'''")
+''')
+        for var in xsilObject.independentVariables: # generated from line 60, col 3
+            _v = VFFSL(SL,"var.name",True) # u'${var.name}' on line 61, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${var.name}')) # from line 61, col 1.
+            write(u'''.''')
+            _v = VFFSL(SL,"objectNum",True)+1 # u'${objectNum+1}' on line 61, col 13
+            if _v is not None: write(_filter(_v, rawExpr=u'${objectNum+1}')) # from line 61, col 13.
+            write(u''' <- get ("''')
+            _v = VFFSL(SL,"objectNum",True)+1 # u'${objectNum+1}' on line 61, col 37
+            if _v is not None: write(_filter(_v, rawExpr=u'${objectNum+1}')) # from line 61, col 37.
+            write(u'''")$''')
+            _v = VFFSL(SL,"var.name",True) # u'${var.name}' on line 61, col 55
+            if _v is not None: write(_filter(_v, rawExpr=u'${var.name}')) # from line 61, col 55.
+            write(u'''
+''')
+        for var in xsilObject.dependentVariables: # generated from line 63, col 3
+            _v = VFFSL(SL,"var.name",True) # u'${var.name}' on line 64, col 1
+            if _v is not None: write(_filter(_v, rawExpr=u'${var.name}')) # from line 64, col 1.
+            write(u'''.''')
+            _v = VFFSL(SL,"objectNum",True)+1 # u'${objectNum+1}' on line 64, col 13
+            if _v is not None: write(_filter(_v, rawExpr=u'${objectNum+1}')) # from line 64, col 13.
+            write(u''' <- get ("''')
+            _v = VFFSL(SL,"objectNum",True)+1 # u'${objectNum+1}' on line 64, col 37
+            if _v is not None: write(_filter(_v, rawExpr=u'${objectNum+1}')) # from line 64, col 37.
+            write(u'''")$''')
+            _v = VFFSL(SL,"var.name",True) # u'${var.name}' on line 64, col 55
+            if _v is not None: write(_filter(_v, rawExpr=u'${var.name}')) # from line 64, col 55.
+            write(u'''
+''')
+        write(u'''rm ("''')
+        _v = VFFSL(SL,"objectNum",True)+1 # u'${objectNum+1}' on line 66, col 6
+        if _v is not None: write(_filter(_v, rawExpr=u'${objectNum+1}')) # from line 66, col 6.
+        write(u'''")
+''')
         
         ########################################
         ## END - generated method body
@@ -195,12 +224,11 @@ class BesselBasis(Basis):
         return _dummyTrans and trans.response().getvalue() or ""
         
 
-    def writeBody(self, **KWS):
+    def respond(self, trans=None):
 
 
 
         ## CHEETAH: main method generated for this template
-        trans = KWS.get("trans")
         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
             trans = self.transaction # is None unless self.awake() was called
         if not trans:
@@ -215,11 +243,16 @@ class BesselBasis(Basis):
         ## START - generated method body
         
         # 
-        # BesselBasis.tmpl
+        # RImport.tmpl
+        # 
+        # Created by Rafael Laboissiere on 2013-01-04.
+        # 
+        # Based on MatlabOctaveImport.tmpl, which was:
         # 
-        # Created by Graham Dennis on 2008-12-14.
+        # Created by Joe Hope on 2009-01-07.
+        # Modified by Gregory Bogomiagkov and Liam Madge on 2013-07-18.
         # 
-        # Copyright (c) 2008-2012, Graham Dennis
+        # Copyright (c) 2009-2013, Joe Hope and Graham Dennis
         # 
         # This program is free software: you can redistribute it and/or modify
         # it under the terms of the GNU General Public License as published by
@@ -239,6 +272,7 @@ class BesselBasis(Basis):
 
 
 
+
 ''')
         
         ########################################
@@ -264,13 +298,19 @@ class BesselBasis(Basis):
 
     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
 
-    _mainCheetahMethod_for_BesselBasis= 'writeBody'
+    defaultExtension = 'r'
+
+    stringFormat = '.12e'
+
+    name = 'R'
+
+    _mainCheetahMethod_for_RImport= 'respond'
 
 ## END CLASS DEFINITION
 
-if not hasattr(BesselBasis, '_initCheetahAttributes'):
-    templateAPIClass = getattr(BesselBasis, '_CHEETAH_templateClass', Template)
-    templateAPIClass._addCheetahPlumbingCodeToClass(BesselBasis)
+if not hasattr(RImport, '_initCheetahAttributes'):
+    templateAPIClass = getattr(RImport, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(RImport)
 
 
 # CHEETAH was developed by Tavis Rudd and Mike Orr
@@ -281,6 +321,6 @@ if not hasattr(BesselBasis, '_initCheetahAttributes'):
 ## if run from command line:
 if __name__ == '__main__':
     from Cheetah.TemplateCmdLineIface import CmdLineIface
-    CmdLineIface(templateObj=BesselBasis()).run()
+    CmdLineIface(templateObj=RImport()).run()
 
 
diff --git a/xpdeint/xsil2graphics2/RImport.tmpl b/xpdeint/xsil2graphics2/RImport.tmpl
new file mode 100644
index 0000000..f995b9e
--- /dev/null
+++ b/xpdeint/xsil2graphics2/RImport.tmpl
@@ -0,0 +1,67 @@
+@*
+RImport.tmpl
+
+Created by Rafael Laboissiere on 2013-01-04.
+
+Based on MatlabOctaveImport.tmpl, which was:
+
+Created by Joe Hope on 2009-01-07.
+Modified by Gregory Bogomiagkov and Liam Madge on 2013-07-18.
+
+Copyright (c) 2009-2013, Joe Hope and Graham Dennis
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*@
+
+ at def description: Creates text to import data from XSIL files into R.
+
+ at attr $defaultExtension = 'r'
+ at attr $stringFormat = '.12e'
+ at attr $name = 'R'
+
+ at def generateVariableName(xsilVariable, xsilObjectNumber)
+  @return c'${xsilVariable.name}_${xsilObjectNumber+1}'
+ at end def
+
+ at def loadXSILFile($xsilFile)
+  @for objectNum, xsilObject in enumerate(xsilFile.xsilObjects):
+    @if xsilObject.data.format == 'hdf5'
+${handleHDF5XSILObject(objectNum, xsilObject)}@slurp
+    @else
+      @raise Exception("No support for R output for XSIL format '%s'." % xsilObject.data.format)
+    @end if
+  @end for
+ at end def
+
+
+ at def handleHDF5XSILObject(objectNum, xsilObject)
+tryCatch (library (hdf5),
+          error = function (e) {
+                      message (e)
+                      cat ("\n")
+                      stop ("Install the hdf5 library for loading XSIL data", call. = FALSE)
+                      return (NA)
+          })
+
+  @set $filename = xsilObject.data.filename
+hdf5load ("${filename}")
+  @for var in xsilObject.independentVariables:
+${var.name}.${objectNum+1} <- get ("${objectNum+1}")\$${var.name}
+  @end for
+  @for var in xsilObject.dependentVariables:
+${var.name}.${objectNum+1} <- get ("${objectNum+1}")\$${var.name}
+  @end for
+rm ("${objectNum+1}")
+ at end def
diff --git a/xpdeint/xsil2graphicsParser.py b/xpdeint/xsil2graphicsParser.py
index 15d0f25..d9335c0 100755
--- a/xpdeint/xsil2graphicsParser.py
+++ b/xpdeint/xsil2graphicsParser.py
@@ -39,6 +39,7 @@ if sys.platform == 'darwin':
 from xpdeint.xsil2graphics2.MathematicaImport import MathematicaImport
 from xpdeint.xsil2graphics2.MatlabOctaveImport import MatlabOctaveImport
 from xpdeint.xsil2graphics2.PythonImport import PythonImport
+from xpdeint.xsil2graphics2.RImport import RImport
 
 
 # The help message printed when --help is used as an argument
@@ -57,6 +58,7 @@ Options:
   -e/--mathematica: optional, produce mathematica output
   -8/--octave:      optional, produce octave output (identical to MATLAB output)
   -p/--python:      optional, produce Python/pylab/matplotlib script (HDF5 requires h5py)
+  -r/--R:           optional, produce R output
   -o/--outfile:     optional, alternate output file name (one input file only)
   --debug:          Debug mode
   
@@ -91,7 +93,7 @@ def main(argv=None):
     argv = sys.argv
   try:
     try:
-      opts, args = getopt.gnu_getopt(argv[1:], "hm8epo:", ["help", "matlab", "octave", "mathematica", "python", "outfile=", "debug"])
+      opts, args = getopt.gnu_getopt(argv[1:], "hm8epro:", ["help", "matlab", "octave", "mathematica", "python", "R", "outfile=", "debug"])
     except getopt.error, msg:
       raise Usage(msg)
     
@@ -104,6 +106,7 @@ def main(argv=None):
       ("-8", "--octave", MatlabOctaveImport),
       ("-e", "--mathematica", MathematicaImport),
       ("-p", "--python", PythonImport),
+      ("-r", "--R", RImport),
     ]
     
     # option processing

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/xmds2.git



More information about the debian-science-commits mailing list