avg.h 1.61 KB
Newer Older
thomas.forbriger's avatar
thomas.forbriger committed
1
2
3
4
5
/*! \file avg.h
 * \brief return average of element values (prototypes)
 * 
 * ----------------------------------------------------------------------------
 * 
thomas.forbriger's avatar
thomas.forbriger committed
6
 * $Id: avg.h,v 1.2 2005-04-21 07:14:55 tforb Exp $
thomas.forbriger's avatar
thomas.forbriger committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 * \author Thomas Forbriger
 * \date 20/03/2005
 * 
 * return average of element values (prototypes)
 * 
 * Copyright (c) 2005 by Thomas Forbriger (BFO Schiltach) 
 * 
 * REVISIONS and CHANGES 
 *  - 20/03/2005   V1.0   Thomas Forbriger
 * 
 * ============================================================================
 */

// include guard
#ifndef AFF_AVG_H_VERSION

#define AFF_AVG_H_VERSION \
  "AFF_AVG_H   V1.0   "
#define AFF_AVG_H_CVSID \
thomas.forbriger's avatar
thomas.forbriger committed
26
  "$Id: avg.h,v 1.2 2005-04-21 07:14:55 tforb Exp $"
thomas.forbriger's avatar
thomas.forbriger committed
27
28


thomas.forbriger's avatar
thomas.forbriger committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include<aff/lib/collector.h>

namespace aff {

  namespace func {

    namespace util {

      template<class C>
        class Extractavg {
          typedef typename C::Tcoc Tcont;
          typedef typename C::Tvalue Tvalue;
          public:
            Extractavg(const Tcont c): Msum(0), Mn(0) { }
            void operator() (const Tvalue& v) { Msum+=v; }
            Tvalue result() const { return(Msum/Tvalue(Mn)); }
          private:
            Tvalue Msum;
            int Mn;
        }; // class Extractavg
      
    } // namespace util

    template<class T>
    template<class C>
      T avg(const typename C::Tcoc& c)
      {
        /*
        return(aff::func::util::collect<C, T, 
                  aff::func::util::Extractavg>(c));
                  */
        return(-18);
      } // avg()

  } // namespace func

} // namespace aff
thomas.forbriger's avatar
thomas.forbriger committed
66
67
68
69

#endif // AFF_AVG_H_VERSION (includeguard)

/* ----- END OF avg.h ----- */