20 #include <type_traits> 22 #include "atlas/util/Object.h" 24 #include "atlas/array.h" 25 #include "atlas/library/config.h" 57 static constexpr
unsigned short _values_ = 0;
58 static constexpr
unsigned short _displs_ = 1;
59 static constexpr
unsigned short _counts_ = 2;
73 Table(
idx_t values[],
size_t rows,
size_t displs[],
size_t counts[] );
79 const std::string&
name()
const {
return name_; }
85 size_t rows()
const {
return rows_; }
88 size_t cols(
size_t row_idx )
const {
return counts_( row_idx ); }
91 size_t maxcols()
const {
return maxcols_; }
94 size_t mincols()
const {
return mincols_; }
100 size_t size()
const {
return data_[_values_]->size(); }
115 virtual bool valid()
const;
124 void dump( std::ostream& )
const;
133 virtual void add(
size_t rows,
size_t cols,
const idx_t values[],
bool fortran_array =
false );
137 virtual void add(
size_t rows,
size_t cols );
141 virtual void add(
size_t rows,
const size_t cols[] );
145 virtual void insert(
size_t position,
size_t rows,
size_t cols,
const idx_t values[],
bool fortran_array =
false );
149 virtual void insert(
size_t position,
size_t rows,
size_t cols );
153 virtual void insert(
size_t position,
size_t rows,
const size_t cols[] );
157 virtual void clear();
162 void resize_values(
size_t old_size,
size_t size,
bool initialize,
const idx_t values[],
bool fortran_array );
164 void resize_counts_and_displs(
size_t size );
166 void insert_counts_and_displs(
size_t position,
size_t rows );
168 void resize_values(
size_t size );
170 void insert_values(
size_t position,
size_t size );
173 template <
bool ReadOnly>
178 std::array<array::Array*, 3> data_;
179 idx_t missing_value_;
virtual bool hostNeedsUpdate() const
Check if data is present on host.
Definition: Table.cc:344
size_t mincols() const
Minimum value for number of columns over all rows.
Definition: Table.h:94
virtual void clear()
Resize connectivity, and insert given rows with missing values.
Definition: Table.cc:98
size_t rows() const
Number of rows in the connectivity table.
Definition: Table.h:85
size_t maxcols() const
Maximum value for number of columns over all rows.
Definition: Table.h:91
idx_t missing_value() const
Value that is given to unassigned entries.
Definition: Table.h:97
Table.
Definition: Table.h:55
bool owns()
Check if data is owned or wrapped.
Definition: Table.h:127
virtual void syncHostDevice() const
Synchronise data between host and device.
Definition: Table.cc:330
void dump(std::ostream &) const
Print all values unformatted to output stream.
Definition: Table.cc:370
virtual void updateHost() const
Clone data from device.
Definition: Table.cc:324
virtual size_t footprint() const
Return memory footprint of table.
Definition: Table.cc:360
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33
virtual void add(size_t rows, size_t cols, const idx_t values[], bool fortran_array=false)
– Modifiers
Definition: Table.cc:171
void rename(const std::string &name)
Rename this Connectivity.
Definition: Table.h:82
long idx_t
Integer type for indices in connectivity tables.
Definition: config.h:42
virtual bool deviceNeedsUpdate() const
Check if data is present on device.
Definition: Table.cc:352
Definition: TableView.h:142
virtual void insert(size_t position, size_t rows, size_t cols, const idx_t values[], bool fortran_array=false)
Resize connectivity, and insert given rows.
Definition: Table.cc:242
virtual bool valid() const
Check if data is valid.
Definition: Table.cc:336
virtual void updateDevice() const
Clone data to device.
Definition: Table.cc:318
Table(const std::string &name="")
Construct connectivity table that needs resizing a-posteriori Data is owned.
Definition: Table.cc:34
size_t cols(size_t row_idx) const
Number of columns for specified row in the connectivity table.
Definition: Table.h:88
const std::string & name() const
Name associated to this Connetivity.
Definition: Table.h:79
size_t size() const
Number of values stored in the table.
Definition: Table.h:100