11 #ifndef __CrossCovarianceMatrix_h
12 #define __CrossCovarianceMatrix_h
14 #include "Pulsar/ArchiveExtension.h"
15 #include "Pulsar/Profile.h"
27 CrossCovarianceMatrix ();
30 CrossCovarianceMatrix (
const CrossCovarianceMatrix& extension);
33 const CrossCovarianceMatrix& operator= (
const CrossCovarianceMatrix&);
36 ~CrossCovarianceMatrix ();
39 CrossCovarianceMatrix* clone ()
const
40 {
return new CrossCovarianceMatrix( *
this ); }
43 void set_nbin (
unsigned);
46 unsigned get_nbin ()
const;
49 void set_npol (
unsigned);
52 unsigned get_npol ()
const;
55 void set_nlag (
unsigned);
58 unsigned get_nlag ()
const;
61 unsigned get_ncross (
unsigned ilag)
const;
64 unsigned get_ncross_total ()
const;
69 bool has_stream ()
const;
72 void set_stream (Stream*);
75 const Stream* get_stream ()
const;
81 std::vector<double>& get_data () {
return covariance; }
84 const std::vector<double>& get_data ()
const {
return covariance; }
104 virtual unsigned get_ndat ()
const = 0;
105 virtual void get_data (
unsigned off,
unsigned n,
double*)
const = 0;
106 virtual void verify_end_of_data ()
const = 0;