78 inline std::vector<std::string>
DataTypeNames () {
return {
"1D",
"2D",
"1D_collection",
"1D_extra",
"2D_extra"}; }
218 {
ErrorCBL(
"",
"as_factory",
"Data.h");
return NULL; }
242 std::vector<std::vector<double>>
correlation ()
const;
292 virtual double xx (
const int i)
const
293 { (void)i;
ErrorCBL(
"",
"xx",
"Data.h");
return 0; }
299 virtual std::vector<double>
xx ()
const
300 {
ErrorCBL(
"",
"xx",
"Data.h");
return {}; }
308 virtual double xx (
const int i,
const int j)
const
309 { (void)i; (void)j;
ErrorCBL(
"",
"xx",
"Data.h");
return 0.; }
316 virtual double yy (
const int i)
const
317 { (void)i;
ErrorCBL(
"",
"yy",
"Data.h");
return 0.; }
323 virtual std::vector<double>
yy ()
const
324 {
ErrorCBL(
"",
"yy",
"Data.h");
return {}; }
334 { (void)i; (void)j;
ErrorCBL(
"",
"IndipendentVariable",
"Data.h"); std::vector<std::vector<double>> pp;
return {pp}; }
342 virtual double data (
const int i,
const int j)
const
343 { (void)i; (void)j;
ErrorCBL(
"",
"data",
"Data.h");
return 0.; }
370 virtual double data (
const int i)
const {
return m_data[i]; }
444 virtual double error (
const int i,
const int j)
const
445 { (void)i; (void)j;
ErrorCBL(
"",
"error",
"Data.h");
return 0.; }
470 { (void)i; (void)j;
ErrorCBL(
"",
"extra_info",
"Data.h");
return 0.; }
477 {
ErrorCBL(
"",
"extra_info",
"Data.h"); std::vector<std::vector<double>> x;
return x; }
490 virtual void set_xx (
const std::vector<double> x)
491 { (void)x;
ErrorCBL(
"",
"set_xx",
"Data.h"); }
497 virtual void set_yy (
const std::vector<double> y)
498 { (void)y;
ErrorCBL(
"",
"set_yy",
"Data.h"); }
506 virtual void set_xx (
const int i,
const std::vector<double> x)
507 { (void)i; (void)x;
ErrorCBL(
"",
"set_xx",
"Data.h"); }
513 virtual void set_xx (
const std::vector<std::vector<double>> x)
514 { (void)x;
ErrorCBL(
"",
"set_xx",
"Data.h"); }
521 { (void)edges;
ErrorCBL(
"",
"set_edges_xx",
"Data.h"); }
528 { (void)edges;
ErrorCBL(
"",
"set_edges_yy",
"Data.h"); }
577 void set_covariance (
const std::string filename,
const int cov_col=2,
const int skipped_lines=0);
612 virtual int ndata (
const int i)
const
613 { (void)i;
return ErrorCBL(
"",
"ndata",
"Data.h"); }
620 {
return ErrorCBL(
"",
"ndataset",
"Data.h"); }
627 {
return ErrorCBL(
"",
"xsize",
"Data.h"); }
634 virtual int xsize (
const int i)
const
635 { (void)i;
return ErrorCBL(
"",
"xsize",
"Data.h"); }
642 {
return ErrorCBL(
"",
"ysize",
"Data.h"); }
688 virtual void read (
const std::string input_file,
const int skip_nlines=0,
const std::vector<int> column={0},
const std::vector<int> column_data={},
const std::vector<int> column_errors={},
const std::vector<int> column_edges={})
689 { (void)input_file; (void)skip_nlines; (void)column, (
void)column_data, (void)column_errors, (
void)column_edges,
ErrorCBL(
"",
"read",
"Data.h"); }
727 virtual void read (
const std::vector<std::string> input_file,
const int skip_nlines=0,
const std::vector<int> column={0},
const std::vector<int> column_data={},
const std::vector<int> column_errors={},
const std::vector<int> column_edges={})
728 { (void)input_file; (void)skip_nlines; (void)column, (
void)column_data, (void)column_errors, (
void)column_edges,
ErrorCBL(
"",
"read",
"Data.h"); }
735 virtual void Print (
const int prec=4)
const
736 { (void)prec;
ErrorCBL(
"",
"Print",
"Data.h"); }
748 virtual void write (
const std::string dir,
const std::string file,
const std::string header,
const int prec=4,
const int ww=8,
const int rank=0)
const
749 { (void)dir; (void)file; (void)header; (void)prec; (void)ww; (void)rank;
ErrorCBL(
"",
"write",
"Data.h"); }
764 virtual void write (
const std::string dir,
const std::string file,
const std::string header,
const bool full,
const int prec=10,
const int ww=8,
const int rank=0)
const
765 { (void)dir; (void)file; (void)header; (void)full; (void)prec; (void)ww; (void)rank;
ErrorCBL(
"",
"write",
"Data.h"); }
777 virtual void write (
const std::string dir,
const std::vector<std::string> files,
const std::string header,
const int prec=10,
const int ww=8,
const int rank=0)
const
778 { (void)dir; (void)files; (void)header; (void)prec; (void)ww; (void)rank;
ErrorCBL(
"",
"write",
"Data.h"); }
786 virtual void write_covariance (
const std::string dir,
const std::string file,
const int precision=10)
const
787 { (void)dir; (void)file; (void)precision;
ErrorCBL(
"",
"write_covariance",
"Data.h"); }
805 void cut (
const std::vector<bool> mask, std::vector<double> &
data, std::vector<double> &
error, std::vector<std::vector<double>> &
covariance_matrix)
const;
812 virtual std::shared_ptr<Data>
cut (
const std::vector<bool> mask)
const
813 { (void)mask;
ErrorCBL(
"",
"cut",
"Data.h"); std::shared_ptr<Data> dd;
return dd; }
821 virtual std::shared_ptr<Data>
cut (
const double xmin,
const double xmax)
const
822 { (void)xmin; (void)xmax;
ErrorCBL(
"",
"cut",
"Data.h"); std::shared_ptr<Data> dd;
return dd; }
832 virtual std::shared_ptr<Data>
cut (
const double xmin,
const double xmax,
const double ymin,
const double ymax)
const
833 { (void)xmin; (void)xmax; (void)ymin; (void)ymax;
ErrorCBL(
"",
"cut",
"Data.h"); std::shared_ptr<Data> dd;
return dd; }
842 virtual std::shared_ptr<Data>
cut (
const int dataset,
const double xmin,
const double xmax)
const
843 { (void)dataset; (void)xmin; (void)xmax;
ErrorCBL(
"",
"cut",
"Data.h"); std::shared_ptr<Data> dd;
return dd; }
851 virtual std::shared_ptr<Data>
cut (
const std::vector<double> xmin,
const std::vector<double> xmax)
const
852 { (void)xmin; (void)xmax;
ErrorCBL(
"",
"cut",
"Data.h"); std::shared_ptr<Data> dd;
return dd; }
864 std::shared_ptr<data::Data>
join_dataset (std::vector<std::shared_ptr<data::Data>> dataset);
871 std::shared_ptr<data::Data>
join_dataset_1D (std::vector<std::shared_ptr<data::Data>> dataset);
878 std::shared_ptr<data::Data>
join_dataset_1D_extra (std::vector<std::shared_ptr<data::Data>> dataset);
Useful generic functions.
std::vector< std::vector< double > > m_covariance
covariance matrix
int m_ndata
number of data
virtual std::shared_ptr< Data > cut(const double xmin, const double xmax, const double ymin, const double ymax) const
cut the data, for Data2D
virtual void read(const std::string input_file, const int skip_nlines=0, const std::vector< int > column={0}, const std::vector< int > column_data={}, const std::vector< int > column_errors={}, const std::vector< int > column_edges={})
read the data from one input file
virtual double xx(const int i, const int j) const
get value of x at position i,j, for Data1D_collection
DataType m_dataType
type of data
virtual std::vector< double > yy() const
get the y std::vector
void set_dataType(const DataType dataType)
set the data type
virtual void set_edges_yy(const std::vector< double > edges)
set interval variable m_edges_yy
std::vector< std::vector< double > > m_inverse_covariance
inverse covariance matrix
virtual void get_data(std::vector< double > &data) const
get data for Data1D
virtual std::vector< std::vector< double > > IndipendentVariable(const int i=-1, const int j=-1) const
get the independet variable, to be used in model computation
virtual std::shared_ptr< Data > cut(const int dataset, const double xmin, const double xmax) const
cut the data, for Data1D_collection
virtual void write(const std::string dir, const std::string file, const std::string header, const bool full, const int prec=10, const int ww=8, const int rank=0) const
write the data
std::vector< double > m_edges_yy
bin edges for the y variable
std::vector< std::vector< double > > correlation() const
get the value of the data correlation at index i,j
virtual int xsize(const int i) const
get the number of points along x
virtual void get_data(std::vector< std::vector< double >> &data) const
get data for Data1D_collection, Data2D
virtual std::shared_ptr< Data > cut(const double xmin, const double xmax) const
cut the data, for Data1D
double inverse_covariance(const int i, const int j) const
get the value of data inverse_covariance at index i,j
virtual std::vector< double > edges_yy() const
get y variable bin edges
Data(const DataType dataType)
constructor which sets only the data type
void cut(const std::vector< bool > mask, std::vector< double > &data, std::vector< double > &error, std::vector< std::vector< double >> &covariance_matrix) const
cut the dataset using a mask
virtual void set_edges_xx(const std::vector< double > edges)
set interval variable m_edges_xx
virtual void set_xx(const int i, const std::vector< double > x)
set interval variable m_x in the i-th dataset, for Data1D_collection
virtual void set_data(const std::vector< std::vector< double >> data)
set interval variable m_data, for Data1D_collection, Data2D
virtual void set_xx(const std::vector< double > x)
set interval variable m_x
virtual std::vector< double > edges_xx() const
get x variable bin edges
virtual std::vector< double > xx() const
get the x std::vector
double correlation(const int i, const int j) const
get the value of the data correlation at index i,j
virtual double extra_info(const int i, const int j) const
return the value of the extra information at index i,j
virtual double edges_yy(const int i) const
get value of y variable bin edge at index i
virtual std::vector< double > data() const
get data
virtual int ndata(const int i) const
function that returns number of data for one dataset, for Data1D_collection
virtual double error(const int i) const
get value of data standard deviation at index i
std::vector< double > m_error
standard deviations
virtual double data(const int i) const
get data at index i
virtual void Print(const int prec=4) const
print the data on screen
virtual double edges_xx(const int i) const
get value of x variable bin edge at index i
virtual DataType dataType() const
get the data type
std::vector< double > m_data
data values
void set_covariance(const std::string filename, const int cov_col=2, const int skipped_lines=0)
set the interval variable m_covariance, reading from an input file
virtual void set_xx(const std::vector< std::vector< double >> x)
set interval variable m_x, for Data1D_collection
void set_error(const std::vector< double > error)
set interval variable m_error_fx
virtual void get_error(std::vector< std::vector< double >> &error) const
get standard deviation for Data1D_Collection, Data2D
Data()=default
default constructor
virtual void write(const std::string dir, const std::vector< std::string > files, const std::string header, const int prec=10, const int ww=8, const int rank=0) const
write the data
virtual int xsize() const
get the number of points along x
virtual std::shared_ptr< Data > cut(const std::vector< double > xmin, const std::vector< double > xmax) const
cut the data, for Data1D_collection type
virtual void invert_covariance(const double prec, const int Nres)
invert the covariance matrix
virtual double xx(const int i) const
get value of x at index i
std::vector< double > m_edges_xx
bin edges for the x variable
void set_covariance(const double value, const int i, const int j)
set interval the variable m_covariance
virtual void write_covariance(const std::string dir, const std::string file, const int precision=10) const
write the interval variable m_covariance on a file,
virtual std::vector< double > error() const
get standard deviation
virtual std::vector< std::vector< double > > covariance() const
get the m_covariance vector
virtual int ndataset() const
function that returns total number of datasets
virtual void read(const std::vector< std::string > input_file, const int skip_nlines=0, const std::vector< int > column={0}, const std::vector< int > column_data={}, const std::vector< int > column_errors={}, const std::vector< int > column_edges={})
read the data from a set of input files
std::vector< std::vector< double > > inverse_covariance() const
get the m_inverse_covariance std::vector
virtual ~Data()=default
default destructor
virtual double data(const int i, const int j) const
get data at index i,j for Data1D_collection, Data2D
virtual void set_yy(const std::vector< double > y)
set interval variable m_y, for Data2D
Data(const DataType dataType, const int ndata)
constructor which sets both the data type and the number of data
virtual int ndata() const
the total number of data
virtual std::shared_ptr< Data > cut(const std::vector< bool > mask) const
cut the data, for Data1D
virtual std::vector< std::vector< double > > extra_info() const
return the m_exta_info std::vector
virtual std::shared_ptr< Data > as_factory()
static factory used to construct objects of class Data1D
virtual void write(const std::string dir, const std::string file, const std::string header, const int prec=4, const int ww=8, const int rank=0) const
write the data
virtual double covariance(const int i, const int j) const
get the value of the data covariance at index i,j
void reset(const int ndata)
reset data object with new empty arrays large enough to store ndata data
virtual void set_extra_info(const std::vector< std::vector< double >> extra_info)
set interval variable m_error_fx
virtual int ysize() const
get the number of points along y
virtual double yy(const int i) const
get value of y at index i, for Data2D
static std::shared_ptr< Data > Create(const DataType dataType)
static factory used to construct objects of class Data1D
virtual double error(const int i, const int j) const
get value of f(x) error at index i,j for Data1D_collection, Data2D
virtual void get_error(std::vector< double > &error) const
get standard deviation for Data1D
std::shared_ptr< data::Data > join_dataset_1D(std::vector< std::shared_ptr< data::Data >> dataset)
merge dataset of type 1D
std::shared_ptr< data::Data > join_dataset_1D_extra(std::vector< std::shared_ptr< data::Data >> dataset)
merge dataset of type 1D_extra
@ _2D_extra_
2D dataset with extra information
@ _1D_extra_
1D dataset with extra information
@ _1D_collection_
collection of 1D datasets
std::shared_ptr< data::Data > join_dataset(std::vector< std::shared_ptr< data::Data >> dataset)
merge dataset (only work for one dataset type)
std::vector< std::string > DataTypeNames()
return a vector containing the DataType names
The global namespace of the CosmoBolognaLib
int ErrorCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL, const cbl::glob::ExitCode exitCode=cbl::glob::ExitCode::_error_)
throw an exception: it is used for handling exceptions inside the CosmoBolognaLib
void invert_matrix(const std::vector< std::vector< double >> mat, std::vector< std::vector< double >> &mat_inv, const double prec=1.e-10, const int Nres=-1)
function to invert a matrix
void covariance_matrix(const std::vector< std::vector< double >> mat, std::vector< std::vector< double >> &cov, const bool JK=false)
compute the covariance matrix from an input dataset