casacore
Loading...
Searching...
No Matches
ArrayMathBase.h
Go to the documentation of this file.
1//# ArrayMathBase.h: Basic functions and classes for math on Array objects
2//# Copyright (C) 2012
3//# Associated Universities, Inc. Washington DC, USA.
4//#
5//# This library is free software; you can redistribute it and/or modify it
6//# under the terms of the GNU Library General Public License as published by
7//# the Free Software Foundation; either version 2 of the License, or (at your
8//# option) any later version.
9//#
10//# This library is distributed in the hope that it will be useful, but WITHOUT
11//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13//# License for more details.
14//#
15//# You should have received a copy of the GNU Library General Public License
16//# along with this library; if not, write to the Free Software Foundation,
17//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18//#
19//# Correspondence concerning AIPS++ should be addressed as follows:
20//# Internet email: casa-feedback@nrao.edu.
21//# Postal address: AIPS++ Project Office
22//# National Radio Astronomy Observatory
23//# 520 Edgemont Road
24//# Charlottesville, VA 22903-2475 USA
25
26#ifndef CASA_ARRAYMATHBASE_2_H
27#define CASA_ARRAYMATHBASE_2_H
28
29#include "ArrayFwd.h"
30
31namespace casacore {
32
33 // <summary>
34 // Basic class for math on Array objects
35 // </summary>
36 //
37 // <reviewed reviewer="UNKNOWN" date="" tests="tArrayMath">
38 //
39 // <prerequisite>
40 // <li> <linkto class=Array>Array</linkto>
41 // </prerequisite>
42 //
43 // <synopsis>
44 // The abstract base class ArrayFunctorBase is defined for functors to
45 // be used in functions like slidingXXX.
46 // Virtual functions instead of templated functions are used to avoid
47 // code bloat when used in functions like partialArrayMath. Because a
48 // reduction operation usually takes much more time than the call, using
49 // virtual functions hardly imposes a performance penalty.
50 // </synopsis>
51 template<typename T, typename RES=T> class ArrayFunctorBase {
52 public:
53 virtual ~ArrayFunctorBase() {}
54 virtual RES operator() (const Array<T>&) const = 0;
55 };
56
57} //# end namespace
58
59#endif
virtual RES operator()(const Array< T > &) const =0
this file contains all the compiler specific defines
Definition mainpage.dox:28