1 #ifndef math_Vector_H__
2 #define math_Vector_H__
18 template<
class Scalar>
61 Vector(std::vector<Scalar>
const& v): matrix_(v.size(), 1, Scalar(0)) {
62 for (
size_t i = 0, I = v.size(); i < I; i++) {
63 matrix_.
entry(i, 0, v[i]);
75 Vector(
size_t d, Scalar
const& e): matrix_(d, 1, e) {
101 return matrix_.
rows();
126 return matrix_.
entry(i, 0);
135 Scalar
scalar(
size_t i, Scalar
const& s) {
136 matrix_.
entry(i, 0, s);
152 void scalars(
size_t i,
size_t j, Scalar
const& s) {
153 for (
size_t it = i; it <= j; ++it) {
154 matrix_.
entry(it, 0, s);
200 return Scalar(sqrt((
double)
length2()));
267 #endif // math_Vector_H__
Vector operator+() const
same as positive()
size_t dimension() const
return dimension
Matrix & referenceFrom(Matrix const &m)
reference
size_t rows() const
Return number of rows.
Scalar length() const
sqrt of length2
ScalarRef scalarGet(size_t i)
return i -th scalar with non-constant type
Scalar length2() const
same as (*this).dot(*this)
Vector mul(Scalar const &s) const
return (*this)*s , where s is a scalar
Matrix div(Entry const &s) const
return (*this) / s. s is a scalar
Vector operator-() const
same as negative()
Vector(Vector const &v)
constructor
Vector sub(Vector const &v) const
return (*this)-v
size_t dimension(size_t d, Scalar const &s)
resize the dimension
Matrix subMatrix(size_t rFirst, size_t rLast, size_t cFirst, size_t cLast) const
Return a rLast-rFirst+1 x cLast-cFirst+1 matrix.
Matrix< Scalar >::EntryRefK ScalarRefK
Vector & copyFrom(Vector const &v)
copy from ...
Matrix & copyFrom(Matrix const &m)
copy
Vector & operator=(Vector const &v)
same as copyFrom
Vector subVector(size_t i, size_t j)
subvector form i-th to j-th
Scalar operator*(Vector const &v) const
same as dot(v)
Vector(std::vector< Scalar > const &v)
constructor
Vector(size_t d, Scalar const &e)
constructor
Matrix transpose() const
return itself's transpose matrix
Vector operator+(Vector const &v) const
same as add(v)
Vector positive() const
return +(*this)
Scalar scalar(size_t i) const
return i -th scalar
Matrix mul(Matrix const &m) const
return (*this) times m.
EntryRef entryGet(size_t r, size_t c)
Get the entry at r x c.
Scalar operator()(size_t i) const
same as entry(i)
Matrix sub(Matrix const &m) const
return (*this) - m.
Vector(Matrix< Scalar > const &m)
constructor
Entry entry(size_t r, size_t c) const
Access the entry at r x c.
Matrix negative() const
return -(*this)
Vector negative() const
return -(*this)
Vector operator-(Vector const &v) const
same as sub(v)
Vector div(Scalar const &s) const
return (*this)/s , where s is a scalar
Vector add(Vector const &v) const
return (*this)+v
Vector operator*(Scalar const &s) const
same as mul(s)
Vector & normalized()
Let itself be normalize form.
Matrix< Scalar >::EntryRef ScalarRef
bool valid() const
Return whether dimension>0 is true or not.
Vector operator/(Scalar const &s) const
same as div(s)
Matrix< Scalar > matrix() const
Return a dimension x 1 matrix form of it.
Vector & referenceFrom(Vector const &v)
reference from ...
void scalars(size_t i, size_t j, Scalar const &s)
change i -th to j -th scalars
Scalar dot(Vector const &v) const
dot
Matrix add(Matrix const &m) const
return (*this) + m.
Scalar scalar(size_t i, Scalar const &s)
change i -th scalar
Vector normalize() const
return a normalize form of itself