freepooma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Another Stencil test


From: Jeffrey D. Oldham
Subject: Re: [PATCH] Another Stencil test
Date: Tue, 20 Jul 2004 11:29:52 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5

Richard Guenther wrote:

This adds a Stencil test for expression arguments and removes a FIXME.

Ok?
Yes, please commit this. More testing is always a good thing. I'll add another test to the nightly Pooma regression tests.

Richard.


2004Jul20  Richard Guenther <address@hidden>

        * src/Engine/Stencil.h: remove FIXME.
        src/Array/tests/array_test33.cpp: new.
        src/Array/tests/makefile: add array_test33.

--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/

------------------------------------------------------------------------

--- pooma-bk/r2/src/Engine/Stencil.h    Fri Jan 16 23:03:53 2004
+++ pooma-bib/r2/src/Engine/Stencil.h   Thu Jul 15 11:31:50 2004
@@ -815,8 +815,6 @@
GuardLayers<Dim> &usedGuards) {
    intersect(engine);
-    // FIXME: accumulate used guards from intersect above and
-    // stencil extent? I.e. allow  Stencil<>(a(i-1)+a(i+1))?
    usedGuards = stencilExtent_m;
    return true;
  }
--- /dev/null   Tue May 18 17:20:27 2004
+++ pooma-bib/r2/src/Array/tests/array_test33.cpp       Thu Jul 15 11:31:41 2004
@@ -0,0 +1,86 @@
+// -*- C++ -*-
+// ACL:license
+// ----------------------------------------------------------------------
+// This software and ancillary information (herein called "SOFTWARE")
+// called POOMA (Parallel Object-Oriented Methods and Applications) is
+// made available under the terms described here.  The SOFTWARE has been
+// approved for release with associated LA-CC Number LA-CC-98-65.
+// +// Unless otherwise indicated, this SOFTWARE has been authored by an
+// employee or employees of the University of California, operator of the
+// Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with
+// the U.S. Department of Energy.  The U.S. Government has rights to use,
+// reproduce, and distribute this SOFTWARE. The public may copy, distribute,
+// prepare derivative works and publicly display this SOFTWARE without +// charge, provided that this Notice and any statement of authorship are +// reproduced on all copies. Neither the Government nor the University +// makes any warranty, express or implied, or assumes any liability or +// responsibility for the use of this SOFTWARE. +// +// If SOFTWARE is modified to produce derivative works, such modified
+// SOFTWARE should be clearly marked, so as not to confuse it with the
+// version available from LANL.
+// +// For more information about POOMA, send e-mail to address@hidden,
+// or visit the POOMA web page at http://www.acl.lanl.gov/pooma/.
+// ----------------------------------------------------------------------
+// ACL:license
+
+//-----------------------------------------------------------------------------
+// array_test33.cpp verify correctnes of stencil objects with expressions
+//-----------------------------------------------------------------------------
+
+// Include files
+
+#include "Pooma/Arrays.h"
+#include "Utilities/Tester.h"
+#include <iostream>
+
+class EvaluateExpr
+{
+public:
+  template <class A>
+  typename A::Element_t operator()(const A& x, int i) const
+  {
+         return x.read(i);
+  }
+
+  int lowerExtent(int) const { return 0; }
+ int upperExtent(int) const { return 0; } +};
+
+int main(int argc, char *argv[])
+{
+  // Initialize POOMA and output stream, using Tester class
+  Pooma::initialize(argc, argv);
+  Pooma::Tester tester(argc, argv);
+
+  Interval<1> domain(8);
+  UniformGridLayout<1> layout(domain, Loc<1>(2), GuardLayers<1>(1), 
DistributedTag());
+  Array<1,int,MultiPatch<UniformTag, Remote<Brick> > > a(layout), b(layout), 
c(layout);
+
+  a = 0;
+  b = 1;
+  c = 2;
+  a(domain) = Stencil<EvaluateExpr>()(b(domain-1)+c(domain+1), domain);
+  tester.check("a = b(I-1) + c(I+1)", all(a(domain) == 3));
+  tester.out() << a(domain) << std::endl;
+
+  a = 0;
+  b = 2;
+  c = 3;
+  a(domain) = b(domain) + Stencil<EvaluateExpr>()(b(domain)+c(domain+1), 
domain);
+  tester.check("a = b + b(I-1) + c", all(a(domain) == 7));
+  tester.out() << a(domain) << std::endl;
+
+  int retval = tester.results("array_test33");
+  Pooma::finalize();
+ return retval; +}
+
+// ACL:rcsinfo
+// ----------------------------------------------------------------------
+// $RCSfile: array_test23.cpp,v $   $Author: sa_smith $
+// $Revision: 1.5 $   $Date: 2000/07/04 05:06:54 $
+// ----------------------------------------------------------------------
+// ACL:rcsinfo


--
Jeffrey D. Oldham
address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]