Adding FFT Unit Tests
authorRoland Schulz <roland@utk.edu>
Tue, 5 Jun 2012 01:38:14 +0000 (21:38 -0400)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Fri, 6 Jul 2012 03:52:27 +0000 (05:52 +0200)
Change-Id: I3de741e6c66ac1e611d78962606253a3c903cbef

19 files changed:
cmake/legacy_and_external.supp
src/gromacs/legacyheaders/types/commrec.h
src/gromacs/mdlib/CMakeLists.txt
src/gromacs/mdlib/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/mdlib/tests/fft.cpp [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_0.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_1.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_2.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_3.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_4.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_0.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_1.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_2.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_3.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_4.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/FFFTest3D_Real5_6_9.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/FFTTest_Real2DLength18_15Test.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/ManyFFTTest_Complex1DLength48Multi5Test.xml [new file with mode: 0644]
src/gromacs/mdlib/tests/refdata/ManyFFTTest_Real1DLength48Multi5Test.xml [new file with mode: 0644]

index 6788ba24b8a7e2cf5150d3e65729ef021be99b76..ac043edf041454d7104d2ae3bb21d686fd43d0e6 100644 (file)
    fun:_Unwind_RaiseException
    fun:__cxa_throw
 }
+{
+   posix_memalign
+   Memcheck:Leak
+   ...
+   fun:posix_memalign
+}
 
 # Intel compiler on MacOS
 {
    fun:malloc
    fun:__cilkrts_os_mutex_create
 }
+# Intel compiler with MKL
+{
+   dlerror
+   Memcheck:Leak
+   ...
+   fun:_dlerror_run
+}
+#Intel
+{
+   strlen
+   Memcheck:Addr8
+   fun:__intel_sse2_strlen
+}
+{
+   strlen2
+   Memcheck:Cond
+   fun:__intel_sse2_strlen
+}
+{
+   __kmpc_global_thread_num
+   Memcheck:Param
+   sched_setaffinity(mask)
+   ...
+   fun:__kmpc_global_thread_num
+}
+{
+   __kmpc_global_thread_num2
+   Memcheck:Cond
+   ...
+   fun:__kmpc_global_thread_num
+}
+{
+   __kmpc_global_thread_num3
+   Memcheck:Leak
+   ...
+   fun:__kmpc_global_thread_num
+}
index 0d2fce9813e544359fab0a5e5574d324293378db..7d049e803f14fc81e00eab2e879a954b1f722161 100644 (file)
@@ -45,6 +45,7 @@
 typedef void* MPI_Comm;
 typedef void* MPI_Request;
 typedef void* MPI_Group;
+#define MPI_COMM_NULL NULL
 #endif
 #endif
 
index 222a53bc0fb0b3b9e24d9e7c3497221fae6163d8..a7637aa7110cef206332336d68ed3d6e05863494 100644 (file)
@@ -3,3 +3,6 @@ if(GMX_FFT_FFTPACK)
 list(APPEND MDLIB_SOURCES ${CMAKE_SOURCE_DIR}/src/external/fftpack/fftpack.c)
 endif()
 set(MDLIB_SOURCES ${MDLIB_SOURCES} PARENT_SCOPE)
