Integrate.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2007 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/General/Pulsar/Integrate.h
10
11#ifndef __Pulsar_Integrate_h
12#define __Pulsar_Integrate_h
13
14#include "Pulsar/Transformation.h"
15
16namespace Pulsar {
17
19
34
35 template<class Container>
36 class Integrate : public Transformation<Container> {
37
38 public:
39
41 class RangePolicy;
42
44 class Divided;
45
47 virtual void set_range_policy (RangePolicy* rp) { range_policy = rp; }
48
49 protected:
50
53
55 class EvenlySpaced;
56
58 class NonlinearlySpaced;
59
61 class EvenlyWeighted;
62
63 };
64
67 template<class Container>
69
70 public:
71
73 virtual void initialize (Integrate*, Container*) = 0;
74
76 virtual unsigned get_nrange () = 0;
77
79 virtual void get_range (unsigned irange,
80 unsigned& istart,
81 unsigned& istop) = 0;
82
83 };
84
85}
86
87#endif
Data storage implementations.
Definition Container.h:19
Definition Integrate.h:68
virtual void get_range(unsigned irange, unsigned &istart, unsigned &istop)=0
Return the first and last indeces of the specified range.
virtual void initialize(Integrate *, Container *)=0
Initialize ranges for the specified parameters.
virtual unsigned get_nrange()=0
Return the number of ranges.
Profile integration algorithms.
Definition Integrate.h:36
Reference::To< RangePolicy > range_policy
The frequency channel range selection policy.
Definition Integrate.h:52
virtual void set_range_policy(RangePolicy *rp)
Set the range division policy.
Definition Integrate.h:47
Algorithms that modify data in the Container.
Definition Transformation.h:20
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0