8 #ifndef __Pulsar__TimeDomainCovariance_h
9 #define __Pulsar__TimeDomainCovariance_h
11 #include "Pulsar/ProfileCovariance.h"
15 class TimeDomainCovariance :
public ProfileCovariance
20 TimeDomainCovariance ();
23 void choose_bins (
unsigned,
unsigned );
26 std::string get_name ()
const;
29 void add_Profile (
const Profile* );
30 void add_Profile (
const Profile*,
float wt );
33 void set_covariance_matrix (
const double * );
36 void get_covariance_matrix_copy (
double* dest );
39 double get_covariance_matrix_value (
unsigned row,
unsigned col );
48 void set_eigenvectors (
const std::vector<double>& );
49 void set_eigenvectors (
const double* );
52 void get_eigenvectors_copy ( std::vector<double>& );
53 void get_eigenvectors_copy (
double* );
55 double get_eigenvectors_value (
unsigned row,
unsigned col );
56 const double* get_eigenvectors_pointer ();
59 void set_eigenvalues (
const std::vector<double>& );
60 void set_eigenvalues (
const double* );
63 void get_eigenvalues_copy ( std::vector<double>& );
64 void get_eigenvalues_copy (
double* );
66 double get_eigenvalue (
unsigned row );
67 const double* get_eigenvalues_pointer ();
70 unsigned get_count ();
73 void set_count (
unsigned );
79 void set_rank (
unsigned );
95 std::vector<double> covariance_matrix;
98 std::vector<double> mean;
101 std::vector<double> eigenvectors;
104 std::vector<double> eigenvalues;
106 bool eigen_decomposed;