+if (BUILD_TESTING)
+    add_subdirectory(tests)
+endif (BUILD_TESTING)
diff --git a/src/gromacs/mdlib/tests/CMakeLists.txt b/src/gromacs/mdlib/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..903ed90
--- /dev/null
@@ -0,0 +1,2 @@
+gmx_add_unit_test(MDLibUnitTests mdlib-test
+                  fft.cpp)
diff --git a/src/gromacs/mdlib/tests/fft.cpp b/src/gromacs/mdlib/tests/fft.cpp
new file mode 100644 (file)
index 0000000..7f46120
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+ *
+ *                This source code is part of
+ *
+ *                 G   R   O   M   A   C   S
+ *
+ *          GROningen MAchine for Chemical Simulations
+ *
+ * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
+ * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
+ * Copyright (c) 2001-2009, The GROMACS development team,
+ * check out http://www.gromacs.org for more information.
+
+ * 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.
+ *
+ * If you want to redistribute modifications, please consider that
+ * scientific software is very special. Version control is crucial -
+ * bugs must be traceable. We will be happy to consider code for
+ * inclusion in the official distribution, but derived work must not
+ * be called official GROMACS. Details are found in the README & COPYING
+ * files - if they are missing, get the official version at www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the papers on the package - you can find them in the top README file.
+ *
+ * For more info, check our website at http://www.gromacs.org
+ */
+/*! \internal \file
+ * \brief
+ * Tests utilities for fft calculations.
+ *
+ * \author Roland Schulz <roland@utk.edu>
+ * \ingroup module_mdlibs
+ */
+
+#include "config.h"
+#include <vector>
+#include <complex>
+#include <gtest/gtest.h>
+#include "testutils/refdata.h"
+#include "gromacs/utility/stringutil.h"
+#include "gmx_fft.h"
+#include "gmx_parallel_3dfft.h"
+
+namespace
+{
+
+static const real inputdata[] = { //print ",\n".join([",".join(["%4s"%(random.randint(-99,99)/10.,) for i in range(25)]) for j in range(20)])
+        -3.5, 6.3, 1.2, 0.3, 1.1,-5.7, 5.8,-1.9,-6.3,-1.4, 7.4, 2.4,-9.9,-7.2, 5.4, 6.1,-1.9,-7.6, 1.4,-3.5, 0.7, 5.6,-4.2,-1.1,-4.4,
+        -6.3,-7.2, 4.6,-3.0,-0.9, 7.2, 2.5,-3.6, 6.1,-3.2,-2.1, 6.5,-0.4,-9.0, 2.3, 8.4, 4.0,-5.2,-9.0, 4.7,-3.7,-2.0,-9.5,-3.9,-3.6,
+         7.1, 0.8,-0.6, 5.2,-9.3,-4.5, 5.9, 2.2,-5.8, 5.0, 1.2,-0.1, 2.2, 0.2,-7.7, 1.9,-8.4, 4.4, 2.3,-2.9, 6.7, 2.7, 5.8,-3.6, 8.9,
+         8.9, 4.3, 9.1, 9.3,-8.7, 4.1, 9.6,-6.2, 6.6,-9.3, 8.2, 4.5, 6.2, 9.4,-8.0,-6.8,-3.3, 7.2, 1.7, 0.6,-4.9, 9.8, 1.3, 3.2,-0.2,
+         9.9, 4.4,-9.9,-7.2, 4.4, 4.7, 7.2,-0.3, 0.3,-2.1, 8.4,-2.1,-6.1, 4.1,-5.9,-2.2,-3.8, 5.2,-8.2,-7.8,-8.8, 6.7,-9.5,-4.2, 0.8,
+         8.3, 5.2,-9.0, 8.7, 9.8,-9.9,-7.8,-8.3, 9.0,-2.8,-9.2,-9.6, 8.4, 2.5, 6.0,-0.4, 1.3,-0.5, 9.1,-9.5,-0.8, 1.9,-6.2, 4.3,-3.8,
+         8.6,-1.9,-2.1,-0.4,-7.1,-3.7, 9.1,-6.4,-0.6, 2.5, 8.0,-5.2,-9.8,-4.3, 4.5, 1.7, 9.3, 9.2, 1.0, 5.3,-4.5, 6.4,-6.6, 3.1,-6.8,
+         2.1, 2.0, 7.3, 8.6, 5.0, 5.2, 0.4,-7.1, 4.5,-9.2,-9.1, 0.2,-6.3,-1.1,-9.6, 7.4,-3.7,-5.5, 2.6,-3.5,-0.7, 9.0, 9.8,-8.0, 3.6,
+         3.0,-2.2,-2.8, 0.8, 9.0, 2.8, 7.7,-0.7,-5.0,-1.8,-2.3,-0.4,-6.2,-9.1,-9.2, 0.5, 5.7,-3.9, 2.1, 0.6, 0.4, 9.1, 7.4, 7.1,-2.5,
+         7.3, 7.8,-4.3, 6.3,-0.8,-3.8,-1.5, 6.6, 2.3, 3.9,-4.6, 5.8,-7.4, 5.9, 2.8, 4.7, 3.9,-5.4, 9.1,-1.6,-1.9,-4.2,-2.6, 0.6,-5.1,
+         1.8, 5.2, 4.0,-6.2, 6.5,-9.1, 0.5, 2.1, 7.1,-8.6, 7.6,-9.7,-4.6,-5.7, 6.1,-1.8,-7.3, 9.4, 8.0,-2.6,-1.8, 5.7, 9.3,-7.9, 7.4,
+         6.3, 2.0, 9.6,-4.5,-6.2, 6.1, 2.3, 0.8, 5.9,-2.8,-3.5,-1.5, 6.0,-4.9, 3.5, 7.7,-4.2,-9.7, 2.4, 8.1, 5.9, 3.4,-7.5, 7.5, 2.6,
+         4.7, 2.7, 2.2, 2.6, 6.2, 7.5, 0.2,-6.4,-2.8,-0.5,-0.3, 0.4, 1.2, 3.5,-4.0,-0.5, 9.3,-7.2, 8.5,-5.5,-1.7,-5.3, 0.3, 3.9,-3.6,
+        -3.6, 4.7,-8.1, 1.4, 4.0, 1.3,-4.3,-8.8,-7.3, 6.3,-7.5,-9.0, 9.1, 4.5,-1.9, 1.9, 9.9,-1.7,-9.1,-5.1, 8.5,-9.3, 2.1,-5.8,-3.6,
+        -0.8,-0.9,-3.3,-2.7, 7.0,-7.2,-5.0, 7.4,-1.4, 0.0,-4.5,-9.7, 0.7,-1.0,-9.1,-5.3, 4.3, 3.4,-6.6, 9.8,-1.1, 8.9, 5.0, 2.9, 0.2,
+        -2.9, 0.8, 6.7,-0.6, 0.6, 4.1, 5.3,-1.7,-0.3, 4.2, 3.7,-8.3, 4.0, 1.3, 6.3, 0.2, 1.3,-1.1,-3.5, 2.8,-7.7, 6.2,-4.9,-9.9, 9.6,
+         3.0,-9.2,-8.0,-3.9, 7.9,-6.1, 6.0, 5.9, 9.6, 1.2, 6.2, 3.6, 2.1, 5.8, 9.2,-8.8, 8.8,-3.3,-9.2, 4.6, 1.8, 4.6, 2.9,-2.7, 4.2,
+         7.3,-0.4, 7.7,-7.0, 2.1, 0.3, 3.7, 3.3,-8.6, 9.8, 3.6, 3.1, 6.5,-2.4, 7.8, 7.5, 8.4,-2.8,-6.3,-5.1,-2.7, 9.3,-0.8,-9.2, 7.9,
+         8.9, 3.4, 0.1,-5.3,-6.8, 4.9, 4.3,-0.7,-2.2,-3.2,-7.5,-2.3, 0.0, 8.1,-9.2,-2.3,-5.7, 2.1, 2.6, 2.0, 0.3,-8.0,-2.0,-7.9, 6.6,
+         8.4, 4.0,-6.2,-6.9,-7.2, 7.7,-5.0, 5.3, 1.9,-5.3,-7.5, 8.8, 8.3, 9.0, 8.1, 3.2, 1.2,-5.4,-0.2, 2.1,-5.2, 9.5, 5.9, 5.6,-7.8,
+};
+
+
+class BaseFFTTest : public ::testing::Test
+{
+    public:
+        BaseFFTTest() : checker_(data_.rootChecker())
+        {
+        }
+        ~BaseFFTTest()
+        {
+            gmx_fft_cleanup();
+        }
+        gmx::test::TestReferenceData data_;
+        gmx::test::TestReferenceChecker checker_;
+        std::vector<real> in_, out_;
+};
+
+class FFTTest : public BaseFFTTest
+{
+    public:
+        FFTTest() : fft_(NULL)
+        {
+        }
+        ~FFTTest()
+        {
+            if (fft_)
+            {
+                gmx_fft_destroy(fft_);
+            }
+        }
+        gmx_fft_t fft_;
+};
+
+class ManyFFTTest : public BaseFFTTest
+{
+    public:
+        ManyFFTTest() : fft_(NULL)
+        {
+        }
+        ~ManyFFTTest()
+        {
+            if (fft_)
+            {
+                gmx_many_fft_destroy(fft_);
+            }
+        }
+        gmx_fft_t fft_;
+};
+
+
+//TODO: Add tests for aligned/not-aligned input/output memory
+
+class FFTTest1D : public FFTTest, public ::testing::WithParamInterface<int>
+{
+
+};
+
+class FFFTest3D : public BaseFFTTest
+{
+    public:
+        FFFTest3D() : fft_(NULL)
+        {
+        }
+        ~FFFTest3D()
+        {
+            if (fft_)
+            {
+                gmx_parallel_3dfft_destroy(fft_);
+            }
+        }
+        gmx_parallel_3dfft_t fft_;
+};
+
+
+TEST_P(FFTTest1D, Complex)
+{
+    const int nx = GetParam();
+    ASSERT_LE(nx*2,static_cast<int>(sizeof(inputdata)/sizeof(real)));
+
+    in_ = std::vector<real>(inputdata,inputdata+nx*2);
+    out_ = std::vector<real>(nx*2);
+    real* in  = &in_[0];
+    real* out = &out_[0];
+
+    gmx_fft_init_1d(&fft_,nx,0);
+
+    gmx_fft_1d(fft_,GMX_FFT_FORWARD, in, out);
+    checker_.checkSequenceArray(nx*2, out, "forward");
+    gmx_fft_1d(fft_,GMX_FFT_BACKWARD, in, out);
+    checker_.checkSequenceArray(nx*2, out, "backward");
+}
+
+TEST_P(FFTTest1D, Real)
+{
+    const int rx = GetParam();
+    const int cx = (rx/2+1);
+    ASSERT_LE(cx*2,static_cast<int>(sizeof(inputdata)/sizeof(real)));
+
+    in_ = std::vector<real>(inputdata,inputdata+cx*2);
+    out_ = std::vector<real>(cx*2);
+    real* in = &in_[0];
+    real* out = &out_[0];
+
+    gmx_fft_init_1d_real(&fft_,rx,0);
+
+    gmx_fft_1d_real(fft_,GMX_FFT_REAL_TO_COMPLEX,in,out);
+    checker_.checkSequenceArray(cx*2, out, "forward");
+    gmx_fft_1d_real(fft_,GMX_FFT_COMPLEX_TO_REAL,in,out);
+    checker_.checkSequenceArray(rx, out, "backward");
+}
+
+INSTANTIATE_TEST_CASE_P(7_8_25_36_60,
+        FFTTest1D, ::testing::Values(7,8,25,36,60));
+
+
+TEST_F(ManyFFTTest, Complex1DLength48Multi5Test)
+{
+    const int nx = 48;
+    const int N = 5;
+
+    in_ = std::vector<real>(inputdata,inputdata+nx*2*N);
+    out_ = std::vector<real>(nx*2*N);
+    real* in = &in_[0];
+    real* out = &out_[0];
+
+    gmx_fft_init_many_1d(&fft_,nx,N,0);
+
+    gmx_fft_many_1d(fft_,GMX_FFT_FORWARD, in, out);
+    checker_.checkSequenceArray(nx*2*N, out, "forward");
+    gmx_fft_many_1d(fft_,GMX_FFT_BACKWARD, in, out);
+    checker_.checkSequenceArray(nx*2*N, out, "backward");
+}
+
+TEST_F(ManyFFTTest, Real1DLength48Multi5Test)
+{
+    const int rx = 48;
+    const int cx = (rx/2+1);
+    const int N = 5;
+
+    in_ = std::vector<real>(inputdata,inputdata+cx*2*N);
+    out_ = std::vector<real>(cx*2*N);
+    real* in = &in_[0];
+    real* out = &out_[0];
+
+    gmx_fft_init_many_1d_real(&fft_,rx,N,0);
+
+    gmx_fft_many_1d_real(fft_,GMX_FFT_REAL_TO_COMPLEX,in,out);
+    checker_.checkSequenceArray(cx*2*N, out, "forward");
+    gmx_fft_many_1d_real(fft_,GMX_FFT_COMPLEX_TO_REAL,in,out);
+    checker_.checkSequenceArray(rx*N, out, "backward");
+}
+
+TEST_F(FFTTest, Real2DLength18_15Test)
+{
+    const int rx = 18;
+    const int cx = (rx/2+1);
+    const int ny = 15;
+
+    in_ = std::vector<real>(inputdata,inputdata+cx*2*ny);
+    out_ = std::vector<real>(cx*2*ny);
+    real* in = &in_[0];
+    real* out = &out_[0];
+
+    gmx_fft_init_2d_real(&fft_,rx,ny,0);
+
+    gmx_fft_2d_real(fft_,GMX_FFT_REAL_TO_COMPLEX,in,out);
+    checker_.checkSequenceArray(cx*2*ny, out, "forward");
+//    known to be wrong for gmx_fft_mkl. And not used.
+//    gmx_fft_2d_real(_fft,GMX_FFT_COMPLEX_TO_REAL,in,out);
+//    _checker.checkSequenceArray(rx*ny, out, "backward");
+}
+
+//TODO: test with threads and more than 1 MPI ranks
+TEST_F(FFFTest3D, Real5_6_9)
+{
+    int ndata[] = {5, 6, 9};
+    MPI_Comm comm[] = {MPI_COMM_NULL, MPI_COMM_NULL};
+    real* rdata;
+    t_complex* cdata;
+    ivec local_ndata, offset,rsize,csize,complex_order;
+
+    gmx_parallel_3dfft_init(&fft_, ndata, &rdata, &cdata,
+            comm, NULL, NULL, TRUE, 1);
+
+    gmx_parallel_3dfft_real_limits(fft_, local_ndata, offset, rsize);
+    gmx_parallel_3dfft_complex_limits(fft_, complex_order,
+            local_ndata, offset, csize);
+    checker_.checkVector(rsize,"rsize");
+    checker_.checkVector(csize,"csize");
+    int size = csize[0]*csize[1]*csize[2];
+
+    memcpy(rdata,inputdata,size*sizeof(t_complex));
+    gmx_parallel_3dfft_execute(fft_, GMX_FFT_REAL_TO_COMPLEX, rdata, cdata,
+            0, NULL);
+    //TODO use std::complex and add checkComplex for it
+    checker_.checkSequenceArray(size*2,
+            reinterpret_cast<real*>(cdata), "forward");
+
+    memcpy(cdata,inputdata,size*sizeof(t_complex));
+    gmx_parallel_3dfft_execute(fft_, GMX_FFT_COMPLEX_TO_REAL, rdata, cdata,
+            0, NULL);
+    for(int i=0;i<ndata[0]*ndata[1];i++) //check sequence but skip unused data
+    {
+        checker_.checkSequenceArray(ndata[2], rdata+i*rsize[2],
+                gmx::formatString("backward %d",i).c_str());
+    }
+}
+
+} // namespace
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_0.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_0.xml
new file mode 100644 (file)
index 0000000..b2cdbf2
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">14</Int>
+    <Real>-4.200000</Real>
+    <Real>-7.199999</Real>
+    <Real>-12.615427</Real>
+    <Real>-2.080840</Real>
+    <Real>1.683286</Real>
+    <Real>4.656070</Real>
+    <Real>18.848852</Real>
+    <Real>-10.344789</Real>
+    <Real>0.649853</Real>
+    <Real>32.731766</Real>
+    <Real>-20.751381</Real>
+    <Real>12.846081</Real>
+    <Real>-8.115183</Real>
+    <Real>13.491714</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">14</Int>
+    <Real>-4.200000</Real>
+    <Real>-7.199999</Real>
+    <Real>-8.115183</Real>
+    <Real>13.491714</Real>
+    <Real>-20.751381</Real>
+    <Real>12.846081</Real>
+    <Real>0.649853</Real>
+    <Real>32.731766</Real>
+    <Real>18.848852</Real>
+    <Real>-10.344789</Real>
+    <Real>1.683286</Real>
+    <Real>4.656070</Real>
+    <Real>-12.615427</Real>
+    <Real>-2.080840</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_1.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_1.xml
new file mode 100644 (file)
index 0000000..e1a9a9b
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">16</Int>
+    <Real>1.200003</Real>
+    <Real>-1.100000</Real>
+    <Real>-7.508683</Real>
+    <Real>4.973149</Real>
+    <Real>-2.500001</Real>
+    <Real>20.400000</Real>
+    <Real>-1.174874</Real>
+    <Real>18.629290</Real>
+    <Real>-38.400002</Real>
+    <Real>-14.900000</Real>
+    <Real>16.108685</Real>
+    <Real>-11.573149</Real>
+    <Real>0.499999</Real>
+    <Real>15.199999</Real>
+    <Real>3.774874</Real>
+    <Real>18.770712</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">16</Int>
+    <Real>1.200003</Real>
+    <Real>-1.100000</Real>
+    <Real>3.774874</Real>
+    <Real>18.770712</Real>
+    <Real>0.499999</Real>
+    <Real>15.199999</Real>
+    <Real>16.108685</Real>
+    <Real>-11.573149</Real>
+    <Real>-38.400002</Real>
+    <Real>-14.900000</Real>
+    <Real>-1.174874</Real>
+    <Real>18.629290</Real>
+    <Real>-2.500001</Real>
+    <Real>20.400000</Real>
+    <Real>-7.508683</Real>
+    <Real>4.973149</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_2.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_2.xml
new file mode 100644 (file)
index 0000000..9e12e17
--- /dev/null
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">50</Int>
+    <Real>-17.500002</Real>
+    <Real>-23.700001</Real>
+    <Real>5.280154</Real>
+    <Real>-20.576805</Real>
+    <Real>6.535469</Real>
+    <Real>-6.456766</Real>
+    <Real>14.835081</Real>
+    <Real>7.896650</Real>
+    <Real>-22.279984</Real>
+    <Real>0.502013</Real>
+    <Real>1.391615</Real>
+    <Real>36.121910</Real>
+    <Real>-20.608116</Real>
+    <Real>-0.535877</Real>
+    <Real>3.689600</Real>
+    <Real>0.425264</Real>
+    <Real>28.853600</Real>
+    <Real>30.796818</Real>
+    <Real>-32.877293</Real>
+    <Real>-17.054277</Real>
+    <Real>50.884644</Real>
+    <Real>29.984898</Real>
+    <Real>11.541224</Real>
+    <Real>15.353436</Real>
+    <Real>-43.605137</Real>
+    <Real>-30.590815</Real>
+    <Real>-65.219894</Real>
+    <Real>-19.352760</Real>
+    <Real>19.204224</Real>
+    <Real>14.548567</Real>
+    <Real>61.248367</Real>
+    <Real>24.361813</Real>
+    <Real>10.778578</Real>
+    <Real>7.128354</Real>
+    <Real>-51.937923</Real>
+    <Real>7.794027</Real>
+    <Real>10.840481</Real>
+    <Real>22.662872</Real>
+    <Real>-8.192231</Real>
+    <Real>5.798307</Real>
+    <Real>4.975378</Real>
+    <Real>37.231377</Real>
+    <Real>-30.533447</Real>
+    <Real>31.112547</Real>
+    <Real>-3.331835</Real>
+    <Real>18.984522</Real>
+    <Real>-39.071777</Real>
+    <Real>4.093479</Real>
+    <Real>17.599239</Real>
+    <Real>-19.029558</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">50</Int>
+    <Real>-17.500002</Real>
+    <Real>-23.700001</Real>
+    <Real>17.599243</Real>
+    <Real>-19.029558</Real>
+    <Real>-39.071777</Real>
+    <Real>4.093477</Real>
+    <Real>-3.331837</Real>
+    <Real>18.984520</Real>
+    <Real>-30.533447</Real>
+    <Real>31.112545</Real>
+    <Real>4.975378</Real>
+    <Real>37.231377</Real>
+    <Real>-8.192228</Real>
+    <Real>5.798309</Real>
+    <Real>10.840475</Real>
+    <Real>22.662870</Real>
+    <Real>-51.937927</Real>
+    <Real>7.794023</Real>
+    <Real>10.778579</Real>
+    <Real>7.128356</Real>
+    <Real>61.248367</Real>
+    <Real>24.361813</Real>
+    <Real>19.204220</Real>
+    <Real>14.548569</Real>
+    <Real>-65.219887</Real>
+    <Real>-19.352760</Real>
+    <Real>-43.605137</Real>
+    <Real>-30.590813</Real>
+    <Real>11.541224</Real>
+    <Real>15.353436</Real>
+    <Real>50.884644</Real>
+    <Real>29.984898</Real>
+    <Real>-32.877293</Real>
+    <Real>-17.054279</Real>
+    <Real>28.853601</Real>
+    <Real>30.796818</Real>
+    <Real>3.689602</Real>
+    <Real>0.425267</Real>
+    <Real>-20.608114</Real>
+    <Real>-0.535879</Real>
+    <Real>1.391615</Real>
+    <Real>36.121910</Real>
+    <Real>-22.279985</Real>
+    <Real>0.502013</Real>
+    <Real>14.835081</Real>
+    <Real>7.896652</Real>
+    <Real>6.535469</Real>
+    <Real>-6.456765</Real>
+    <Real>5.280152</Real>
+    <Real>-20.576801</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_3.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_3.xml
new file mode 100644 (file)
index 0000000..04b006c
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">72</Int>
+    <Real>-23.900000</Real>
+    <Real>-8.800000</Real>
+    <Real>-0.249668</Real>
+    <Real>11.846352</Real>
+    <Real>-27.610456</Real>
+    <Real>-15.014454</Real>
+    <Real>16.035122</Real>
+    <Real>-18.484678</Real>
+    <Real>7.228172</Real>
+    <Real>25.880184</Real>
+    <Real>0.147075</Real>
+    <Real>-22.558111</Real>
+    <Real>0.641601</Real>
+    <Real>10.865768</Real>
+    <Real>-2.687532</Real>
+    <Real>65.553329</Real>
+    <Real>1.883895</Real>
+    <Real>9.603775</Real>
+    <Real>-13.900001</Real>
+    <Real>27.200005</Real>
+    <Real>5.703636</Real>
+    <Real>39.566257</Real>
+    <Real>-55.216118</Real>
+    <Real>58.903366</Real>
+    <Real>0.630056</Real>
+    <Real>-37.651405</Real>
+    <Real>-18.153713</Real>
+    <Real>-37.846497</Real>
+    <Real>21.989540</Real>
+    <Real>82.459198</Real>
+    <Real>-6.135126</Real>
+    <Real>-13.115320</Real>
+    <Real>2.152241</Real>
+    <Real>-10.057495</Real>
+    <Real>-17.172886</Real>
+    <Real>-76.719643</Real>
+    <Real>-4.100000</Real>
+    <Real>-8.199999</Real>
+    <Real>-82.090912</Real>
+    <Real>21.219345</Real>
+    <Real>18.284159</Real>
+    <Real>27.516779</Real>
+    <Real>-10.632309</Real>
+    <Real>41.601334</Real>
+    <Real>54.927788</Real>
+    <Real>-37.935562</Real>
+    <Real>19.273617</Real>
+    <Real>20.601772</Real>
+    <Real>-44.230057</Real>
+    <Real>-23.448593</Real>
+    <Real>-38.808918</Real>
+    <Real>31.520515</Real>
+    <Real>5.243634</Real>
+    <Real>16.918324</Real>
+    <Real>-26.099997</Real>
+    <Real>-3.799999</Real>
+    <Real>-32.494640</Real>
+    <Real>-22.538834</Real>
+    <Real>34.638107</Real>
+    <Real>-2.242599</Real>
+    <Real>-13.041600</Real>
+    <Real>-0.565767</Real>
+    <Real>29.868441</Real>
+    <Real>15.982319</Real>
+    <Real>26.346165</Real>
+    <Real>20.595594</Real>
+    <Real>-16.867691</Real>
+    <Real>-8.801338</Real>
+    <Real>54.345867</Real>
+    <Real>37.006237</Real>
+    <Real>8.052507</Real>
+    <Real>9.739853</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">72</Int>
+    <Real>-23.900000</Real>
+    <Real>-8.800000</Real>
+    <Real>8.052510</Real>
+    <Real>9.739851</Real>
+    <Real>54.345867</Real>
+    <Real>37.006241</Real>
+    <Real>-16.867691</Real>
+    <Real>-8.801336</Real>
+    <Real>26.346165</Real>
+    <Real>20.595596</Real>
+    <Real>29.868439</Real>
+    <Real>15.982317</Real>
+    <Real>-13.041600</Real>
+    <Real>-0.565767</Real>
+    <Real>34.638107</Real>
+    <Real>-2.242603</Real>
+    <Real>-32.494637</Real>
+    <Real>-22.538834</Real>
+    <Real>-26.100000</Real>
+    <Real>-3.799998</Real>
+    <Real>5.243637</Real>
+    <Real>16.918318</Real>
+    <Real>-38.808922</Real>
+    <Real>31.520519</Real>
+    <Real>-44.230057</Real>
+    <Real>-23.448593</Real>
+    <Real>19.273615</Real>
+    <Real>20.601770</Real>
+    <Real>54.927792</Real>
+    <Real>-37.935562</Real>
+    <Real>-10.632310</Real>
+    <Real>41.601337</Real>
+    <Real>18.284157</Real>
+    <Real>27.516777</Real>
+    <Real>-82.090912</Real>
+    <Real>21.219349</Real>
+    <Real>-4.100000</Real>
+    <Real>-8.199999</Real>
+    <Real>-17.172882</Real>
+    <Real>-76.719643</Real>
+    <Real>2.152242</Real>
+    <Real>-10.057494</Real>
+    <Real>-6.135126</Real>
+    <Real>-13.115322</Real>
+    <Real>21.989540</Real>
+    <Real>82.459198</Real>
+    <Real>-18.153713</Real>
+    <Real>-37.846497</Real>
+    <Real>0.630056</Real>
+    <Real>-37.651405</Real>
+    <Real>-55.216125</Real>
+    <Real>58.903374</Real>
+    <Real>5.703632</Real>
+    <Real>39.566254</Real>
+    <Real>-13.900001</Real>
+    <Real>27.200003</Real>
+    <Real>1.883896</Real>
+    <Real>9.603774</Real>
+    <Real>-2.687534</Real>
+    <Real>65.553329</Real>
+    <Real>0.641601</Real>
+    <Real>10.865768</Real>
+    <Real>0.147074</Real>
+    <Real>-22.558109</Real>
+    <Real>7.228170</Real>
+    <Real>25.880180</Real>
+    <Real>16.035124</Real>
+    <Real>-18.484676</Real>
+    <Real>-27.610462</Real>
+    <Real>-15.014448</Real>
+    <Real>-0.249666</Real>
+    <Real>11.846352</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_4.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Complex_4.xml
new file mode 100644 (file)
index 0000000..42b7186
--- /dev/null
@@ -0,0 +1,250 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">120</Int>
+    <Real>17.200001</Real>
+    <Real>10.799999</Real>
+    <Real>-48.287727</Real>
+    <Real>31.814472</Real>
+    <Real>1.984303</Real>
+    <Real>-10.225714</Real>
+    <Real>-37.298904</Real>
+    <Real>5.071005</Real>
+    <Real>-80.941994</Real>
+    <Real>-25.038540</Real>
+    <Real>58.271923</Real>
+    <Real>-64.211853</Real>
+    <Real>-44.875717</Real>
+    <Real>50.887005</Real>
+    <Real>-34.709217</Real>
+    <Real>-34.463448</Real>
+    <Real>29.056366</Real>
+    <Real>-63.307510</Real>
+    <Real>-19.416695</Real>
+    <Real>-30.757036</Real>
+    <Real>21.623388</Real>
+    <Real>-8.350372</Real>
+    <Real>-34.539642</Real>
+    <Real>9.102520</Real>
+    <Real>52.660870</Real>
+    <Real>49.562233</Real>
+    <Real>-14.691511</Real>
+    <Real>23.859463</Real>
+    <Real>-19.263680</Real>
+    <Real>-50.240406</Real>
+    <Real>38.899998</Real>
+    <Real>13.099998</Real>
+    <Real>-19.190006</Real>
+    <Real>44.414120</Real>
+    <Real>22.841915</Real>
+    <Real>-8.660086</Real>
+    <Real>-29.236032</Real>
+    <Real>16.574453</Real>
+    <Real>15.718065</Real>
+    <Real>80.224770</Real>
+    <Real>-3.296360</Real>
+    <Real>-96.368073</Real>
+    <Real>44.756210</Real>
+    <Real>-10.313662</Real>
+    <Real>-51.376816</Real>
+    <Real>-53.115501</Real>
+    <Real>37.660751</Real>
+    <Real>48.688965</Real>
+    <Real>113.359009</Real>
+    <Real>43.415958</Real>
+    <Real>9.428082</Real>
+    <Real>-6.188145</Real>
+    <Real>62.956459</Real>
+    <Real>20.689814</Real>
+    <Real>-1.511428</Real>
+    <Real>43.506195</Real>
+    <Real>16.584084</Real>
+    <Real>-80.683403</Real>
+    <Real>-19.237019</Real>
+    <Real>-15.969333</Real>
+    <Real>26.799999</Real>
+    <Real>41.400002</Real>
+    <Real>-74.262856</Real>
+    <Real>25.847061</Real>
+    <Real>-115.179878</Real>
+    <Real>74.023155</Real>
+    <Real>-22.679228</Real>
+    <Real>28.191254</Real>
+    <Real>9.300177</Real>
+    <Real>-33.667770</Real>
+    <Real>45.085762</Real>
+    <Real>52.815697</Real>
+    <Real>56.023335</Real>
+    <Real>88.414932</Real>
+    <Real>1.268104</Real>
+    <Real>-60.885769</Real>
+    <Real>19.453997</Real>
+    <Real>45.144821</Real>
+    <Real>-3.591596</Real>
+    <Real>20.194954</Real>
+    <Real>-101.503639</Real>
+    <Real>-37.131927</Real>
+    <Real>-40.415379</Real>
+    <Real>-32.052933</Real>
+    <Real>3.569159</Real>
+    <Real>36.880966</Real>
+    <Real>22.176958</Real>
+    <Real>49.781334</Real>
+    <Real>-15.491421</Real>
+    <Real>30.330524</Real>
+    <Real>-41.300003</Real>
+    <Real>-26.500002</Real>
+    <Real>31.782379</Real>
+    <Real>21.288683</Real>
+    <Real>-103.240952</Real>
+    <Real>29.350885</Real>
+    <Real>14.756779</Real>
+    <Real>-28.193106</Real>
+    <Real>49.140739</Real>
+    <Real>-26.738792</Real>
+    <Real>-5.223394</Real>
+    <Real>44.650379</Real>
+    <Real>-26.498074</Real>
+    <Real>41.127838</Real>
+    <Real>42.069508</Real>
+    <Real>4.545208</Real>
+    <Real>-3.819133</Real>
+    <Real>68.032982</Real>
+    <Real>-2.257414</Real>
+    <Real>-11.742420</Real>
+    <Real>-20.385763</Real>
+    <Real>5.184301</Real>
+    <Real>-34.606644</Real>
+    <Real>66.216446</Real>
+    <Real>40.639713</Real>
+    <Real>16.379454</Real>
+    <Real>-65.736809</Real>
+    <Real>-5.173918</Real>
+    <Real>18.996904</Real>
+    <Real>-83.532089</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">120</Int>
+    <Real>17.200001</Real>
+    <Real>10.799999</Real>
+    <Real>18.996902</Real>
+    <Real>-83.532089</Real>
+    <Real>-65.736809</Real>
+    <Real>-5.173914</Real>
+    <Real>40.639713</Real>
+    <Real>16.379452</Real>
+    <Real>-34.606644</Real>
+    <Real>66.216446</Real>
+    <Real>-20.385761</Real>
+    <Real>5.184303</Real>
+    <Real>-2.257414</Real>
+    <Real>-11.742420</Real>
+    <Real>-3.819134</Real>
+    <Real>68.032990</Real>
+    <Real>42.069511</Real>
+    <Real>4.545209</Real>
+    <Real>-26.498072</Real>
+    <Real>41.127838</Real>
+    <Real>-5.223394</Real>
+    <Real>44.650379</Real>
+    <Real>49.140739</Real>
+    <Real>-26.738794</Real>
+    <Real>14.756779</Real>
+    <Real>-28.193106</Real>
+    <Real>-103.240952</Real>
+    <Real>29.350885</Real>
+    <Real>31.782379</Real>
+    <Real>21.288681</Real>
+    <Real>-41.299999</Real>
+    <Real>-26.500004</Real>
+    <Real>-15.491419</Real>
+    <Real>30.330521</Real>
+    <Real>22.176956</Real>
+    <Real>49.781334</Real>
+    <Real>3.569159</Real>
+    <Real>36.880966</Real>
+    <Real>-40.415379</Real>
+    <Real>-32.052933</Real>
+    <Real>-101.503639</Real>
+    <Real>-37.131927</Real>
+    <Real>-3.591593</Real>
+    <Real>20.194954</Real>
+    <Real>19.454000</Real>
+    <Real>45.144817</Real>
+    <Real>1.268109</Real>
+    <Real>-60.885769</Real>
+    <Real>56.023335</Real>
+    <Real>88.414932</Real>
+    <Real>45.085762</Real>
+    <Real>52.815697</Real>
+    <Real>9.300180</Real>
+    <Real>-33.667770</Real>
+    <Real>-22.679226</Real>
+    <Real>28.191257</Real>
+    <Real>-115.179871</Real>
+    <Real>74.023163</Real>
+    <Real>-74.262848</Real>
+    <Real>25.847065</Real>
+    <Real>26.799999</Real>
+    <Real>41.400002</Real>
+    <Real>-19.237017</Real>
+    <Real>-15.969336</Real>
+    <Real>16.584082</Real>
+    <Real>-80.683411</Real>
+    <Real>-1.511429</Real>
+    <Real>43.506195</Real>
+    <Real>62.956459</Real>
+    <Real>20.689808</Real>
+    <Real>9.428082</Real>
+    <Real>-6.188147</Real>
+    <Real>113.359009</Real>
+    <Real>43.415958</Real>
+    <Real>37.660744</Real>
+    <Real>48.688965</Real>
+    <Real>-51.376816</Real>
+    <Real>-53.115501</Real>
+    <Real>44.756214</Real>
+    <Real>-10.313661</Real>
+    <Real>-3.296352</Real>
+    <Real>-96.368073</Real>
+    <Real>15.718060</Real>
+    <Real>80.224777</Real>
+    <Real>-29.236032</Real>
+    <Real>16.574453</Real>
+    <Real>22.841919</Real>
+    <Real>-8.660082</Real>
+    <Real>-19.190010</Real>
+    <Real>44.414124</Real>
+    <Real>38.900002</Real>
+    <Real>13.099998</Real>
+    <Real>-19.263681</Real>
+    <Real>-50.240398</Real>
+    <Real>-14.691512</Real>
+    <Real>23.859463</Real>
+    <Real>52.660870</Real>
+    <Real>49.562233</Real>
+    <Real>-34.539642</Real>
+    <Real>9.102522</Real>
+    <Real>21.623390</Real>
+    <Real>-8.350372</Real>
+    <Real>-19.416698</Real>
+    <Real>-30.757038</Real>
+    <Real>29.056356</Real>
+    <Real>-63.307510</Real>
+    <Real>-34.709217</Real>
+    <Real>-34.463448</Real>
+    <Real>-44.875717</Real>
+    <Real>50.887005</Real>
+    <Real>58.271915</Real>
+    <Real>-64.211853</Real>
+    <Real>-80.941994</Real>
+    <Real>-25.038536</Real>
+    <Real>-37.298904</Real>
+    <Real>5.071005</Real>
+    <Real>1.984300</Real>
+    <Real>-10.225712</Real>
+    <Real>-48.287727</Real>
+    <Real>31.814470</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_0.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_0.xml
new file mode 100644 (file)
index 0000000..d50aece
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">8</Int>
+    <Real>5.500000</Real>
+    <Real>0.000000</Real>
+    <Real>3.784214</Real>
+    <Real>-6.770811</Real>
+    <Real>-1.265258</Real>
+    <Real>1.880868</Real>
+    <Real>-17.518957</Real>
+    <Real>5.957638</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">7</Int>
+    <Real>12.700001</Real>
+    <Real>-0.650572</Real>
+    <Real>-7.285891</Real>
+    <Real>-12.340374</Real>
+    <Real>-1.403408</Real>
+    <Real>9.718491</Real>
+    <Real>-25.238245</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_1.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_1.xml
new file mode 100644 (file)
index 0000000..0884cff
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">10</Int>
+    <Real>3.600000</Real>
+    <Real>0.000000</Real>
+    <Real>2.329647</Real>
+    <Real>-5.440916</Real>
+    <Real>-9.400000</Real>
+    <Real>-2.200000</Real>
+    <Real>-11.529646</Real>
+    <Real>-14.640917</Real>
+    <Real>5.599999</Real>
+    <Real>0.000000</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">8</Int>
+    <Real>6.400000</Real>
+    <Real>9.957358</Real>
+    <Real>-16.400000</Real>
+    <Real>0.168125</Real>
+    <Real>-21.600000</Real>
+    <Real>18.442642</Real>
+    <Real>-7.600000</Real>
+    <Real>-17.368124</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_2.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_2.xml
new file mode 100644 (file)
index 0000000..c57f963
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">26</Int>
+    <Real>-14.899998</Real>
+    <Real>0.000000</Real>
+    <Real>4.681029</Real>
+    <Real>-3.886220</Real>
+    <Real>0.122538</Real>
+    <Real>-6.130621</Real>
+    <Real>-2.528990</Real>
+    <Real>-7.381798</Real>
+    <Real>-22.351772</Real>
+    <Real>-21.653393</Real>
+    <Real>38.317162</Real>
+    <Real>-14.388227</Real>
+    <Real>-42.038185</Real>
+    <Real>-12.708513</Real>
+    <Real>25.734924</Real>
+    <Real>12.099443</Real>
+    <Real>-5.587564</Real>
+    <Real>-1.429324</Real>
+    <Real>-20.619394</Real>
+    <Real>-17.997190</Real>
+    <Real>-18.367165</Real>
+    <Real>-21.378529</Real>
+    <Real>0.494249</Real>
+    <Real>3.557354</Real>
+    <Real>5.843164</Real>
+    <Real>10.211052</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">25</Int>
+    <Real>-10.899998</Real>
+    <Real>42.088486</Real>
+    <Real>-2.251348</Real>
+    <Real>20.774303</Real>
+    <Real>-8.037441</Real>
+    <Real>-6.344712</Real>
+    <Real>-15.688157</Real>
+    <Real>10.435755</Real>
+    <Real>-67.115044</Real>
+    <Real>15.042854</Real>
+    <Real>55.701084</Real>
+    <Real>-9.330409</Real>
+    <Real>-91.844208</Real>
+    <Real>-29.440853</Real>
+    <Real>47.926575</Real>
+    <Real>34.717335</Real>
+    <Real>-31.900063</Real>
+    <Real>44.418152</Real>
+    <Real>-23.200771</Real>
+    <Real>4.592251</Real>
+    <Real>-9.673705</Real>
+    <Real>-41.207043</Real>
+    <Real>3.189825</Real>
+    <Real>-15.374102</Real>
+    <Real>-4.078770</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_3.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_3.xml
new file mode 100644 (file)
index 0000000..05190cb
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">38</Int>
+    <Real>-20.799999</Real>
+    <Real>0.000000</Real>
+    <Real>17.646286</Real>
+    <Real>-3.338140</Real>
+    <Real>10.919691</Real>
+    <Real>12.381346</Real>
+    <Real>-18.119167</Real>
+    <Real>3.993079</Real>
+    <Real>-9.247763</Real>
+    <Real>-26.022711</Real>
+    <Real>18.851929</Real>
+    <Real>-16.865343</Real>
+    <Real>-30.450003</Real>
+    <Real>0.952625</Real>
+    <Real>31.785713</Real>
+    <Real>1.693745</Real>
+    <Real>-10.580781</Real>
+    <Real>-46.456360</Real>
+    <Real>-44.599998</Real>
+    <Real>18.400000</Real>
+    <Real>8.542703</Real>
+    <Real>6.988766</Real>
+    <Real>3.509121</Real>
+    <Real>-43.838524</Real>
+    <Real>37.250000</Real>
+    <Real>-9.439676</Real>
+    <Real>-8.675214</Real>
+    <Real>3.376335</Real>
+    <Real>-6.262395</Real>
+    <Real>0.323185</Real>
+    <Real>-33.880833</Real>
+    <Real>12.306924</Real>
+    <Real>-2.071455</Real>
+    <Real>6.586344</Real>
+    <Real>-10.617840</Real>
+    <Real>26.582367</Real>
+    <Real>-13.200001</Real>
+    <Real>0.000000</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">36</Int>
+    <Real>-24.000000</Real>
+    <Real>35.860577</Real>
+    <Real>44.827560</Real>
+    <Real>-31.267807</Real>
+    <Real>41.115269</Real>
+    <Real>2.966239</Real>
+    <Real>-20.002949</Real>
+    <Real>11.612801</Real>
+    <Real>-27.116091</Real>
+    <Real>-12.400000</Real>
+    <Real>32.593163</Real>
+    <Real>-66.026733</Real>
+    <Real>-46.073441</Real>
+    <Real>15.306140</Real>
+    <Real>57.451775</Real>
+    <Real>37.667809</Real>
+    <Real>-17.724516</Real>
+    <Real>-87.304916</Real>
+    <Real>-79.199997</Real>
+    <Real>-1.101837</Real>
+    <Real>33.648354</Real>
+    <Real>54.121399</Real>
+    <Real>33.137890</Real>
+    <Real>-79.139084</Real>
+    <Real>79.673447</Real>
+    <Real>-15.593270</Real>
+    <Real>7.760269</Real>
+    <Real>-28.000006</Real>
+    <Real>16.095781</Real>
+    <Real>-5.834768</Real>
+    <Real>-63.997040</Real>
+    <Real>1.211704</Real>
+    <Real>-3.418797</Real>
+    <Real>-14.121400</Real>
+    <Real>-10.770664</Real>
+    <Real>2.043163</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_4.xml b/src/gromacs/mdlib/tests/refdata/7_8_25_36_60_FFTTest1D_Real_4.xml
new file mode 100644 (file)
index 0000000..ed5fb76
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">62</Int>
+    <Real>-35.200001</Real>
+    <Real>0.000000</Real>
+    <Real>4.657591</Real>
+    <Real>1.492258</Real>
+    <Real>29.654743</Real>
+    <Real>-20.869375</Real>
+    <Real>6.776968</Real>
+    <Real>28.650063</Real>
+    <Real>3.468195</Real>
+    <Real>-12.723418</Real>
+    <Real>-18.706472</Real>
+    <Real>-14.891600</Real>
+    <Real>48.687279</Real>
+    <Real>-17.058693</Real>
+    <Real>-1.727743</Real>
+    <Real>10.194302</Real>
+    <Real>13.707310</Real>
+    <Real>18.593037</Real>
+    <Real>-12.017823</Real>
+    <Real>-19.975637</Real>
+    <Real>-54.700001</Real>
+    <Real>12.643971</Real>
+    <Real>-12.921187</Real>
+    <Real>-9.166838</Real>
+    <Real>71.924393</Real>
+    <Real>-33.185326</Real>
+    <Real>5.207533</Real>
+    <Real>-11.813587</Real>
+    <Real>-60.316532</Real>
+    <Real>-61.448521</Real>
+    <Real>0.600000</Real>
+    <Real>-0.200001</Real>
+    <Real>23.007572</Real>
+    <Real>53.704052</Real>
+    <Real>17.922083</Real>
+    <Real>4.037315</Real>
+    <Real>62.662716</Real>
+    <Real>-3.783321</Real>
+    <Real>-38.055168</Real>
+    <Real>37.503372</Real>
+    <Real>29.000004</Real>
+    <Real>17.320507</Real>
+    <Real>-59.948929</Real>
+    <Real>-2.024670</Real>
+    <Real>-21.729626</Real>
+    <Real>-18.480301</Real>
+    <Real>-17.544636</Real>
+    <Real>1.094171</Real>
+    <Real>-26.574400</Real>
+    <Real>-23.926907</Real>
+    <Real>-27.193521</Real>
+    <Real>-1.208399</Real>
+    <Real>8.091417</Real>
+    <Real>28.850170</Real>
+    <Real>-15.910220</Real>
+    <Real>25.549629</Real>
+    <Real>-51.183086</Real>
+    <Real>16.583544</Real>
+    <Real>8.361528</Real>
+    <Real>-8.990984</Real>
+    <Real>-5.199997</Real>
+    <Real>0.000000</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">60</Int>
+    <Real>-35.699997</Real>
+    <Real>32.775555</Real>
+    <Real>9.874311</Real>
+    <Real>92.869705</Real>
+    <Real>-4.213389</Real>
+    <Real>-56.797562</Real>
+    <Real>54.124458</Real>
+    <Real>8.672426</Real>
+    <Real>29.111702</Real>
+    <Real>-0.432398</Real>
+    <Real>-50.899483</Real>
+    <Real>13.882240</Real>
+    <Real>37.892555</Real>
+    <Real>-68.736313</Real>
+    <Real>4.400162</Real>
+    <Real>-24.500010</Real>
+    <Real>23.087891</Real>
+    <Real>25.220491</Real>
+    <Real>-41.421135</Real>
+    <Real>-77.929726</Real>
+    <Real>-78.504082</Real>
+    <Real>52.291759</Real>
+    <Real>-11.789821</Real>
+    <Real>26.090498</Real>
+    <Real>136.671555</Real>
+    <Real>-32.202442</Real>
+    <Real>13.776127</Real>
+    <Real>16.644150</Real>
+    <Real>-116.286118</Real>
+    <Real>-122.809189</Real>
+    <Real>5.900002</Real>
+    <Real>-120.230835</Real>
+    <Real>51.068211</Real>
+    <Real>34.713341</Real>
+    <Real>41.883102</Real>
+    <Real>3.656017</Real>
+    <Real>141.902664</Real>
+    <Real>-46.963985</Real>
+    <Real>-80.762894</Real>
+    <Real>9.235466</Real>
+    <Real>36.504078</Real>
+    <Real>94.803848</Real>
+    <Real>-93.112389</Real>
+    <Real>53.807652</Real>
+    <Real>-29.732533</Real>
+    <Real>-6.100004</Real>
+    <Real>-33.544922</Real>
+    <Real>40.269276</Real>
+    <Real>15.733225</Real>
+    <Real>-68.413177</Real>
+    <Real>-31.500515</Real>
+    <Real>-47.749313</Real>
+    <Real>3.407532</Real>
+    <Real>37.122765</Real>
+    <Real>-62.990944</Real>
+    <Real>28.943962</Real>
+    <Real>-29.443289</Real>
+    <Real>-19.972706</Real>
+    <Real>25.563931</Real>
+    <Real>-19.161520</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/FFFTest3D_Real5_6_9.xml b/src/gromacs/mdlib/tests/refdata/FFFTest3D_Real5_6_9.xml
new file mode 100644 (file)
index 0000000..28c83bc
--- /dev/null
@@ -0,0 +1,677 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Vector Name="rsize">
+    <Int Name="X">5</Int>
+    <Int Name="Y">6</Int>
+    <Int Name="Z">10</Int>
+  </Vector>
+  <Vector Name="csize">
+    <Int Name="X">5</Int>
+    <Int Name="Y">6</Int>
+    <Int Name="Z">5</Int>
+  </Vector>
+  <Sequence Name="forward">
+    <Int Name="Length">300</Int>
+    <Real>136.099991</Real>
+    <Real>0.000000</Real>
+    <Real>6.104675</Real>
+    <Real>-9.692793</Real>
+    <Real>-156.904694</Real>
+    <Real>-44.500271</Real>
+    <Real>-156.904694</Real>
+    <Real>44.500271</Real>
+    <Real>6.104675</Real>
+    <Real>9.692793</Real>
+    <Real>109.330902</Real>
+    <Real>144.017410</Real>
+    <Real>110.989105</Real>
+    <Real>-75.428070</Real>
+    <Real>-28.957680</Real>
+    <Real>-35.773399</Real>
+    <Real>12.909733</Real>
+    <Real>-51.326603</Real>
+    <Real>-17.828440</Real>
+    <Real>-51.168423</Real>
+    <Real>80.282150</Real>
+    <Real>-30.151272</Real>
+    <Real>46.266457</Real>
+    <Real>-2.567846</Real>
+    <Real>-79.201797</Real>
+    <Real>-57.924297</Real>
+    <Real>82.000694</Real>
+    <Real>-94.147446</Real>
+    <Real>79.405762</Real>
+    <Real>-57.639099</Real>
+    <Real>174.500000</Real>
+    <Real>-82.099213</Real>
+    <Real>-1.021135</Real>
+    <Real>-80.952103</Real>
+    <Real>115.144890</Real>
+    <Real>-67.412949</Real>
+    <Real>65.004921</Real>
+    <Real>16.143179</Real>
+    <Real>-55.628662</Real>
+    <Real>-81.859581</Real>
+    <Real>-73.063065</Real>
+    <Real>-35.171608</Real>
+    <Real>22.705456</Real>
+    <Real>46.342239</Real>
+    <Real>-37.809608</Real>
+    <Real>-14.488886</Real>
+    <Real>-79.566299</Real>
+    <Real>40.132591</Real>
+    <Real>171.536591</Real>
+    <Real>-43.288338</Real>
+    <Real>-53.849998</Real>
+    <Real>8.746857</Real>
+    <Real>-37.527981</Real>
+    <Real>-76.662766</Real>
+    <Real>-46.050011</Real>
+    <Real>82.151398</Real>
+    <Real>93.260750</Real>
+    <Real>71.729401</Real>
+    <Real>82.167252</Real>
+    <Real>-68.644394</Real>
+    <Real>34.447922</Real>
+    <Real>-46.679695</Real>
+    <Real>47.084324</Real>
+    <Real>53.226364</Real>
+    <Real>-39.940063</Real>
+    <Real>-56.889717</Real>
+    <Real>-54.133568</Real>
+    <Real>162.862778</Real>
+    <Real>0.139784</Real>
+    <Real>-83.154434</Real>
+    <Real>77.450851</Real>
+    <Real>99.232132</Real>
+    <Real>25.603106</Real>
+    <Real>-41.980274</Real>
+    <Real>-63.660904</Real>
+    <Real>0.387545</Real>
+    <Real>-14.140629</Real>
+    <Real>-109.476654</Real>
+    <Real>-1.819370</Real>
+    <Real>-50.783764</Real>
+    <Real>-28.349995</Real>
+    <Real>66.250931</Real>
+    <Real>41.767319</Real>
+    <Real>141.317810</Real>
+    <Real>-98.532402</Real>
+    <Real>-56.132351</Real>
+    <Real>-26.039164</Real>
+    <Real>-32.616665</Real>
+    <Real>43.404266</Real>
+    <Real>74.736923</Real>
+    <Real>-75.394913</Real>
+    <Real>-63.045734</Real>
+    <Real>58.365730</Real>
+    <Real>39.770607</Real>
+    <Real>-89.180290</Real>
+    <Real>-54.385849</Real>
+    <Real>-23.894928</Real>
+    <Real>99.576477</Real>
+    <Real>1.824394</Real>
+    <Real>79.398521</Real>
+    <Real>-93.250000</Real>
+    <Real>-38.191719</Real>
+    <Real>71.020500</Real>
+    <Real>-1.741463</Real>
+    <Real>-45.144749</Real>
+    <Real>136.910095</Real>
+    <Real>76.807373</Real>
+    <Real>-61.008018</Real>
+    <Real>83.066872</Real>
+    <Real>-10.854141</Real>
+    <Real>11.146191</Real>
+    <Real>-39.325905</Real>
+    <Real>-44.096260</Real>
+    <Real>-54.376839</Real>
+    <Real>38.091496</Real>
+    <Real>-10.091565</Real>
+    <Real>28.417315</Real>
+    <Real>104.614540</Real>
+    <Real>-132.632584</Real>
+    <Real>13.423996</Real>
+    <Real>-89.798325</Real>
+    <Real>-124.425873</Real>
+    <Real>-177.699615</Real>
+    <Real>-86.970207</Real>
+    <Real>93.179634</Real>
+    <Real>-17.907501</Real>
+    <Real>21.200096</Real>
+    <Real>-170.350403</Real>
+    <Real>-56.001003</Real>
+    <Real>-18.570013</Real>
+    <Real>-41.499996</Real>
+    <Real>70.148056</Real>
+    <Real>92.677139</Real>
+    <Real>12.237492</Real>
+    <Real>63.749992</Real>
+    <Real>-69.490219</Real>
+    <Real>59.724304</Real>
+    <Real>16.675392</Real>
+    <Real>-41.651443</Real>
+    <Real>8.534382</Real>
+    <Real>13.130329</Real>
+    <Real>-22.927179</Real>
+    <Real>116.121109</Real>
+    <Real>-45.760754</Real>
+    <Real>-29.881199</Real>
+    <Real>24.907825</Real>
+    <Real>-39.485001</Real>
+    <Real>-8.265886</Real>
+    <Real>60.512638</Real>
+    <Real>100.439362</Real>
+    <Real>-12.300005</Real>
+    <Real>0.000000</Real>
+    <Real>-105.672363</Real>
+    <Real>-26.742607</Real>
+    <Real>23.572367</Real>
+    <Real>-22.442314</Real>
+    <Real>23.572367</Real>
+    <Real>22.442314</Real>
+    <Real>-105.672363</Real>
+    <Real>26.742607</Real>
+    <Real>42.035851</Real>
+    <Real>-41.135574</Real>
+    <Real>101.095390</Real>
+    <Real>13.414177</Real>
+    <Real>-72.121185</Real>
+    <Real>-60.285027</Real>
+    <Real>-4.238514</Real>
+    <Real>-12.733875</Real>
+    <Real>-2.203131</Real>
+    <Real>-5.904337</Real>
+    <Real>80.964844</Real>
+    <Real>-8.403931</Real>
+    <Real>-131.619049</Real>
+    <Real>-28.451719</Real>
+    <Real>-9.711679</Real>
+    <Real>-28.127993</Real>
+    <Real>-10.749870</Real>
+    <Real>-19.317490</Real>
+    <Real>20.460503</Real>
+    <Real>99.431366</Real>
+    <Real>-3.299992</Real>
+    <Real>-11.085125</Real>
+    <Real>-22.328377</Real>
+    <Real>9.187958</Real>
+    <Real>-85.659286</Real>
+    <Real>-7.129055</Real>
+    <Real>-68.632393</Real>
+    <Real>-26.374462</Real>
+    <Real>-61.079945</Real>
+    <Real>-80.646698</Real>
+    <Real>-53.250683</Real>
+    <Real>-70.411972</Real>
+    <Real>41.788376</Real>
+    <Real>32.640892</Real>
+    <Real>-34.654633</Real>
+    <Real>137.868515</Real>
+    <Real>22.242607</Real>
+    <Real>81.318375</Real>
+    <Real>-23.038826</Real>
+    <Real>-59.640949</Real>
+    <Real>-93.250000</Real>
+    <Real>38.191719</Real>
+    <Real>83.066872</Real>
+    <Real>10.854141</Real>
+    <Real>76.807373</Real>
+    <Real>61.008018</Real>
+    <Real>-45.144749</Real>
+    <Real>-136.910095</Real>
+    <Real>71.020500</Real>
+    <Real>1.741463</Real>
+    <Real>-29.122555</Real>
+    <Real>-55.548012</Real>
+    <Real>-91.848518</Real>
+    <Real>25.068550</Real>
+    <Real>7.366094</Real>
+    <Real>-19.841644</Real>
+    <Real>-54.161346</Real>
+    <Real>32.336601</Real>
+    <Real>48.259354</Real>
+    <Real>-110.070633</Real>
+    <Real>-25.626530</Real>
+    <Real>-34.453671</Real>
+    <Real>40.635841</Real>
+    <Real>152.679749</Real>
+    <Real>91.784843</Real>
+    <Real>79.680069</Real>
+    <Real>-91.796318</Real>
+    <Real>60.323021</Real>
+    <Real>-163.821884</Real>
+    <Real>25.244905</Real>
+    <Real>52.849995</Real>
+    <Real>-2.338261</Real>
+    <Real>-19.914078</Real>
+    <Real>-59.783733</Real>
+    <Real>32.573555</Real>
+    <Real>39.669312</Real>
+    <Real>31.658638</Real>
+    <Real>-44.218288</Real>
+    <Real>-33.918106</Real>
+    <Real>-63.665844</Real>
+    <Real>-106.979111</Real>
+    <Real>64.663254</Real>
+    <Real>45.356190</Real>
+    <Real>34.173038</Real>
+    <Real>-39.799603</Real>
+    <Real>-13.643003</Real>
+    <Real>44.499382</Real>
+    <Real>33.891609</Real>
+    <Real>-140.200684</Real>
+    <Real>-124.764404</Real>
+    <Real>-53.849998</Real>
+    <Real>-8.746857</Real>
+    <Real>82.167252</Real>
+    <Real>68.644394</Real>
+    <Real>93.260750</Real>
+    <Real>-71.729401</Real>
+    <Real>-46.050011</Real>
+    <Real>-82.151398</Real>
+    <Real>-37.527981</Real>
+    <Real>76.662766</Real>
+    <Real>-7.361046</Real>
+    <Real>-30.547447</Real>
+    <Real>-18.733921</Real>
+    <Real>-18.102921</Real>
+    <Real>-62.820633</Real>
+    <Real>30.062834</Real>
+    <Real>25.151785</Real>
+    <Real>-44.495804</Real>
+    <Real>-26.734823</Real>
+    <Real>62.413925</Real>
+    <Real>-48.153023</Real>
+    <Real>47.717987</Real>
+    <Real>-22.179010</Real>
+    <Real>5.617504</Real>
+    <Real>-9.662086</Real>
+    <Real>-2.834160</Real>
+    <Real>-79.862991</Real>
+    <Real>28.256496</Real>
+    <Real>53.788708</Real>
+    <Real>-29.917927</Real>
+    <Real>-3.299994</Real>
+    <Real>-72.572922</Real>
+    <Real>-11.154758</Real>
+    <Real>123.561584</Real>
+    <Real>4.391991</Real>
+    <Real>-61.963047</Real>
+    <Real>-18.307241</Real>
+    <Real>116.706436</Real>
+    <Real>0.370001</Real>
+    <Real>-218.315353</Real>
+    <Real>-38.139801</Real>
+    <Real>-30.521709</Real>
+    <Real>-107.609016</Real>
+    <Real>-90.941872</Real>
+    <Real>59.289177</Real>
+    <Real>-85.926285</Real>
+    <Real>-4.146584</Real>
+    <Real>162.120117</Real>
+    <Real>102.171837</Real>
+    <Real>60.231632</Real>
+  </Sequence>
+  <Sequence Name="backward 0">
+    <Int Name="Length">9</Int>
+    <Real>98.799988</Real>
+    <Real>-114.173569</Real>
+    <Real>53.384071</Real>
+    <Real>141.471985</Real>
+    <Real>199.509033</Real>
+    <Real>113.625153</Real>
+    <Real>-240.272003</Real>
+    <Real>7.033424</Real>
+    <Real>165.421875</Real>
+  </Sequence>
+  <Sequence Name="backward 1">
+    <Int Name="Length">9</Int>
+    <Real>-1.575298</Real>
+    <Real>-2.945534</Real>
+    <Real>49.955917</Real>
+    <Real>9.246468</Real>
+    <Real>-80.868546</Real>
+    <Real>142.019897</Real>
+    <Real>-145.112091</Real>
+    <Real>-67.696457</Real>
+    <Real>-220.994934</Real>
+  </Sequence>
+  <Sequence Name="backward 2">
+    <Int Name="Length">9</Int>
+    <Real>-138.077866</Real>
+    <Real>-95.826874</Real>
+    <Real>73.996407</Real>
+    <Real>107.429169</Real>
+    <Real>-172.523468</Real>
+    <Real>-184.753601</Real>
+    <Real>-99.268387</Real>
+    <Real>93.058205</Real>
+    <Real>94.748985</Real>
+  </Sequence>
+  <Sequence Name="backward 3">
+    <Int Name="Length">9</Int>
+    <Real>-235.800003</Real>
+    <Real>81.949379</Real>
+    <Real>10.473877</Real>
+    <Real>184.414093</Real>
+    <Real>-37.698116</Real>
+    <Real>8.471512</Real>
+    <Real>42.385918</Real>
+    <Real>0.269112</Real>
+    <Real>-81.465759</Real>
+  </Sequence>
+  <Sequence Name="backward 4">
+    <Int Name="Length">9</Int>
+    <Real>-78.322121</Real>
+    <Real>248.559799</Real>
+    <Real>-35.552376</Real>
+    <Real>-85.931610</Real>
+    <Real>-61.809845</Real>
+    <Real>-176.475525</Real>
+    <Real>96.170837</Real>
+    <Real>261.258270</Real>
+    <Real>-104.079994</Real>
+  </Sequence>
+  <Sequence Name="backward 5">
+    <Int Name="Length">9</Int>
+    <Real>155.175293</Real>
+    <Real>-98.054779</Real>
+    <Real>104.786880</Real>
+    <Real>38.312088</Real>
+    <Real>-323.533447</Real>
+    <Real>200.276062</Real>
+    <Real>44.753525</Real>
+    <Real>-91.192635</Real>
+    <Real>55.247559</Real>
+  </Sequence>
+  <Sequence Name="backward 6">
+    <Int Name="Length">9</Int>
+    <Real>15.303500</Real>
+    <Real>305.841766</Real>
+    <Real>149.636414</Real>
+    <Real>97.994270</Real>
+    <Real>-119.455658</Real>
+    <Real>-131.614471</Real>
+    <Real>-137.338257</Real>
+    <Real>-143.597076</Real>
+    <Real>-83.794022</Real>
+  </Sequence>
+  <Sequence Name="backward 7">
+    <Int Name="Length">9</Int>
+    <Real>142.921951</Real>
+    <Real>-106.948486</Real>
+    <Real>-177.869110</Real>
+    <Real>92.160866</Real>
+    <Real>147.520645</Real>
+    <Real>16.107725</Real>
+    <Real>99.443077</Real>
+    <Real>-117.643417</Real>
+    <Real>31.791712</Real>
+  </Sequence>
+  <Sequence Name="backward 8">
+    <Int Name="Length">9</Int>
+    <Real>70.535835</Real>
+    <Real>-12.913954</Real>
+    <Real>-71.002563</Real>
+    <Real>-25.461422</Real>
+    <Real>132.794754</Real>
+    <Real>49.911995</Real>
+    <Real>-18.915390</Real>
+    <Real>-99.215805</Real>
+    <Real>-93.416618</Real>
+  </Sequence>
+  <Sequence Name="backward 9">
+    <Int Name="Length">9</Int>
+    <Real>-137.812180</Real>
+    <Real>-270.526123</Real>
+    <Real>-4.917741</Real>
+    <Real>-109.398201</Real>
+    <Real>78.202507</Real>
+    <Real>-56.368717</Real>
+    <Real>41.836952</Real>
+    <Real>-61.765709</Real>
+    <Real>63.196239</Real>
+  </Sequence>
+  <Sequence Name="backward 10">
+    <Int Name="Length">9</Int>
+    <Real>95.718048</Real>
+    <Real>-146.683823</Real>
+    <Real>121.752052</Real>
+    <Real>-94.825714</Real>
+    <Real>46.993641</Real>
+    <Real>171.315262</Real>
+    <Real>-95.826294</Real>
+    <Real>-57.056820</Real>
+    <Real>-0.193985</Real>
+  </Sequence>
+  <Sequence Name="backward 11">
+    <Int Name="Length">9</Int>
+    <Real>-66.714127</Real>
+    <Real>-25.810600</Real>
+    <Real>29.393936</Real>
+    <Real>-151.375732</Real>
+    <Real>7.834263</Real>
+    <Real>-94.377373</Real>
+    <Real>-70.206131</Real>
+    <Real>93.005173</Real>
+    <Real>139.596436</Real>
+  </Sequence>
+  <Sequence Name="backward 12">
+    <Int Name="Length">9</Int>
+    <Real>115.719627</Real>
+    <Real>4.631203</Real>
+    <Real>114.154144</Real>
+    <Real>37.107712</Real>
+    <Real>50.143723</Real>
+    <Real>-78.143234</Real>
+    <Real>-203.631851</Real>
+    <Real>224.716385</Real>
+    <Real>156.081223</Real>
+  </Sequence>
+  <Sequence Name="backward 13">
+    <Int Name="Length">9</Int>
+    <Real>4.903898</Real>
+    <Real>-94.431732</Real>
+    <Real>-169.815826</Real>
+    <Real>224.333832</Real>
+    <Real>-107.830292</Real>
+    <Real>30.179779</Real>
+    <Real>-187.175079</Real>
+    <Real>-133.832184</Real>
+    <Real>-80.841988</Real>
+  </Sequence>
+  <Sequence Name="backward 14">
+    <Int Name="Length">9</Int>
+    <Real>24.096989</Real>
+    <Real>20.671638</Real>
+    <Real>190.058990</Real>
+    <Real>-44.652519</Real>
+    <Real>-190.773010</Real>
+    <Real>59.908936</Real>
+    <Real>11.267767</Real>
+    <Real>8.839233</Real>
+    <Real>-34.897720</Real>
+  </Sequence>
+  <Sequence Name="backward 15">
+    <Int Name="Length">9</Int>
+    <Real>158.846878</Real>
+    <Real>217.994934</Real>
+    <Real>-138.825958</Real>
+    <Real>-175.858566</Real>
+    <Real>76.223640</Real>
+    <Real>-42.485783</Real>
+    <Real>77.096649</Real>
+    <Real>153.119537</Real>
+    <Real>34.678310</Real>
+  </Sequence>
+  <Sequence Name="backward 16">
+    <Int Name="Length">9</Int>
+    <Real>371.395020</Real>
+    <Real>-111.492790</Real>
+    <Real>158.190826</Real>
+    <Real>-58.925667</Real>
+    <Real>-144.719879</Real>
+    <Real>-333.322144</Real>
+    <Real>99.971596</Real>
+    <Real>-46.656609</Real>
+    <Real>-26.605881</Real>
+  </Sequence>
+  <Sequence Name="backward 17">
+    <Int Name="Length">9</Int>
+    <Real>71.148178</Real>
+    <Real>-259.923920</Real>
+    <Real>247.147964</Real>
+    <Real>-74.934837</Real>
+    <Real>-143.744659</Real>
+    <Real>-90.704163</Real>
+    <Real>40.167183</Real>
+    <Real>-47.017914</Real>
+    <Real>-61.723965</Real>
+  </Sequence>
+  <Sequence Name="backward 18">
+    <Int Name="Length">9</Int>
+    <Real>311.415741</Real>
+    <Real>-101.387451</Real>
+    <Real>-65.574448</Real>
+    <Real>198.431671</Real>
+    <Real>-59.146561</Real>
+    <Real>-211.970352</Real>
+    <Real>65.043060</Real>
+    <Real>374.991150</Real>
+    <Real>77.087662</Real>
+  </Sequence>
+  <Sequence Name="backward 19">
+    <Int Name="Length">9</Int>
+    <Real>46.436607</Real>
+    <Real>-131.217865</Real>
+    <Real>-106.862938</Real>
+    <Real>-100.894928</Real>
+    <Real>91.341370</Real>
+    <Real>104.868263</Real>
+    <Real>108.135788</Real>
+    <Real>85.995560</Real>
+    <Real>138.099457</Real>
+  </Sequence>
+  <Sequence Name="backward 20">
+    <Int Name="Length">9</Int>
+    <Real>276.467651</Real>
+    <Real>102.775352</Real>
+    <Real>31.422379</Real>
+    <Real>24.277081</Real>
+    <Real>209.289078</Real>
+    <Real>-83.071228</Real>
+    <Real>-55.993786</Real>
+    <Real>6.634384</Real>
+    <Real>-98.950958</Real>
+  </Sequence>
+  <Sequence Name="backward 21">
+    <Int Name="Length">9</Int>
+    <Real>-144.987640</Real>
+    <Real>116.629684</Real>
+    <Real>100.528900</Real>
+    <Real>-126.684570</Real>
+    <Real>92.689560</Real>
+    <Real>-95.478477</Real>
+    <Real>112.271332</Real>
+    <Real>48.488789</Real>
+    <Real>-88.626488</Real>
+  </Sequence>
+  <Sequence Name="backward 22">
+    <Int Name="Length">9</Int>
+    <Real>115.846970</Real>
+    <Real>-233.430908</Real>
+    <Real>-201.873413</Real>
+    <Real>-170.125092</Real>
+    <Real>-157.867615</Real>
+    <Real>63.396282</Real>
+    <Real>125.960152</Real>
+    <Real>-31.443810</Real>
+    <Real>-120.665085</Real>
+  </Sequence>
+  <Sequence Name="backward 23">
+    <Int Name="Length">9</Int>
+    <Real>-38.792336</Real>
+    <Real>-97.641258</Real>
+    <Real>-298.203674</Real>
+    <Real>32.913078</Real>
+    <Real>234.089539</Real>
+    <Real>-94.883278</Real>
+    <Real>154.460388</Real>
+    <Real>-274.265320</Real>
+    <Real>138.110962</Real>
+  </Sequence>
+  <Sequence Name="backward 24">
+    <Int Name="Length">9</Int>
+    <Real>122.261093</Real>
+    <Real>-283.042755</Real>
+    <Real>180.152405</Real>
+    <Real>-9.914116</Real>
+    <Real>-68.225883</Real>
+    <Real>-123.085678</Real>
+    <Real>58.107559</Real>
+    <Real>-150.731934</Real>
+    <Real>97.533478</Real>
+  </Sequence>
+  <Sequence Name="backward 25">
+    <Int Name="Length">9</Int>
+    <Real>-29.801895</Real>
+    <Real>170.036240</Real>
+    <Real>-10.118553</Real>
+    <Real>-205.439148</Real>
+    <Real>-272.596405</Real>
+    <Real>8.733103</Real>
+    <Real>94.856377</Real>
+    <Real>37.072906</Real>
+    <Real>-43.885323</Real>
+  </Sequence>
+  <Sequence Name="backward 26">
+    <Int Name="Length">9</Int>
+    <Real>-122.646271</Real>
+    <Real>-218.252991</Real>
+    <Real>-66.248932</Real>
+    <Real>235.812164</Real>
+    <Real>77.755753</Real>
+    <Real>161.379578</Real>
+    <Real>-117.815208</Real>
+    <Real>24.181866</Real>
+    <Real>125.046944</Real>
+  </Sequence>
+  <Sequence Name="backward 27">
+    <Int Name="Length">9</Int>
+    <Real>30.252945</Real>
+    <Real>-222.873245</Real>
+    <Real>2.239723</Real>
+    <Real>-245.522018</Real>
+    <Real>193.957779</Real>
+    <Real>-126.312347</Real>
+    <Real>-249.541580</Real>
+    <Real>236.570755</Real>
+    <Real>125.660187</Real>
+  </Sequence>
+  <Sequence Name="backward 28">
+    <Int Name="Length">9</Int>
+    <Real>-8.014236</Real>
+    <Real>34.968662</Real>
+    <Real>-150.814621</Real>
+    <Real>61.533062</Real>
+    <Real>-96.969589</Real>
+    <Real>-39.410999</Real>
+    <Real>173.319183</Real>
+    <Real>-71.781250</Real>
+    <Real>4.845493</Real>
+  </Sequence>
+  <Sequence Name="backward 29">
+    <Int Name="Length">9</Int>
+    <Real>92.297699</Real>
+    <Real>240.886368</Real>
+    <Real>10.566074</Real>
+    <Real>-15.062660</Real>
+    <Real>54.062500</Real>
+    <Real>-59.442856</Real>
+    <Real>49.417946</Real>
+    <Real>-186.060486</Real>
+    <Real>-118.746475</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/FFTTest_Real2DLength18_15Test.xml b/src/gromacs/mdlib/tests/refdata/FFTTest_Real2DLength18_15Test.xml
new file mode 100644 (file)
index 0000000..ce8f598
--- /dev/null
@@ -0,0 +1,307 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">300</Int>
+    <Real>59.500015</Real>
+    <Real>0.000000</Real>
+    <Real>58.284428</Real>
+    <Real>25.119455</Real>
+    <Real>23.275055</Real>
+    <Real>-40.939476</Real>
+    <Real>78.762238</Real>
+    <Real>-88.695572</Real>
+    <Real>-46.537979</Real>
+    <Real>44.489082</Real>
+    <Real>19.149994</Real>
+    <Real>76.296829</Real>
+    <Real>16.487753</Real>
+    <Real>-200.575821</Real>
+    <Real>-92.921486</Real>
+    <Real>84.827309</Real>
+    <Real>-14.504190</Real>
+    <Real>-0.476252</Real>
+    <Real>-14.321627</Real>
+    <Real>101.386620</Real>
+    <Real>5.105488</Real>
+    <Real>23.114130</Real>
+    <Real>5.880474</Real>
+    <Real>-31.996572</Real>
+    <Real>93.047592</Real>
+    <Real>35.439285</Real>
+    <Real>119.995598</Real>
+    <Real>-10.512594</Real>
+    <Real>-1.016344</Real>
+    <Real>7.169436</Real>
+    <Real>-59.172359</Real>
+    <Real>-56.721958</Real>
+    <Real>-115.124878</Real>
+    <Real>34.540489</Real>
+    <Real>11.892926</Real>
+    <Real>-141.458679</Real>
+    <Real>23.777094</Real>
+    <Real>2.067272</Real>
+    <Real>-26.946531</Real>
+    <Real>39.039848</Real>
+    <Real>28.554794</Real>
+    <Real>-18.646141</Real>
+    <Real>19.387974</Real>
+    <Real>-50.741951</Real>
+    <Real>-17.293640</Real>
+    <Real>-2.234318</Real>
+    <Real>58.191956</Real>
+    <Real>3.653023</Real>
+    <Real>-0.499996</Real>
+    <Real>91.105873</Real>
+    <Real>17.303684</Real>
+    <Real>59.981899</Real>
+    <Real>-4.506799</Real>
+    <Real>-108.488968</Real>
+    <Real>6.417805</Real>
+    <Real>-125.336067</Real>
+    <Real>-166.741669</Real>
+    <Real>10.878983</Real>
+    <Real>22.750002</Real>
+    <Real>-54.992607</Real>
+    <Real>23.373627</Real>
+    <Real>96.939575</Real>
+    <Real>-33.451935</Real>
+    <Real>38.261444</Real>
+    <Real>2.247643</Real>
+    <Real>-89.996574</Real>
+    <Real>-65.407806</Real>
+    <Real>28.154144</Real>
+    <Real>-29.051739</Real>
+    <Real>-49.120026</Real>
+    <Real>-91.380325</Real>
+    <Real>-40.031837</Real>
+    <Real>40.096695</Real>
+    <Real>-35.308277</Real>
+    <Real>-74.098976</Real>
+    <Real>-39.311470</Real>
+    <Real>-17.298203</Real>
+    <Real>34.212547</Real>
+    <Real>126.643158</Real>
+    <Real>-79.838043</Real>
+    <Real>-10.866936</Real>
+    <Real>-24.255552</Real>
+    <Real>-2.109440</Real>
+    <Real>-30.403173</Real>
+    <Real>81.181267</Real>
+    <Real>9.453266</Real>
+    <Real>38.324913</Real>
+    <Real>34.154808</Real>
+    <Real>-24.172356</Real>
+    <Real>-120.968605</Real>
+    <Real>-77.616264</Real>
+    <Real>-31.243252</Real>
+    <Real>-129.478027</Real>
+    <Real>-6.951966</Real>
+    <Real>-37.620941</Real>
+    <Real>-18.195702</Real>
+    <Real>-71.000008</Real>
+    <Real>61.834206</Real>
+    <Real>-85.726387</Real>
+    <Real>-38.151093</Real>
+    <Real>-39.297394</Real>
+    <Real>-58.101421</Real>
+    <Real>-18.061201</Real>
+    <Real>-45.065048</Real>
+    <Real>82.690338</Real>
+    <Real>30.793144</Real>
+    <Real>-54.800003</Real>
+    <Real>-13.856409</Real>
+    <Real>31.231388</Real>
+    <Real>-52.627476</Real>
+    <Real>50.517281</Real>
+    <Real>54.467953</Real>
+    <Real>78.171127</Real>
+    <Real>-28.975449</Real>
+    <Real>8.001402</Real>
+    <Real>-9.653416</Real>
+    <Real>122.605064</Real>
+    <Real>-27.827431</Real>
+    <Real>110.748016</Real>
+    <Real>18.461014</Real>
+    <Real>-53.361305</Real>
+    <Real>-15.480171</Real>
+    <Real>56.016697</Real>
+    <Real>47.084560</Real>
+    <Real>-59.903400</Real>
+    <Real>55.444077</Real>
+    <Real>85.668854</Real>
+    <Real>-13.478641</Real>
+    <Real>97.877228</Real>
+    <Real>104.093643</Real>
+    <Real>72.565430</Real>
+    <Real>-32.885105</Real>
+    <Real>21.797112</Real>
+    <Real>-42.695190</Real>
+    <Real>-55.892036</Real>
+    <Real>-81.661339</Real>
+    <Real>36.254379</Real>
+    <Real>15.940639</Real>
+    <Real>-46.857368</Real>
+    <Real>-59.470917</Real>
+    <Real>-115.377487</Real>
+    <Real>-62.478050</Real>
+    <Real>67.422028</Real>
+    <Real>84.884163</Real>
+    <Real>-100.099991</Real>
+    <Real>0.000000</Real>
+    <Real>-56.598831</Real>
+    <Real>77.324150</Real>
+    <Real>81.916100</Real>
+    <Real>-53.319515</Real>
+    <Real>150.323792</Real>
+    <Real>38.709427</Real>
+    <Real>-25.627127</Real>
+    <Real>191.031097</Real>
+    <Real>25.150003</Real>
+    <Real>-39.057739</Real>
+    <Real>-80.773811</Real>
+    <Real>-11.168806</Real>
+    <Real>-48.090157</Real>
+    <Real>12.091412</Real>
+    <Real>97.877235</Real>
+    <Real>-104.093643</Real>
+    <Real>13.686665</Real>
+    <Real>-8.049868</Real>
+    <Real>-158.651367</Real>
+    <Real>-75.332474</Real>
+    <Real>58.815884</Real>
+    <Real>-77.903740</Real>
+    <Real>101.170471</Real>
+    <Real>95.961243</Real>
+    <Real>-79.140953</Real>
+    <Real>82.253922</Real>
+    <Real>94.759193</Real>
+    <Real>139.956818</Real>
+    <Real>-40.051247</Real>
+    <Real>44.010990</Real>
+    <Real>78.171127</Real>
+    <Real>28.975451</Real>
+    <Real>1.647640</Real>
+    <Real>-89.575607</Real>
+    <Real>-8.842512</Real>
+    <Real>-84.942368</Real>
+    <Real>102.661026</Real>
+    <Real>-45.536743</Real>
+    <Real>31.272789</Real>
+    <Real>5.219534</Real>
+    <Real>-45.371986</Real>
+    <Real>-78.379173</Real>
+    <Real>-87.164978</Real>
+    <Real>-142.783600</Real>
+    <Real>-40.061466</Real>
+    <Real>-6.871834</Real>
+    <Real>-71.000008</Real>
+    <Real>-61.834206</Real>
+    <Real>-33.188324</Real>
+    <Real>-35.313980</Real>
+    <Real>61.268761</Real>
+    <Real>36.457874</Real>
+    <Real>-25.985552</Real>
+    <Real>81.880836</Real>
+    <Real>17.157429</Real>
+    <Real>249.790070</Real>
+    <Real>-128.750000</Real>
+    <Real>-13.596586</Real>
+    <Real>-136.434631</Real>
+    <Real>-9.918987</Real>
+    <Real>23.378286</Real>
+    <Real>-19.265118</Real>
+    <Real>-10.866932</Real>
+    <Real>24.255550</Real>
+    <Real>41.385857</Real>
+    <Real>98.681549</Real>
+    <Real>8.745995</Real>
+    <Real>100.261269</Real>
+    <Real>-18.058853</Real>
+    <Real>-60.640335</Real>
+    <Real>28.338928</Real>
+    <Real>-30.296417</Real>
+    <Real>33.387691</Real>
+    <Real>22.664165</Real>
+    <Real>52.251751</Real>
+    <Real>43.201981</Real>
+    <Real>-36.288231</Real>
+    <Real>2.088809</Real>
+    <Real>2.247646</Real>
+    <Real>89.996567</Real>
+    <Real>-48.450352</Real>
+    <Real>32.301540</Real>
+    <Real>-19.578766</Real>
+    <Real>44.683830</Real>
+    <Real>7.834190</Real>
+    <Real>26.251505</Real>
+    <Real>-214.494064</Real>
+    <Real>-16.419247</Real>
+    <Real>-41.080612</Real>
+    <Real>86.050751</Real>
+    <Real>38.528439</Real>
+    <Real>-0.444555</Real>
+    <Real>-4.706242</Real>
+    <Real>81.167137</Real>
+    <Real>-0.500000</Real>
+    <Real>-91.105873</Real>
+    <Real>76.056747</Real>
+    <Real>-119.648262</Real>
+    <Real>-57.960079</Real>
+    <Real>-49.446934</Real>
+    <Real>22.404243</Real>
+    <Real>15.968069</Real>
+    <Real>23.131071</Real>
+    <Real>27.885620</Real>
+    <Real>34.599998</Real>
+    <Real>-33.255379</Real>
+    <Real>22.554321</Real>
+    <Real>-67.141022</Real>
+    <Real>29.568970</Real>
+    <Real>106.682312</Real>
+    <Real>-115.124870</Real>
+    <Real>-34.540485</Real>
+    <Real>-37.402138</Real>
+    <Real>-68.724022</Real>
+    <Real>-27.427742</Real>
+    <Real>45.174870</Real>
+    <Real>24.605305</Real>
+    <Real>159.387177</Real>
+    <Real>-132.007370</Real>
+    <Real>11.601624</Real>
+    <Real>40.139931</Real>
+    <Real>-12.285152</Real>
+    <Real>-64.604774</Real>
+    <Real>0.331856</Real>
+    <Real>-80.423866</Real>
+    <Real>19.365822</Real>
+    <Real>-14.504189</Real>
+    <Real>0.476254</Real>
+    <Real>104.523697</Real>
+    <Real>-7.815739</Real>
+    <Real>-42.637901</Real>
+    <Real>5.069817</Real>
+    <Real>52.750732</Real>
+    <Real>-5.412575</Real>
+    <Real>27.871040</Real>
+    <Real>56.787941</Real>
+    <Real>-3.761728</Real>
+    <Real>-13.266579</Real>
+    <Real>-20.045300</Real>
+    <Real>124.124504</Real>
+    <Real>-129.707565</Real>
+    <Real>-155.606018</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+    <Real>0.000000</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/ManyFFTTest_Complex1DLength48Multi5Test.xml b/src/gromacs/mdlib/tests/refdata/ManyFFTTest_Complex1DLength48Multi5Test.xml
new file mode 100644 (file)
index 0000000..2a55527
--- /dev/null
@@ -0,0 +1,970 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">480</Int>
+    <Real>7.900001</Real>
+    <Real>13.000000</Real>
+    <Real>-19.840729</Real>
+    <Real>41.898109</Real>
+    <Real>-24.565304</Real>
+    <Real>-20.357656</Real>
+    <Real>-32.547234</Real>
+    <Real>-34.018921</Real>
+    <Real>63.185242</Real>
+    <Real>-41.104298</Real>
+    <Real>20.035048</Real>
+    <Real>57.110519</Real>
+    <Real>7.407669</Real>
+    <Real>34.903305</Real>
+    <Real>-44.175232</Real>
+    <Real>-11.989110</Real>
+    <Real>-11.187119</Real>
+    <Real>11.132827</Real>
+    <Real>-62.394630</Real>
+    <Real>45.013367</Real>
+    <Real>6.491300</Real>
+    <Real>-15.830328</Real>
+    <Real>16.941105</Real>
+    <Real>-30.288250</Real>
+    <Real>22.799999</Real>
+    <Real>24.700001</Real>
+    <Real>-1.711021</Real>
+    <Real>58.790867</Real>
+    <Real>-22.688675</Real>
+    <Real>-2.415274</Real>
+    <Real>-19.273237</Real>
+    <Real>74.543587</Real>
+    <Real>3.668257</Real>
+    <Real>-74.027428</Real>
+    <Real>44.298752</Real>
+    <Real>-26.570694</Real>
+    <Real>-55.521675</Real>
+    <Real>55.728992</Real>
+    <Real>44.825375</Real>
+    <Real>54.921761</Real>
+    <Real>-21.685249</Real>
+    <Real>-34.695702</Real>
+    <Real>30.924515</Real>
+    <Real>-42.782597</Real>
+    <Real>69.095482</Real>
+    <Real>-19.699596</Real>
+    <Real>-38.260757</Real>
+    <Real>-34.770390</Real>
+    <Real>7.099998</Real>
+    <Real>4.000002</Real>
+    <Real>-65.291367</Real>
+    <Real>-6.193977</Real>
+    <Real>-15.457134</Real>
+    <Real>79.665207</Real>
+    <Real>21.334753</Real>
+    <Real>17.654539</Real>
+    <Real>13.718842</Real>
+    <Real>64.023773</Real>
+    <Real>80.346069</Real>
+    <Real>57.588760</Real>
+    <Real>-55.807671</Real>
+    <Real>24.296701</Real>
+    <Real>-8.932932</Real>
+    <Real>4.528344</Real>
+    <Real>-82.068253</Real>
+    <Real>-31.072571</Real>
+    <Real>-65.059898</Real>
+    <Real>-1.252863</Real>
+    <Real>-17.068863</Real>
+    <Real>23.522772</Real>
+    <Real>-9.083813</Real>
+    <Real>-9.934292</Real>
+    <Real>-28.600002</Real>
+    <Real>-43.299999</Real>
+    <Real>37.611855</Real>
+    <Real>-47.153194</Real>
+    <Real>23.007011</Real>
+    <Real>65.141792</Real>
+    <Real>22.485727</Real>
+    <Real>17.420799</Real>
+    <Real>-30.412878</Real>
+    <Real>36.767174</Real>
+    <Real>-26.248611</Real>
+    <Real>54.129593</Real>
+    <Real>-37.278320</Real>
+    <Real>-11.728992</Real>
+    <Real>24.647396</Real>
+    <Real>-26.439215</Real>
+    <Real>-16.418846</Real>
+    <Real>-15.823771</Real>
+    <Real>-0.269978</Real>
+    <Real>50.622089</Real>
+    <Real>16.786173</Real>
+    <Real>-62.026920</Real>
+    <Real>59.238853</Real>
+    <Real>-25.228840</Real>
+    <Real>-17.599998</Real>
+    <Real>12.299999</Real>
+    <Real>23.483376</Real>
+    <Real>27.503376</Real>
+    <Real>9.455709</Real>
+    <Real>-86.807007</Real>
+    <Real>99.022087</Real>
+    <Real>-55.231304</Real>
+    <Real>9.774990</Real>
+    <Real>-16.997046</Real>
+    <Real>4.481169</Real>
+    <Real>23.203314</Real>
+    <Real>57.802937</Real>
+    <Real>6.473506</Real>
+    <Real>127.057861</Real>
+    <Real>14.351001</Real>
+    <Real>-5.098262</Real>
+    <Real>50.191982</Real>
+    <Real>37.445351</Real>
+    <Real>73.990936</Real>
+    <Real>-53.878181</Real>
+    <Real>-48.824444</Real>
+    <Real>23.524158</Real>
+    <Real>-6.993496</Real>
+    <Real>-29.599998</Real>
+    <Real>46.699997</Real>
+    <Real>27.743622</Real>
+    <Real>-67.275681</Real>
+    <Real>-0.295469</Real>
+    <Real>-2.720011</Real>
+    <Real>20.886925</Real>
+    <Real>-9.871914</Real>
+    <Real>-15.724168</Real>
+    <Real>-22.761473</Real>
+    <Real>-18.725651</Real>
+    <Real>22.186394</Real>
+    <Real>-18.616863</Real>
+    <Real>29.126194</Real>
+    <Real>3.037292</Real>
+    <Real>82.531174</Real>
+    <Real>-57.774990</Real>
+    <Real>26.997044</Real>
+    <Real>56.524269</Real>
+    <Real>28.980755</Real>
+    <Real>-2.392616</Real>
+    <Real>-11.812002</Real>
+    <Real>-86.987686</Real>
+    <Real>-28.372581</Real>
+    <Real>22.599998</Real>
+    <Real>74.899994</Real>
+    <Real>105.029274</Real>
+    <Real>6.173779</Real>
+    <Real>-45.788277</Real>
+    <Real>-62.130539</Real>
+    <Real>79.015083</Real>
+    <Real>40.052837</Real>
+    <Real>37.518070</Real>
+    <Real>-36.526146</Real>
+    <Real>-4.952503</Real>
+    <Real>-31.885462</Real>
+    <Real>61.197056</Real>
+    <Real>-24.073502</Real>
+    <Real>-68.571899</Real>
+    <Real>-27.197498</Real>
+    <Real>-17.975834</Real>
+    <Real>-17.738522</Real>
+    <Real>10.819825</Real>
+    <Real>-34.903221</Real>
+    <Real>1.610754</Real>
+    <Real>32.561985</Real>
+    <Real>-2.659802</Real>
+    <Real>12.390499</Real>
+    <Real>-21.000000</Real>
+    <Real>-5.500000</Real>
+    <Real>-5.077576</Real>
+    <Real>65.278015</Real>
+    <Real>-34.898102</Real>
+    <Real>38.249107</Real>
+    <Real>46.275902</Real>
+    <Real>-57.349606</Real>
+    <Real>26.598267</Real>
+    <Real>-16.491980</Real>
+    <Real>40.818279</Real>
+    <Real>52.816261</Real>
+    <Real>48.416859</Real>
+    <Real>-7.926196</Real>
+    <Real>-59.749161</Real>
+    <Real>-6.095455</Real>
+    <Real>-21.718067</Real>
+    <Real>54.926144</Real>
+    <Real>-29.189453</Real>
+    <Real>-23.268475</Real>
+    <Real>74.586189</Real>
+    <Real>-0.117094</Real>
+    <Real>33.949242</Real>
+    <Real>-50.613640</Real>
+    <Real>70.599998</Real>
+    <Real>6.500000</Real>
+    <Real>-5.640991</Real>
+    <Real>54.009506</Real>
+    <Real>-56.553623</Real>
+    <Real>57.915165</Real>
+    <Real>-5.043620</Real>
+    <Real>-36.986782</Real>
+    <Real>21.497889</Real>
+    <Real>19.051863</Real>
+    <Real>-51.150513</Real>
+    <Real>-53.719872</Real>
+    <Real>1.373863</Real>
+    <Real>59.871635</Real>
+    <Real>40.059048</Real>
+    <Real>-5.360992</Real>
+    <Real>48.310371</Real>
+    <Real>18.790895</Real>
+    <Real>-60.100784</Real>
+    <Real>-55.575638</Real>
+    <Real>-31.964201</Real>
+    <Real>-0.951363</Real>
+    <Real>-11.021180</Real>
+    <Real>-80.609810</Real>
+    <Real>6.900000</Real>
+    <Real>-11.999998</Real>
+    <Real>-8.083603</Real>
+    <Real>1.913918</Real>
+    <Real>21.825718</Real>
+    <Real>20.858147</Real>
+    <Real>-28.258728</Real>
+    <Real>53.147301</Real>
+    <Real>-41.043320</Real>
+    <Real>34.425762</Real>
+    <Real>-49.701187</Real>
+    <Real>3.284283</Real>
+    <Real>-110.576721</Real>
+    <Real>34.240768</Real>
+    <Real>-9.134613</Real>
+    <Real>-29.451496</Real>
+    <Real>42.802116</Real>
+    <Real>-11.951851</Real>
+    <Real>-38.917740</Real>
+    <Real>91.783905</Real>
+    <Real>10.734100</Real>
+    <Real>4.390087</Real>
+    <Real>-0.751099</Real>
+    <Real>-27.690454</Real>
+    <Real>71.599998</Real>
+    <Real>-30.699997</Real>
+    <Real>40.567810</Real>
+    <Real>27.255556</Real>
+    <Real>-3.559704</Real>
+    <Real>8.726742</Real>
+    <Real>-15.693637</Real>
+    <Real>5.741287</Real>
+    <Real>13.715303</Real>
+    <Real>-64.107742</Real>
+    <Real>24.370581</Real>
+    <Real>-58.733604</Real>
+    <Real>-43.173866</Real>
+    <Real>-16.071634</Real>
+    <Real>-1.230320</Real>
+    <Real>38.644753</Real>
+    <Real>76.043312</Real>
+    <Real>-4.025770</Real>
+    <Real>-1.849676</Real>
+    <Real>16.882624</Real>
+    <Real>7.877527</Real>
+    <Real>-35.290543</Real>
+    <Real>6.115058</Real>
+    <Real>2.492218</Real>
+    <Real>-30.699999</Real>
+    <Real>27.400000</Real>
+    <Real>-11.917074</Real>
+    <Real>-60.804131</Real>
+    <Real>-22.217510</Real>
+    <Real>27.167625</Real>
+    <Real>2.995984</Real>
+    <Real>36.098183</Real>
+    <Real>-31.710375</Real>
+    <Real>12.209099</Real>
+    <Real>-0.045023</Real>
+    <Real>-8.405651</Real>
+    <Real>45.976719</Real>
+    <Real>-19.640764</Real>
+    <Real>-22.731552</Real>
+    <Real>6.850796</Real>
+    <Real>-116.015297</Real>
+    <Real>14.007748</Real>
+    <Real>14.868204</Real>
+    <Real>31.309111</Real>
+    <Real>29.057690</Real>
+    <Real>5.184141</Real>
+    <Real>-52.505333</Real>
+    <Real>16.724977</Real>
+    <Real>0.700001</Real>
+    <Real>1.100000</Real>
+    <Real>10.409176</Real>
+    <Real>-9.451668</Real>
+    <Real>6.795223</Real>
+    <Real>25.867891</Real>
+    <Real>-37.561844</Real>
+    <Real>-52.549122</Real>
+    <Real>-5.862183</Real>
+    <Real>-21.258329</Real>
+    <Real>-59.379883</Real>
+    <Real>16.727591</Real>
+    <Real>31.683558</Real>
+    <Real>14.676237</Real>
+    <Real>-19.398823</Real>
+    <Real>45.590294</Real>
+    <Real>-42.889160</Real>
+    <Real>-19.074287</Real>
+    <Real>31.889341</Real>
+    <Real>-16.860466</Real>
+    <Real>51.008984</Real>
+    <Real>-16.675621</Real>
+    <Real>-49.870319</Real>
+    <Real>-24.250351</Real>
+    <Real>12.300000</Real>
+    <Real>38.500000</Real>
+    <Real>5.650898</Real>
+    <Real>-37.513645</Real>
+    <Real>-32.929787</Real>
+    <Real>13.833772</Real>
+    <Real>-39.429253</Real>
+    <Real>-48.152161</Real>
+    <Real>-12.676210</Real>
+    <Real>-22.833265</Real>
+    <Real>61.672043</Real>
+    <Real>33.381172</Real>
+    <Real>-81.654121</Real>
+    <Real>-1.392391</Real>
+    <Real>19.786823</Real>
+    <Real>-23.892120</Real>
+    <Real>6.262177</Real>
+    <Real>1.258331</Real>
+    <Real>40.394455</Real>
+    <Real>-93.212700</Real>
+    <Real>-35.388603</Real>
+    <Real>45.461353</Real>
+    <Real>21.176716</Real>
+    <Real>-7.486813</Real>
+    <Real>-84.500000</Real>
+    <Real>59.900002</Real>
+    <Real>6.804608</Real>
+    <Real>-49.878609</Real>
+    <Real>-13.563549</Real>
+    <Real>45.127747</Real>
+    <Real>-44.350143</Real>
+    <Real>42.638988</Real>
+    <Real>-70.491791</Real>
+    <Real>38.625244</Real>
+    <Real>-26.571037</Real>
+    <Real>37.151154</Real>
+    <Real>3.116446</Real>
+    <Real>35.323753</Real>
+    <Real>16.342892</Real>
+    <Real>53.511566</Real>
+    <Real>42.576210</Real>
+    <Real>-31.666725</Real>
+    <Real>18.324160</Real>
+    <Real>25.358650</Real>
+    <Real>-8.240658</Real>
+    <Real>57.879982</Real>
+    <Real>26.383915</Real>
+    <Real>6.106036</Real>
+    <Real>-16.899998</Real>
+    <Real>10.100003</Real>
+    <Real>28.527618</Real>
+    <Real>-11.911694</Real>
+    <Real>-23.464443</Real>
+    <Real>-30.117348</Real>
+    <Real>-8.258768</Real>
+    <Real>-79.137703</Real>
+    <Real>-4.610842</Real>
+    <Real>41.374283</Real>
+    <Real>54.886574</Real>
+    <Real>-4.104303</Real>
+    <Real>-19.145880</Real>
+    <Real>16.992390</Real>
+    <Real>-50.871395</Real>
+    <Real>-9.820244</Real>
+    <Real>-30.308212</Real>
+    <Real>-19.225243</Real>
+    <Real>34.992050</Real>
+    <Real>-25.285484</Real>
+    <Real>-5.417167</Real>
+    <Real>18.622219</Real>
+    <Real>56.850193</Real>
+    <Real>98.641632</Real>
+    <Real>32.799999</Real>
+    <Real>22.900002</Real>
+    <Real>-36.637154</Real>
+    <Real>-95.439224</Real>
+    <Real>-12.445626</Real>
+    <Real>10.499486</Real>
+    <Real>32.523441</Real>
+    <Real>56.389320</Real>
+    <Real>44.935505</Real>
+    <Real>18.453520</Real>
+    <Real>-12.168655</Real>
+    <Real>31.994324</Real>
+    <Real>-8.935534</Real>
+    <Real>-18.638262</Real>
+    <Real>-47.874207</Real>
+    <Real>78.397827</Real>
+    <Real>34.483131</Real>
+    <Real>-37.920769</Real>
+    <Real>60.171642</Real>
+    <Real>31.317711</Real>
+    <Real>26.045294</Real>
+    <Real>-99.866241</Real>
+    <Real>-28.590696</Real>
+    <Real>1.277391</Real>
+    <Real>16.399998</Real>
+    <Real>-2.300000</Real>
+    <Real>-29.362377</Real>
+    <Real>-27.637789</Real>
+    <Real>28.963459</Real>
+    <Real>35.775940</Real>
+    <Real>52.711105</Real>
+    <Real>52.667961</Real>
+    <Real>23.882372</Real>
+    <Real>-23.733582</Real>
+    <Real>39.176613</Real>
+    <Real>74.733444</Real>
+    <Real>-11.778475</Real>
+    <Real>20.086498</Real>
+    <Real>22.730906</Real>
+    <Real>-52.362259</Real>
+    <Real>-30.235498</Real>
+    <Real>-17.053522</Real>
+    <Real>-4.145446</Real>
+    <Real>59.738605</Real>
+    <Real>11.961510</Real>
+    <Real>19.118164</Real>
+    <Real>34.362946</Real>
+    <Real>33.622833</Real>
+    <Real>32.999996</Real>
+    <Real>-37.300003</Real>
+    <Real>35.567024</Real>
+    <Real>-73.160904</Real>
+    <Real>3.341262</Real>
+    <Real>7.223838</Real>
+    <Real>-16.182022</Real>
+    <Real>51.024605</Real>
+    <Real>46.022175</Real>
+    <Real>-28.781721</Real>
+    <Real>75.287148</Real>
+    <Real>83.317047</Real>
+    <Real>-1.864465</Real>
+    <Real>-62.761734</Real>
+    <Real>65.746559</Real>
+    <Real>-21.691973</Real>
+    <Real>66.317619</Real>
+    <Real>56.633575</Real>
+    <Real>-46.318951</Real>
+    <Real>30.588387</Real>
+    <Real>-64.940926</Real>
+    <Real>54.542923</Real>
+    <Real>8.114267</Real>
+    <Real>6.770220</Real>
+    <Real>11.400004</Real>
+    <Real>-11.300001</Real>
+    <Real>-77.336426</Real>
+    <Real>-1.655081</Real>
+    <Real>18.889095</Real>
+    <Real>-47.156700</Real>
+    <Real>-36.652527</Real>
+    <Real>-15.681877</Real>
+    <Real>-29.083132</Real>
+    <Real>-12.979233</Real>
+    <Real>17.873833</Real>
+    <Real>9.048199</Real>
+    <Real>-63.821533</Real>
+    <Real>-5.086503</Real>
+    <Real>-74.234795</Real>
+    <Real>18.317682</Real>
+    <Real>6.877821</Real>
+    <Real>20.581724</Real>
+    <Real>11.492754</Real>
+    <Real>-38.844700</Real>
+    <Real>-2.214073</Real>
+    <Real>21.462597</Real>
+    <Real>-24.654984</Real>
+    <Real>2.468283</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">480</Int>
+    <Real>7.900001</Real>
+    <Real>13.000005</Real>
+    <Real>59.238850</Real>
+    <Real>-25.228844</Real>
+    <Real>16.786175</Real>
+    <Real>-62.026920</Real>
+    <Real>-0.269983</Real>
+    <Real>50.622086</Real>
+    <Real>-16.418842</Real>
+    <Real>-15.823769</Real>
+    <Real>24.647398</Real>
+    <Real>-26.439215</Real>
+    <Real>-37.278316</Real>
+    <Real>-11.728994</Real>
+    <Real>-26.248613</Real>
+    <Real>54.129597</Real>
+    <Real>-30.412878</Real>
+    <Real>36.767174</Real>
+    <Real>22.485725</Real>
+    <Real>17.420794</Real>
+    <Real>23.007013</Real>
+    <Real>65.141792</Real>
+    <Real>37.611855</Real>
+    <Real>-47.153191</Real>
+    <Real>-28.599998</Real>
+    <Real>-43.299999</Real>
+    <Real>-9.083816</Real>
+    <Real>-9.934301</Real>
+    <Real>-17.068863</Real>
+    <Real>23.522770</Real>
+    <Real>-65.059898</Real>
+    <Real>-1.252863</Real>
+    <Real>-82.068253</Real>
+    <Real>-31.072569</Real>
+    <Real>-8.932930</Real>
+    <Real>4.528340</Real>
+    <Real>-55.807674</Real>
+    <Real>24.296703</Real>
+    <Real>80.346069</Real>
+    <Real>57.588764</Real>
+    <Real>13.718843</Real>
+    <Real>64.023766</Real>
+    <Real>21.334747</Real>
+    <Real>17.654541</Real>
+    <Real>-15.457129</Real>
+    <Real>79.665199</Real>
+    <Real>-65.291367</Real>
+    <Real>-6.193977</Real>
+    <Real>7.099998</Real>
+    <Real>4.000001</Real>
+    <Real>-38.260754</Real>
+    <Real>-34.770393</Real>
+    <Real>69.095474</Real>
+    <Real>-19.699596</Real>
+    <Real>30.924509</Real>
+    <Real>-42.782593</Real>
+    <Real>-21.685249</Real>
+    <Real>-34.695705</Real>
+    <Real>44.825378</Real>
+    <Real>54.921761</Real>
+    <Real>-55.521679</Real>
+    <Real>55.728992</Real>
+    <Real>44.298752</Real>
+    <Real>-26.570690</Real>
+    <Real>3.668253</Real>
+    <Real>-74.027428</Real>
+    <Real>-19.273239</Real>
+    <Real>74.543579</Real>
+    <Real>-22.688671</Real>
+    <Real>-2.415276</Real>
+    <Real>-1.711029</Real>
+    <Real>58.790871</Real>
+    <Real>22.799999</Real>
+    <Real>24.700001</Real>
+    <Real>16.941109</Real>
+    <Real>-30.288248</Real>
+    <Real>6.491296</Real>
+    <Real>-15.830326</Real>
+    <Real>-62.394630</Real>
+    <Real>45.013367</Real>
+    <Real>-11.187119</Real>
+    <Real>11.132822</Real>
+    <Real>-44.175224</Real>
+    <Real>-11.989113</Real>
+    <Real>7.407673</Real>
+    <Real>34.903297</Real>
+    <Real>20.035051</Real>
+    <Real>57.110523</Real>
+    <Real>63.185242</Real>
+    <Real>-41.104286</Real>
+    <Real>-32.547234</Real>
+    <Real>-34.018921</Real>
+    <Real>-24.565306</Real>
+    <Real>-20.357656</Real>
+    <Real>-19.840729</Real>
+    <Real>41.898109</Real>
+    <Real>-17.599998</Real>
+    <Real>12.299999</Real>
+    <Real>33.949249</Real>
+    <Real>-50.613640</Real>
+    <Real>74.586197</Real>
+    <Real>-0.117098</Real>
+    <Real>-29.189453</Real>
+    <Real>-23.268478</Real>
+    <Real>-21.718071</Real>
+    <Real>54.926140</Real>
+    <Real>-59.749161</Real>
+    <Real>-6.095451</Real>
+    <Real>48.416862</Real>
+    <Real>-7.926194</Real>
+    <Real>40.818287</Real>
+    <Real>52.816261</Real>
+    <Real>26.598263</Real>
+    <Real>-16.491978</Real>
+    <Real>46.275898</Real>
+    <Real>-57.349602</Real>
+    <Real>-34.898106</Real>
+    <Real>38.249115</Real>
+    <Real>-5.077572</Real>
+    <Real>65.278023</Real>
+    <Real>-21.000000</Real>
+    <Real>-5.500004</Real>
+    <Real>-2.659804</Real>
+    <Real>12.390493</Real>
+    <Real>1.610752</Real>
+    <Real>32.561989</Real>
+    <Real>10.819827</Real>
+    <Real>-34.903217</Real>
+    <Real>-17.975828</Real>
+    <Real>-17.738525</Real>
+    <Real>-68.571899</Real>
+    <Real>-27.197498</Real>
+    <Real>61.197060</Real>
+    <Real>-24.073502</Real>
+    <Real>-4.952507</Real>
+    <Real>-31.885460</Real>
+    <Real>37.518070</Real>
+    <Real>-36.526138</Real>
+    <Real>79.015076</Real>
+    <Real>40.052837</Real>
+    <Real>-45.788277</Real>
+    <Real>-62.130539</Real>
+    <Real>105.029282</Real>
+    <Real>6.173782</Real>
+    <Real>22.599998</Real>
+    <Real>74.899994</Real>
+    <Real>-86.987686</Real>
+    <Real>-28.372583</Real>
+    <Real>-2.392620</Real>
+    <Real>-11.811998</Real>
+    <Real>56.524269</Real>
+    <Real>28.980759</Real>
+    <Real>-57.774994</Real>
+    <Real>26.997038</Real>
+    <Real>3.037294</Real>
+    <Real>82.531151</Real>
+    <Real>-18.616859</Real>
+    <Real>29.126194</Real>
+    <Real>-18.725657</Real>
+    <Real>22.186398</Real>
+    <Real>-15.724168</Real>
+    <Real>-22.761471</Real>
+    <Real>20.886929</Real>
+    <Real>-9.871922</Real>
+    <Real>-0.295467</Real>
+    <Real>-2.720015</Real>
+    <Real>27.743622</Real>
+    <Real>-67.275681</Real>
+    <Real>-29.599998</Real>
+    <Real>46.700001</Real>
+    <Real>23.524151</Real>
+    <Real>-6.993494</Real>
+    <Real>-53.878185</Real>
+    <Real>-48.824448</Real>
+    <Real>37.445347</Real>
+    <Real>73.990936</Real>
+    <Real>-5.098260</Real>
+    <Real>50.191978</Real>
+    <Real>127.057846</Real>
+    <Real>14.351010</Real>
+    <Real>57.802940</Real>
+    <Real>6.473506</Real>
+    <Real>4.481174</Real>
+    <Real>23.203318</Real>
+    <Real>9.774994</Real>
+    <Real>-16.997047</Real>
+    <Real>99.022095</Real>
+    <Real>-55.231308</Real>
+    <Real>9.455711</Real>
+    <Real>-86.807007</Real>
+    <Real>23.483379</Real>
+    <Real>27.503366</Real>
+    <Real>70.599998</Real>
+    <Real>6.500001</Real>
+    <Real>-52.505333</Real>
+    <Real>16.724979</Real>
+    <Real>29.057686</Real>
+    <Real>5.184141</Real>
+    <Real>14.868204</Real>
+    <Real>31.309111</Real>
+    <Real>-116.015297</Real>
+    <Real>14.007746</Real>
+    <Real>-22.731550</Real>
+    <Real>6.850798</Real>
+    <Real>45.976715</Real>
+    <Real>-19.640772</Real>
+    <Real>-0.045027</Real>
+    <Real>-8.405647</Real>
+    <Real>-31.710373</Real>
+    <Real>12.209101</Real>
+    <Real>2.995987</Real>
+    <Real>36.098190</Real>
+    <Real>-22.217510</Real>
+    <Real>27.167618</Real>
+    <Real>-11.917075</Real>
+    <Real>-60.804127</Real>
+    <Real>-30.700003</Real>
+    <Real>27.399998</Real>
+    <Real>6.115059</Real>
+    <Real>2.492218</Real>
+    <Real>7.877531</Real>
+    <Real>-35.290543</Real>
+    <Real>-1.849676</Real>
+    <Real>16.882618</Real>
+    <Real>76.043312</Real>
+    <Real>-4.025767</Real>
+    <Real>-1.230320</Real>
+    <Real>38.644749</Real>
+    <Real>-43.173866</Real>
+    <Real>-16.071636</Real>
+    <Real>24.370581</Real>
+    <Real>-58.733608</Real>
+    <Real>13.715302</Real>
+    <Real>-64.107742</Real>
+    <Real>-15.693638</Real>
+    <Real>5.741283</Real>
+    <Real>-3.559703</Real>
+    <Real>8.726740</Real>
+    <Real>40.567806</Real>
+    <Real>27.255558</Real>
+    <Real>71.599998</Real>
+    <Real>-30.699997</Real>
+    <Real>-0.751097</Real>
+    <Real>-27.690449</Real>
+    <Real>10.734103</Real>
+    <Real>4.390095</Real>
+    <Real>-38.917740</Real>
+    <Real>91.783905</Real>
+    <Real>42.802116</Real>
+    <Real>-11.951851</Real>
+    <Real>-9.134615</Real>
+    <Real>-29.451494</Real>
+    <Real>-110.576714</Real>
+    <Real>34.240772</Real>
+    <Real>-49.701187</Real>
+    <Real>3.284275</Real>
+    <Real>-41.043316</Real>
+    <Real>34.425766</Real>
+    <Real>-28.258724</Real>
+    <Real>53.147305</Real>
+    <Real>21.825722</Real>
+    <Real>20.858141</Real>
+    <Real>-8.083599</Real>
+    <Real>1.913917</Real>
+    <Real>6.900003</Real>
+    <Real>-12.000001</Real>
+    <Real>-11.021185</Real>
+    <Real>-80.609810</Real>
+    <Real>-31.964205</Real>
+    <Real>-0.951370</Real>
+    <Real>-60.100784</Real>
+    <Real>-55.575642</Real>
+    <Real>48.310371</Real>
+    <Real>18.790899</Real>
+    <Real>40.059048</Real>
+    <Real>-5.360992</Real>
+    <Real>1.373867</Real>
+    <Real>59.871635</Real>
+    <Real>-51.150513</Real>
+    <Real>-53.719872</Real>
+    <Real>21.497883</Real>
+    <Real>19.051855</Real>
+    <Real>-5.043623</Real>
+    <Real>-36.986786</Real>
+    <Real>-56.553623</Real>
+    <Real>57.915161</Real>
+    <Real>-5.640985</Real>
+    <Real>54.009502</Real>
+    <Real>0.699997</Real>
+    <Real>1.100000</Real>
+    <Real>56.850197</Real>
+    <Real>98.641624</Real>
+    <Real>-5.417166</Real>
+    <Real>18.622219</Real>
+    <Real>34.992050</Real>
+    <Real>-25.285488</Real>
+    <Real>-30.308207</Real>
+    <Real>-19.225243</Real>
+    <Real>-50.871395</Real>
+    <Real>-9.820251</Real>
+    <Real>-19.145884</Real>
+    <Real>16.992390</Real>
+    <Real>54.886578</Real>
+    <Real>-4.104303</Real>
+    <Real>-4.610838</Real>
+    <Real>41.374290</Real>
+    <Real>-8.258770</Real>
+    <Real>-79.137711</Real>
+    <Real>-23.464443</Real>
+    <Real>-30.117344</Real>
+    <Real>28.527615</Real>
+    <Real>-11.911693</Real>
+    <Real>-16.899996</Real>
+    <Real>10.099998</Real>
+    <Real>26.383909</Real>
+    <Real>6.106035</Real>
+    <Real>-8.240658</Real>
+    <Real>57.879986</Real>
+    <Real>18.324162</Real>
+    <Real>25.358654</Real>
+    <Real>42.576210</Real>
+    <Real>-31.666727</Real>
+    <Real>16.342892</Real>
+    <Real>53.511566</Real>
+    <Real>3.116447</Real>
+    <Real>35.323757</Real>
+    <Real>-26.571041</Real>
+    <Real>37.151154</Real>
+    <Real>-70.491791</Real>
+    <Real>38.625244</Real>
+    <Real>-44.350143</Real>
+    <Real>42.638985</Real>
+    <Real>-13.563548</Real>
+    <Real>45.127739</Real>
+    <Real>6.804609</Real>
+    <Real>-49.878613</Real>
+    <Real>-84.500000</Real>
+    <Real>59.900002</Real>
+    <Real>21.176722</Real>
+    <Real>-7.486809</Real>
+    <Real>-35.388603</Real>
+    <Real>45.461353</Real>
+    <Real>40.394455</Real>
+    <Real>-93.212692</Real>
+    <Real>6.262178</Real>
+    <Real>1.258330</Real>
+    <Real>19.786823</Real>
+    <Real>-23.892120</Real>
+    <Real>-81.654121</Real>
+    <Real>-1.392384</Real>
+    <Real>61.672047</Real>
+    <Real>33.381172</Real>
+    <Real>-12.676205</Real>
+    <Real>-22.833267</Real>
+    <Real>-39.429253</Real>
+    <Real>-48.152153</Real>
+    <Real>-32.929783</Real>
+    <Real>13.833769</Real>
+    <Real>5.650900</Real>
+    <Real>-37.513645</Real>
+    <Real>12.300001</Real>
+    <Real>38.500004</Real>
+    <Real>-49.870316</Real>
+    <Real>-24.250353</Real>
+    <Real>51.008984</Real>
+    <Real>-16.675617</Real>
+    <Real>31.889336</Real>
+    <Real>-16.860466</Real>
+    <Real>-42.889160</Real>
+    <Real>-19.074286</Real>
+    <Real>-19.398823</Real>
+    <Real>45.590302</Real>
+    <Real>31.683554</Real>
+    <Real>14.676243</Real>
+    <Real>-59.379887</Real>
+    <Real>16.727587</Real>
+    <Real>-5.862177</Real>
+    <Real>-21.258331</Real>
+    <Real>-37.561840</Real>
+    <Real>-52.549118</Real>
+    <Real>6.795226</Real>
+    <Real>25.867889</Real>
+    <Real>10.409176</Real>
+    <Real>-9.451669</Real>
+    <Real>32.800003</Real>
+    <Real>22.899998</Real>
+    <Real>-24.654987</Real>
+    <Real>2.468278</Real>
+    <Real>-2.214071</Real>
+    <Real>21.462595</Real>
+    <Real>11.492753</Real>
+    <Real>-38.844700</Real>
+    <Real>6.877825</Real>
+    <Real>20.581720</Real>
+    <Real>-74.234795</Real>
+    <Real>18.317688</Real>
+    <Real>-63.821529</Real>
+    <Real>-5.086504</Real>
+    <Real>17.873837</Real>
+    <Real>9.048196</Real>
+    <Real>-29.083134</Real>
+    <Real>-12.979234</Real>
+    <Real>-36.652519</Real>
+    <Real>-15.681877</Real>
+    <Real>18.889097</Real>
+    <Real>-47.156700</Real>
+    <Real>-77.336426</Real>
+    <Real>-1.655087</Real>
+    <Real>11.400005</Real>
+    <Real>-11.300001</Real>
+    <Real>8.114265</Real>
+    <Real>6.770218</Real>
+    <Real>-64.940933</Real>
+    <Real>54.542919</Real>
+    <Real>-46.318954</Real>
+    <Real>30.588388</Real>
+    <Real>66.317619</Real>
+    <Real>56.633575</Real>
+    <Real>65.746559</Real>
+    <Real>-21.691967</Real>
+    <Real>-1.864466</Real>
+    <Real>-62.761734</Real>
+    <Real>75.287155</Real>
+    <Real>83.317047</Real>
+    <Real>46.022175</Real>
+    <Real>-28.781723</Real>
+    <Real>-16.182018</Real>
+    <Real>51.024605</Real>
+    <Real>3.341261</Real>
+    <Real>7.223836</Real>
+    <Real>35.567020</Real>
+    <Real>-73.160912</Real>
+    <Real>33.000000</Real>
+    <Real>-37.299999</Real>
+    <Real>34.362949</Real>
+    <Real>33.622833</Real>
+    <Real>11.961512</Real>
+    <Real>19.118162</Real>
+    <Real>-4.145446</Real>
+    <Real>59.738605</Real>
+    <Real>-30.235498</Real>
+    <Real>-17.053518</Real>
+    <Real>22.730911</Real>
+    <Real>-52.362259</Real>
+    <Real>-11.778469</Real>
+    <Real>20.086502</Real>
+    <Real>39.176617</Real>
+    <Real>74.733459</Real>
+    <Real>23.882374</Real>
+    <Real>-23.733582</Real>
+    <Real>52.711102</Real>
+    <Real>52.667961</Real>
+    <Real>28.963461</Real>
+    <Real>35.775940</Real>
+    <Real>-29.362385</Real>
+    <Real>-27.637800</Real>
+    <Real>16.399998</Real>
+    <Real>-2.300000</Real>
+    <Real>-28.590698</Real>
+    <Real>1.277390</Real>
+    <Real>26.045292</Real>
+    <Real>-99.866241</Real>
+    <Real>60.171638</Real>
+    <Real>31.317709</Real>
+    <Real>34.483135</Real>
+    <Real>-37.920761</Real>
+    <Real>-47.874214</Real>
+    <Real>78.397827</Real>
+    <Real>-8.935528</Real>
+    <Real>-18.638266</Real>
+    <Real>-12.168652</Real>
+    <Real>31.994324</Real>
+    <Real>44.935497</Real>
+    <Real>18.453526</Real>
+    <Real>32.523438</Real>
+    <Real>56.389320</Real>
+    <Real>-12.445631</Real>
+    <Real>10.499487</Real>
+    <Real>-36.637157</Real>
+    <Real>-95.439224</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/mdlib/tests/refdata/ManyFFTTest_Real1DLength48Multi5Test.xml b/src/gromacs/mdlib/tests/refdata/ManyFFTTest_Real1DLength48Multi5Test.xml
new file mode 100644 (file)
index 0000000..a5adbcd
--- /dev/null
@@ -0,0 +1,500 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="forward">
+    <Int Name="Length">250</Int>
+    <Real>-33.699997</Real>
+    <Real>0.000000</Real>
+    <Real>0.274726</Real>
+    <Real>11.490288</Real>
+    <Real>-23.944439</Real>
+    <Real>-14.324226</Real>
+    <Real>11.220214</Real>
+    <Real>-17.603733</Real>
+    <Real>-22.712696</Real>
+    <Real>-10.199039</Real>
+    <Real>16.662848</Real>
+    <Real>-36.456947</Real>
+    <Real>2.105738</Real>
+    <Real>3.355278</Real>
+    <Real>11.919188</Real>
+    <Real>-27.647133</Real>
+    <Real>-36.249996</Real>
+    <Real>13.596597</Real>
+    <Real>-5.874275</Real>
+    <Real>21.140366</Real>
+    <Real>-1.915612</Real>
+    <Real>-62.303478</Real>
+    <Real>-19.756493</Real>
+    <Real>-82.418861</Real>
+    <Real>-8.800001</Real>
+    <Real>2.299998</Real>
+    <Real>35.989208</Real>
+    <Real>31.657354</Real>
+    <Real>21.985863</Real>
+    <Real>20.346127</Real>
+    <Real>-39.204102</Real>
+    <Real>-31.092934</Real>
+    <Real>43.550003</Real>
+    <Real>-15.328650</Real>
+    <Real>-26.008438</Real>
+    <Real>0.100724</Real>
+    <Real>-24.905739</Real>
+    <Real>-14.244724</Real>
+    <Real>-11.832822</Real>
+    <Real>-29.075764</Real>
+    <Real>-29.987305</Real>
+    <Real>-7.600963</Real>
+    <Real>7.058169</Real>
+    <Real>-3.837033</Real>
+    <Real>-0.325810</Real>
+    <Real>-13.773827</Real>
+    <Real>30.351780</Real>
+    <Real>15.133183</Real>
+    <Real>6.500000</Real>
+    <Real>0.000000</Real>
+    <Real>73.199997</Real>
+    <Real>0.000000</Real>
+    <Real>-31.888241</Real>
+    <Real>27.255732</Real>
+    <Real>39.549927</Real>
+    <Real>-12.572467</Real>
+    <Real>-13.959675</Real>
+    <Real>5.794450</Real>
+    <Real>39.864990</Real>
+    <Real>18.311918</Real>
+    <Real>25.363422</Real>
+    <Real>34.885674</Real>
+    <Real>-15.583347</Real>
+    <Real>-12.589655</Real>
+    <Real>-2.315469</Real>
+    <Real>-7.309417</Real>
+    <Real>38.300003</Real>
+    <Real>-35.853447</Real>
+    <Real>46.674782</Real>
+    <Real>19.755075</Real>
+    <Real>-28.581150</Real>
+    <Real>18.085630</Real>
+    <Real>-20.226889</Real>
+    <Real>13.045710</Real>
+    <Real>-29.599998</Real>
+    <Real>11.200001</Real>
+    <Real>-46.178131</Real>
+    <Real>10.482910</Real>
+    <Real>37.167439</Real>
+    <Real>4.487038</Real>
+    <Real>-4.494469</Real>
+    <Real>32.518322</Real>
+    <Real>53.100002</Real>
+    <Real>-21.304222</Real>
+    <Real>0.119127</Real>
+    <Real>-8.513706</Real>
+    <Real>-34.816654</Real>
+    <Real>-56.989655</Real>
+    <Real>59.196236</Real>
+    <Real>3.638308</Real>
+    <Real>-0.664989</Real>
+    <Real>-3.511920</Real>
+    <Real>-43.420635</Real>
+    <Real>-22.242306</Real>
+    <Real>58.063782</Real>
+    <Real>-40.373875</Real>
+    <Real>9.529958</Real>
+    <Real>-13.663984</Real>
+    <Real>-2.800007</Real>
+    <Real>0.000000</Real>
+    <Real>-25.800003</Real>
+    <Real>0.000000</Real>
+    <Real>30.620735</Real>
+    <Real>7.396375</Real>
+    <Real>8.059361</Real>
+    <Real>-20.883801</Real>
+    <Real>-54.068989</Real>
+    <Real>24.470276</Real>
+    <Real>0.783528</Real>
+    <Real>-37.351341</Real>
+    <Real>9.460588</Real>
+    <Real>25.710752</Real>
+    <Real>22.723402</Real>
+    <Real>7.040056</Real>
+    <Real>14.760824</Real>
+    <Real>22.899843</Real>
+    <Real>5.799999</Real>
+    <Real>19.225760</Real>
+    <Real>55.286240</Real>
+    <Real>-25.567902</Real>
+    <Real>74.398422</Real>
+    <Real>-0.444236</Real>
+    <Real>-16.508518</Real>
+    <Real>46.331387</Real>
+    <Real>-0.900000</Real>
+    <Real>-99.900002</Real>
+    <Real>-0.022083</Real>
+    <Real>38.910099</Real>
+    <Real>10.516312</Real>
+    <Real>-24.348831</Real>
+    <Real>6.937424</Real>
+    <Real>-39.510750</Real>
+    <Real>-11.100002</Real>
+    <Real>-52.307930</Real>
+    <Real>23.222893</Real>
+    <Real>-34.531773</Real>
+    <Real>16.076597</Real>
+    <Real>18.840055</Real>
+    <Real>30.276199</Real>
+    <Real>-42.934193</Real>
+    <Real>19.316467</Real>
+    <Real>13.051336</Real>
+    <Real>-19.754681</Real>
+    <Real>-17.872574</Real>
+    <Real>26.625908</Real>
+    <Real>50.820797</Real>
+    <Real>28.989357</Real>
+    <Real>24.788422</Real>
+    <Real>-62.000000</Real>
+    <Real>0.000000</Real>
+    <Real>17.600000</Real>
+    <Real>0.000000</Real>
+    <Real>-19.633636</Real>
+    <Real>-27.205151</Real>
+    <Real>52.498268</Real>
+    <Real>7.997252</Real>
+    <Real>43.522041</Real>
+    <Real>46.265923</Real>
+    <Real>-34.353523</Real>
+    <Real>-15.426917</Real>
+    <Real>56.998871</Real>
+    <Real>57.317093</Real>
+    <Real>37.365181</Real>
+    <Real>13.313499</Real>
+    <Real>15.266863</Real>
+    <Real>-8.169815</Real>
+    <Real>-14.750002</Real>
+    <Real>39.577362</Real>
+    <Real>27.590597</Real>
+    <Real>24.056507</Real>
+    <Real>13.222061</Real>
+    <Real>3.756445</Real>
+    <Real>-6.768570</Real>
+    <Real>-19.614826</Real>
+    <Real>-19.600000</Real>
+    <Real>-9.600000</Real>
+    <Real>-7.836515</Real>
+    <Real>51.092518</Real>
+    <Real>-6.095265</Real>
+    <Real>60.064003</Real>
+    <Real>-9.526125</Real>
+    <Real>-7.939743</Real>
+    <Real>11.749998</Real>
+    <Real>-15.501857</Real>
+    <Real>13.555010</Real>
+    <Real>2.116264</Real>
+    <Real>16.434822</Real>
+    <Real>-38.486500</Real>
+    <Real>35.901558</Real>
+    <Real>-34.895287</Real>
+    <Real>1.153520</Real>
+    <Real>46.926914</Real>
+    <Real>-18.386509</Real>
+    <Real>-12.530333</Real>
+    <Real>-45.025063</Real>
+    <Real>12.689692</Real>
+    <Real>54.116432</Real>
+    <Real>-0.799352</Real>
+    <Real>0.400003</Real>
+    <Real>0.000000</Real>
+    <Real>38.400005</Real>
+    <Real>0.000000</Real>
+    <Real>-26.075851</Real>
+    <Real>31.493557</Real>
+    <Real>44.090820</Real>
+    <Real>-1.241497</Real>
+    <Real>-39.886452</Real>
+    <Real>-53.788189</Real>
+    <Real>-28.832941</Real>
+    <Real>-3.125758</Real>
+    <Real>-25.548538</Real>
+    <Real>-8.556383</Real>
+    <Real>11.032946</Real>
+    <Real>-5.510407</Real>
+    <Real>-4.710975</Real>
+    <Real>14.682280</Real>
+    <Real>-24.300001</Real>
+    <Real>29.271656</Real>
+    <Real>55.050400</Real>
+    <Real>-8.804608</Real>
+    <Real>14.922699</Real>
+    <Real>-22.552944</Real>
+    <Real>8.900249</Real>
+    <Real>5.128267</Real>
+    <Real>19.100000</Real>
+    <Real>8.500000</Real>
+    <Real>23.335461</Real>
+    <Real>29.027258</Real>
+    <Real>-28.170006</Real>
+    <Real>-14.789731</Real>
+    <Real>30.788498</Real>
+    <Real>16.202408</Real>
+    <Real>-6.899998</Real>
+    <Real>-19.918583</Real>
+    <Real>1.853478</Real>
+    <Real>-20.341354</Real>
+    <Real>-13.432947</Real>
+    <Real>-6.510408</Real>
+    <Real>22.781162</Real>
+    <Real>-45.460541</Real>
+    <Real>8.232946</Real>
+    <Real>35.325764</Real>
+    <Real>26.447556</Real>
+    <Real>38.018833</Real>
+    <Real>-23.043518</Real>
+    <Real>33.195293</Real>
+    <Real>-6.934989</Real>
+    <Real>-19.926926</Real>
+    <Real>28.200001</Real>
+    <Real>0.000000</Real>
+  </Sequence>
+  <Sequence Name="backward">
+    <Int Name="Length">240</Int>
+    <Real>-27.599998</Real>
+    <Real>20.628492</Real>
+    <Real>52.696358</Real>
+    <Real>38.205597</Real>
+    <Real>-57.923843</Real>
+    <Real>57.430008</Real>
+    <Real>-0.337553</Real>
+    <Real>30.006233</Real>
+    <Real>-64.877945</Real>
+    <Real>48.782944</Real>
+    <Real>-30.213503</Real>
+    <Real>-21.926613</Real>
+    <Real>-11.800002</Real>
+    <Real>26.056593</Real>
+    <Real>-1.168425</Real>
+    <Real>-79.848572</Real>
+    <Real>-63.074848</Real>
+    <Real>42.810463</Real>
+    <Real>-18.494316</Real>
+    <Real>123.010086</Real>
+    <Real>-14.276164</Real>
+    <Real>23.808689</Real>
+    <Real>-46.061779</Real>
+    <Real>-136.650513</Real>
+    <Real>-18.000004</Real>
+    <Real>-85.551407</Real>
+    <Real>77.727203</Real>
+    <Real>7.309956</Real>
+    <Real>53.616661</Real>
+    <Real>79.408012</Real>
+    <Real>-72.462440</Real>
+    <Real>-36.685741</Real>
+    <Real>76.874847</Real>
+    <Real>16.455240</Real>
+    <Real>-27.810062</Real>
+    <Real>19.541416</Real>
+    <Real>-34.600002</Real>
+    <Real>-4.185959</Real>
+    <Real>39.073551</Real>
+    <Real>-48.866982</Real>
+    <Real>-41.322056</Real>
+    <Real>-39.796204</Real>
+    <Real>36.094322</Real>
+    <Real>-35.693699</Real>
+    <Real>8.583339</Real>
+    <Real>-29.846876</Real>
+    <Real>7.756655</Real>
+    <Real>-4.801170</Real>
+    <Real>6.500000</Real>
+    <Real>0.000000</Real>
+    <Real>66.500000</Real>
+    <Real>-120.643074</Real>
+    <Real>-18.188969</Real>
+    <Real>7.018257</Real>
+    <Real>37.779724</Real>
+    <Real>20.971104</Real>
+    <Real>-65.201927</Real>
+    <Real>-6.003139</Real>
+    <Real>68.382172</Real>
+    <Real>-46.773087</Real>
+    <Real>90.626686</Real>
+    <Real>68.346359</Real>
+    <Real>-89.899994</Real>
+    <Real>17.514734</Real>
+    <Real>-17.660339</Real>
+    <Real>26.081476</Real>
+    <Real>46.103985</Real>
+    <Real>-55.631824</Real>
+    <Real>105.558708</Real>
+    <Real>-36.437534</Real>
+    <Real>-52.979729</Real>
+    <Real>16.131865</Real>
+    <Real>-41.504707</Real>
+    <Real>11.796515</Real>
+    <Real>-63.100006</Real>
+    <Real>17.766184</Real>
+    <Real>-99.105354</Real>
+    <Real>15.754322</Real>
+    <Real>62.352314</Real>
+    <Real>24.912832</Real>
+    <Real>-28.998064</Real>
+    <Real>81.255798</Real>
+    <Real>128.896011</Real>
+    <Real>40.229939</Real>
+    <Real>5.467651</Real>
+    <Real>77.882507</Real>
+    <Real>-18.700003</Real>
+    <Real>-55.119865</Real>
+    <Real>70.692627</Real>
+    <Real>41.945934</Real>
+    <Real>2.217834</Real>
+    <Real>7.829916</Real>
+    <Real>-57.358711</Real>
+    <Real>-37.153572</Real>
+    <Real>149.647675</Real>
+    <Real>-33.988724</Real>
+    <Real>-34.327591</Real>
+    <Real>9.913057</Real>
+    <Real>-2.800007</Real>
+    <Real>0.000000</Real>
+    <Real>-93.399994</Real>
+    <Real>1.071837</Real>
+    <Real>86.132477</Real>
+    <Real>6.994253</Real>
+    <Real>53.196808</Real>
+    <Real>-75.067017</Real>
+    <Real>-86.459702</Real>
+    <Real>56.988274</Real>
+    <Real>-15.810890</Real>
+    <Real>-62.540588</Real>
+    <Real>7.800777</Real>
+    <Real>44.066742</Real>
+    <Real>56.200001</Real>
+    <Real>-4.415674</Real>
+    <Real>18.589247</Real>
+    <Real>50.472237</Real>
+    <Real>-12.805253</Real>
+    <Real>99.890114</Real>
+    <Real>76.387627</Real>
+    <Real>4.663181</Real>
+    <Real>134.603195</Real>
+    <Real>-16.512314</Real>
+    <Real>-27.349749</Real>
+    <Real>197.244995</Real>
+    <Real>-7.400008</Real>
+    <Real>-116.893608</Real>
+    <Real>-16.911461</Real>
+    <Real>101.801704</Real>
+    <Real>24.026276</Real>
+    <Real>50.513271</Real>
+    <Real>36.859703</Real>
+    <Real>9.525414</Real>
+    <Real>-8.994742</Real>
+    <Real>-59.289680</Real>
+    <Real>46.178200</Real>
+    <Real>-89.283279</Real>
+    <Real>10.200001</Real>
+    <Real>3.906686</Real>
+    <Real>60.472794</Real>
+    <Real>-100.068199</Real>
+    <Real>44.810886</Real>
+    <Real>-4.605612</Real>
+    <Real>-72.387634</Real>
+    <Real>-70.807091</Real>
+    <Real>4.973724</Real>
+    <Real>51.942574</Real>
+    <Real>21.887712</Real>
+    <Real>54.801765</Real>
+    <Real>-62.000000</Real>
+    <Real>0.000000</Real>
+    <Real>1.400000</Real>
+    <Real>-10.530302</Real>
+    <Real>-19.508440</Real>
+    <Real>84.457108</Real>
+    <Real>36.096153</Real>
+    <Real>-61.572853</Real>
+    <Real>63.394531</Real>
+    <Real>-9.368839</Real>
+    <Real>-40.273720</Real>
+    <Real>-70.220810</Real>
+    <Real>106.932060</Real>
+    <Real>40.722809</Real>
+    <Real>34.199993</Real>
+    <Real>27.650688</Real>
+    <Real>9.894812</Real>
+    <Real>-48.051369</Real>
+    <Real>-30.511921</Real>
+    <Real>54.555645</Real>
+    <Real>41.923462</Real>
+    <Real>59.029732</Real>
+    <Real>25.703846</Real>
+    <Real>51.130962</Real>
+    <Real>-26.037617</Real>
+    <Real>-8.815853</Real>
+    <Real>-55.800003</Real>
+    <Real>-69.906105</Real>
+    <Real>-36.372559</Real>
+    <Real>26.167698</Real>
+    <Real>-44.650253</Real>
+    <Real>145.903442</Real>
+    <Real>-38.994530</Real>
+    <Real>62.897514</Real>
+    <Real>-8.688079</Real>
+    <Real>44.136967</Real>
+    <Real>14.548942</Real>
+    <Real>97.268608</Real>
+    <Real>40.200001</Real>
+    <Real>22.443699</Real>
+    <Real>45.668781</Real>
+    <Real>-100.973434</Real>
+    <Real>-59.326286</Real>
+    <Real>131.455780</Real>
+    <Real>-46.323463</Real>
+    <Real>-8.049164</Real>
+    <Real>-54.349735</Real>
+    <Real>-116.247108</Real>
+    <Real>55.274025</Real>
+    <Real>54.315178</Real>
+    <Real>0.400003</Real>
+    <Real>0.000000</Real>
+    <Real>64.199997</Real>
+    <Real>-25.774799</Real>
+    <Real>-26.441555</Real>
+    <Real>110.248741</Real>
+    <Real>66.887939</Real>
+    <Real>-23.155605</Real>
+    <Real>-55.792805</Real>
+    <Real>-45.546043</Real>
+    <Real>-13.646921</Real>
+    <Real>-30.857866</Real>
+    <Real>-77.443138</Real>
+    <Real>29.555588</Real>
+    <Real>3.999992</Real>
+    <Real>-37.642944</Real>
+    <Real>-13.910452</Real>
+    <Real>-10.628845</Real>
+    <Real>-43.992306</Real>
+    <Real>74.685196</Real>
+    <Real>108.684982</Real>
+    <Real>29.947460</Real>
+    <Real>16.312054</Real>
+    <Real>-43.149044</Real>
+    <Real>19.982187</Real>
+    <Real>-16.450699</Real>
+    <Real>35.799999</Real>
+    <Real>-18.109865</Real>
+    <Real>39.689228</Real>
+    <Real>67.160843</Real>
+    <Real>-47.606659</Real>
+    <Real>-15.805142</Real>
+    <Real>58.192802</Real>
+    <Real>40.232021</Real>
+    <Real>-23.207691</Real>
+    <Real>5.447105</Real>
+    <Real>3.395466</Real>
+    <Real>-19.537388</Real>
+    <Real>-13.599998</Real>
+    <Real>-35.390835</Real>
+    <Real>67.108391</Real>
+    <Real>-108.380730</Real>
+  </Sequence>
+</ReferenceData>