mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[poincare] Add a vector type for matrix product and norm operations
Change-Id: I28b0956273f8c0a3a9bdc4389956caa106d6b8af
This commit is contained in:
committed by
EmilieNumworks
parent
522456677a
commit
d8527b02ad
@@ -8,10 +8,15 @@ namespace Poincare {
|
||||
|
||||
class Array {
|
||||
public:
|
||||
enum class VectorType {
|
||||
None,
|
||||
Vertical,
|
||||
Horizontal
|
||||
};
|
||||
Array() :
|
||||
m_numberOfRows(0),
|
||||
m_numberOfColumns(0) {}
|
||||
bool isVector() const { return m_numberOfRows == 1 || m_numberOfColumns == 1; }
|
||||
VectorType vectorType() const { return m_numberOfColumns == 1 ? VectorType::Vertical : (m_numberOfRows == 1 ? VectorType::Horizontal : VectorType::None); }
|
||||
int numberOfRows() const { return m_numberOfRows; }
|
||||
int numberOfColumns() const { return m_numberOfColumns; }
|
||||
void setNumberOfRows(int rows) { assert(rows >= 0); m_numberOfRows = rows; }
|
||||
|
||||
@@ -57,7 +57,7 @@ public:
|
||||
static Matrix Builder() { return TreeHandle::NAryBuilder<Matrix, MatrixNode>(); }
|
||||
|
||||
void setDimensions(int rows, int columns);
|
||||
bool isVector() const { return node()->isVector(); }
|
||||
Array::VectorType vectorType() const { return node()->vectorType(); }
|
||||
int numberOfRows() const { return node()->numberOfRows(); }
|
||||
int numberOfColumns() const { return node()->numberOfColumns(); }
|
||||
using TreeHandle::addChildAtIndexInPlace;
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
std::complex<T> complexAtIndex(int index) const {
|
||||
return node()->complexAtIndex(index);
|
||||
}
|
||||
bool isVector() const { return node()->isVector(); }
|
||||
Array::VectorType vectorType() const { return node()->vectorType(); }
|
||||
int numberOfRows() const { return node()->numberOfRows(); }
|
||||
int numberOfColumns() const { return node()->numberOfColumns(); }
|
||||
void setDimensions(int rows, int columns);
|
||||
|
||||
Reference in New Issue
Block a user