Conjugate transpose: Difference between revisions
Content added Content deleted
(Added C++ solution) |
m (C++ code made slightly shorter) |
||
Line 340: | Line 340: | ||
size_t rows() const { return rows_; } |
size_t rows() const { return rows_; } |
||
size_t columns() const { return columns_; } |
size_t columns() const { return columns_; } |
||
element_type* data() { return &elements_[0]; } |
element_type* data() { return &elements_[0]; } |
||
const element_type* data() const { return &elements_[0]; } |
const element_type* data() const { return &elements_[0]; } |
||
element_type* row_data(size_t row) { |
element_type* row_data(size_t row) { |
||
assert(row < rows_); |
assert(row < rows_); |
||
Line 352: | Line 354: | ||
const element_type& at(size_t row, size_t column) const { |
const element_type& at(size_t row, size_t column) const { |
||
assert(row < rows_); |
|||
assert(column < columns_); |
assert(column < columns_); |
||
return |
return row_data(row)[column]; |
||
} |
} |
||
element_type& at(size_t row, size_t column) { |
element_type& at(size_t row, size_t column) { |
||
assert(row < rows_); |
|||
assert(column < columns_); |
assert(column < columns_); |
||
return |
return row_data(row)[column]; |
||
} |
} |
||
Line 367: | Line 367: | ||
} |
} |
||
private: |
private: |
||
size_t index(size_t row, size_t column) const { |
|||
return row * columns_ + column; |
|||
} |
|||
size_t rows_; |
size_t rows_; |
||
size_t columns_; |
size_t columns_; |