]> https://gitweb.dealii.org/ - dealii.git/commitdiff
PackagedOperation: Also test for complex number support 1434/head
authorMatthias Maier <tamiko@43-1.org>
Tue, 25 Aug 2015 20:56:27 +0000 (15:56 -0500)
committerMatthias Maier <tamiko@43-1.org>
Tue, 25 Aug 2015 20:56:27 +0000 (15:56 -0500)
tests/lac/packaged_operation_01a.cc [new file with mode: 0644]
tests/lac/packaged_operation_01a.with_cxx11=on.output [new file with mode: 0644]

diff --git a/tests/lac/packaged_operation_01a.cc b/tests/lac/packaged_operation_01a.cc
new file mode 100644 (file)
index 0000000..e5f54c4
--- /dev/null
@@ -0,0 +1,86 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2015 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+// Complex version of packaged_operation_01.cc, test PackagedOperation for
+//   dealii::Vector<std::complex<double>>
+//   dealii::SparseMatrix<std::complex<double>>
+
+#include "../tests.h"
+
+#include <complex>
+
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/packaged_operation.h>
+
+using namespace dealii;
+
+
+void test_applies(std::string description,
+                  const PackagedOperation<Vector<std::complex<double>>> &expr)
+{
+  // test apply
+  Vector<std::complex<double>> tmp = expr;
+  deallog << description << ": " << tmp << std::endl;
+
+  // test apply_add
+  for (auto &i : tmp)
+    i = 100.;
+  expr.apply_add(tmp);
+  deallog << "100. * 1_n + " << description << ": " << tmp << std::endl;
+}
+
+
+int main()
+{
+  initlog();
+  deallog << std::setprecision(10);
+
+  static const int dim = 2;
+
+  // Tests:
+
+  Vector<std::complex<double>> u(25);
+  for (unsigned int i = 0; i < u.size(); ++i) {
+    u[i] = (double)(i+1);
+  }
+
+  deallog << "u: " << u << std::endl;
+
+  // creation via operator+, operator-, operator*
+
+  test_applies("u + u", u + u);
+  test_applies("u - u", u - u);
+  test_applies("3. * u", 3. * u);
+  test_applies("u * 3.", u * 3.);
+
+  // creation via mixed operator+, operator-
+
+  auto expr = 2. * u;
+
+  test_applies("2. * u + u", expr + u);
+  test_applies("2. * u - u", expr - u);
+
+  test_applies("u + 2. * u", u + expr);
+  test_applies("u - 2. * u", u - expr);
+
+  // operator+, operator-, operator*
+
+  PackagedOperation<Vector<std::complex<double>>> expr2 = u;
+
+  test_applies("2. * u + u", expr + expr2);
+  test_applies("2. * u - u", expr - expr2);
+  test_applies("3. * u", 3. * expr2);
+  test_applies("u * 3.", expr2 * 3.);
+}
diff --git a/tests/lac/packaged_operation_01a.with_cxx11=on.output b/tests/lac/packaged_operation_01a.with_cxx11=on.output
new file mode 100644 (file)
index 0000000..7cffe80
--- /dev/null
@@ -0,0 +1,51 @@
+
+DEAL::u: (1.000000000,0.000000000) (2.000000000,0.000000000) (3.000000000,0.000000000) (4.000000000,0.000000000) (5.000000000,0.000000000) (6.000000000,0.000000000) (7.000000000,0.000000000) (8.000000000,0.000000000) (9.000000000,0.000000000) (10.00000000,0.000000000) (11.00000000,0.000000000) (12.00000000,0.000000000) (13.00000000,0.000000000) (14.00000000,0.000000000) (15.00000000,0.000000000) (16.00000000,0.000000000) (17.00000000,0.000000000) (18.00000000,0.000000000) (19.00000000,0.000000000) (20.00000000,0.000000000) (21.00000000,0.000000000) (22.00000000,0.000000000) (23.00000000,0.000000000) (24.00000000,0.000000000) (25.00000000,0.000000000) 
+DEAL::
+DEAL::u + u: (2.000000000,0.000000000) (4.000000000,0.000000000) (6.000000000,0.000000000) (8.000000000,0.000000000) (10.00000000,0.000000000) (12.00000000,0.000000000) (14.00000000,0.000000000) (16.00000000,0.000000000) (18.00000000,0.000000000) (20.00000000,0.000000000) (22.00000000,0.000000000) (24.00000000,0.000000000) (26.00000000,0.000000000) (28.00000000,0.000000000) (30.00000000,0.000000000) (32.00000000,0.000000000) (34.00000000,0.000000000) (36.00000000,0.000000000) (38.00000000,0.000000000) (40.00000000,0.000000000) (42.00000000,0.000000000) (44.00000000,0.000000000) (46.00000000,0.000000000) (48.00000000,0.000000000) (50.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u + u: (102.0000000,0.000000000) (104.0000000,0.000000000) (106.0000000,0.000000000) (108.0000000,0.000000000) (110.0000000,0.000000000) (112.0000000,0.000000000) (114.0000000,0.000000000) (116.0000000,0.000000000) (118.0000000,0.000000000) (120.0000000,0.000000000) (122.0000000,0.000000000) (124.0000000,0.000000000) (126.0000000,0.000000000) (128.0000000,0.000000000) (130.0000000,0.000000000) (132.0000000,0.000000000) (134.0000000,0.000000000) (136.0000000,0.000000000) (138.0000000,0.000000000) (140.0000000,0.000000000) (142.0000000,0.000000000) (144.0000000,0.000000000) (146.0000000,0.000000000) (148.0000000,0.000000000) (150.0000000,0.000000000) 
+DEAL::
+DEAL::u - u: (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) (0.000000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u - u: (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) (100.0000000,0.000000000) 
+DEAL::
+DEAL::3. * u: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 3. * u: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::u * 3.: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u * 3.: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::2. * u + u: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 2. * u + u: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::2. * u - u: (1.000000000,0.000000000) (2.000000000,0.000000000) (3.000000000,0.000000000) (4.000000000,0.000000000) (5.000000000,0.000000000) (6.000000000,0.000000000) (7.000000000,0.000000000) (8.000000000,0.000000000) (9.000000000,0.000000000) (10.00000000,0.000000000) (11.00000000,0.000000000) (12.00000000,0.000000000) (13.00000000,0.000000000) (14.00000000,0.000000000) (15.00000000,0.000000000) (16.00000000,0.000000000) (17.00000000,0.000000000) (18.00000000,0.000000000) (19.00000000,0.000000000) (20.00000000,0.000000000) (21.00000000,0.000000000) (22.00000000,0.000000000) (23.00000000,0.000000000) (24.00000000,0.000000000) (25.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 2. * u - u: (101.0000000,0.000000000) (102.0000000,0.000000000) (103.0000000,0.000000000) (104.0000000,0.000000000) (105.0000000,0.000000000) (106.0000000,0.000000000) (107.0000000,0.000000000) (108.0000000,0.000000000) (109.0000000,0.000000000) (110.0000000,0.000000000) (111.0000000,0.000000000) (112.0000000,0.000000000) (113.0000000,0.000000000) (114.0000000,0.000000000) (115.0000000,0.000000000) (116.0000000,0.000000000) (117.0000000,0.000000000) (118.0000000,0.000000000) (119.0000000,0.000000000) (120.0000000,0.000000000) (121.0000000,0.000000000) (122.0000000,0.000000000) (123.0000000,0.000000000) (124.0000000,0.000000000) (125.0000000,0.000000000) 
+DEAL::
+DEAL::u + 2. * u: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u + 2. * u: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::u - 2. * u: (-1.000000000,0.000000000) (-2.000000000,0.000000000) (-3.000000000,0.000000000) (-4.000000000,0.000000000) (-5.000000000,0.000000000) (-6.000000000,0.000000000) (-7.000000000,0.000000000) (-8.000000000,0.000000000) (-9.000000000,0.000000000) (-10.00000000,0.000000000) (-11.00000000,0.000000000) (-12.00000000,0.000000000) (-13.00000000,0.000000000) (-14.00000000,0.000000000) (-15.00000000,0.000000000) (-16.00000000,0.000000000) (-17.00000000,0.000000000) (-18.00000000,0.000000000) (-19.00000000,0.000000000) (-20.00000000,0.000000000) (-21.00000000,0.000000000) (-22.00000000,0.000000000) (-23.00000000,0.000000000) (-24.00000000,0.000000000) (-25.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u - 2. * u: (99.00000000,0.000000000) (98.00000000,0.000000000) (97.00000000,0.000000000) (96.00000000,0.000000000) (95.00000000,0.000000000) (94.00000000,0.000000000) (93.00000000,0.000000000) (92.00000000,0.000000000) (91.00000000,0.000000000) (90.00000000,0.000000000) (89.00000000,0.000000000) (88.00000000,0.000000000) (87.00000000,0.000000000) (86.00000000,0.000000000) (85.00000000,0.000000000) (84.00000000,0.000000000) (83.00000000,0.000000000) (82.00000000,0.000000000) (81.00000000,0.000000000) (80.00000000,0.000000000) (79.00000000,0.000000000) (78.00000000,0.000000000) (77.00000000,0.000000000) (76.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::2. * u + u: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 2. * u + u: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::2. * u - u: (1.000000000,0.000000000) (2.000000000,0.000000000) (3.000000000,0.000000000) (4.000000000,0.000000000) (5.000000000,0.000000000) (6.000000000,0.000000000) (7.000000000,0.000000000) (8.000000000,0.000000000) (9.000000000,0.000000000) (10.00000000,0.000000000) (11.00000000,0.000000000) (12.00000000,0.000000000) (13.00000000,0.000000000) (14.00000000,0.000000000) (15.00000000,0.000000000) (16.00000000,0.000000000) (17.00000000,0.000000000) (18.00000000,0.000000000) (19.00000000,0.000000000) (20.00000000,0.000000000) (21.00000000,0.000000000) (22.00000000,0.000000000) (23.00000000,0.000000000) (24.00000000,0.000000000) (25.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 2. * u - u: (101.0000000,0.000000000) (102.0000000,0.000000000) (103.0000000,0.000000000) (104.0000000,0.000000000) (105.0000000,0.000000000) (106.0000000,0.000000000) (107.0000000,0.000000000) (108.0000000,0.000000000) (109.0000000,0.000000000) (110.0000000,0.000000000) (111.0000000,0.000000000) (112.0000000,0.000000000) (113.0000000,0.000000000) (114.0000000,0.000000000) (115.0000000,0.000000000) (116.0000000,0.000000000) (117.0000000,0.000000000) (118.0000000,0.000000000) (119.0000000,0.000000000) (120.0000000,0.000000000) (121.0000000,0.000000000) (122.0000000,0.000000000) (123.0000000,0.000000000) (124.0000000,0.000000000) (125.0000000,0.000000000) 
+DEAL::
+DEAL::3. * u: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + 3. * u: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::
+DEAL::u * 3.: (3.000000000,0.000000000) (6.000000000,0.000000000) (9.000000000,0.000000000) (12.00000000,0.000000000) (15.00000000,0.000000000) (18.00000000,0.000000000) (21.00000000,0.000000000) (24.00000000,0.000000000) (27.00000000,0.000000000) (30.00000000,0.000000000) (33.00000000,0.000000000) (36.00000000,0.000000000) (39.00000000,0.000000000) (42.00000000,0.000000000) (45.00000000,0.000000000) (48.00000000,0.000000000) (51.00000000,0.000000000) (54.00000000,0.000000000) (57.00000000,0.000000000) (60.00000000,0.000000000) (63.00000000,0.000000000) (66.00000000,0.000000000) (69.00000000,0.000000000) (72.00000000,0.000000000) (75.00000000,0.000000000) 
+DEAL::
+DEAL::100. * 1_n + u * 3.: (103.0000000,0.000000000) (106.0000000,0.000000000) (109.0000000,0.000000000) (112.0000000,0.000000000) (115.0000000,0.000000000) (118.0000000,0.000000000) (121.0000000,0.000000000) (124.0000000,0.000000000) (127.0000000,0.000000000) (130.0000000,0.000000000) (133.0000000,0.000000000) (136.0000000,0.000000000) (139.0000000,0.000000000) (142.0000000,0.000000000) (145.0000000,0.000000000) (148.0000000,0.000000000) (151.0000000,0.000000000) (154.0000000,0.000000000) (157.0000000,0.000000000) (160.0000000,0.000000000) (163.0000000,0.000000000) (166.0000000,0.000000000) (169.0000000,0.000000000) (172.0000000,0.000000000) (175.0000000,0.000000000) 
+DEAL::

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.