123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef VECTORXD_H
- #define VECTORXD_H
-
- #include <QDebug>
-
- #define tmpl template<unsigned X>
-
- tmpl class VectorXD
- {
- public:
- VectorXD();
- VectorXD(const double scalars[X]);
- VectorXD(const VectorXD<X>& other);
-
- VectorXD<X>& setScalar(unsigned i, double value);
- double getScalar(unsigned i);
-
- bool isNull() const;
-
- bool equal(const VectorXD<X>& other) const;
-
- VectorXD<X>& add(double k);
- VectorXD<X>& add(double scalars[X]);
- VectorXD<X>& add(const VectorXD<X>& other);
-
- VectorXD<X>& sub(double k);
- VectorXD<X>& sub(double scalars[X]);
- VectorXD<X>& sub(const VectorXD<X>& other);
-
- VectorXD<X>& mult(double k);
-
- VectorXD<X>& div(double k);
-
- double dotProduct(const VectorXD<X>& other) const;
-
- double norm() const;
-
- VectorXD<X> operator+() const;
- VectorXD<X> operator+(const double& k) const;
- VectorXD<X>& operator+=(const double& k);
- VectorXD<X> operator+(const VectorXD<X>& other) const;
- VectorXD<X>& operator+=(const VectorXD<X>& other);
-
- VectorXD<X> operator-() const;
- VectorXD<X> operator-(const double& k) const;
- VectorXD<X>& operator-=(const double& k);
- VectorXD<X> operator-(const VectorXD<X>& other) const;
- VectorXD<X>& operator-=(const VectorXD<X>& other);
-
- VectorXD<X> operator*(const double& k) const;
- VectorXD<X>& operator*=(const double& k);
- double operator*(const VectorXD<X>& other) const;
- VectorXD<X>& operator*=(const VectorXD<X>& other);
-
- VectorXD<X> operator/(const double& k) const;
- VectorXD<X>& operator/=(const double& k);
-
- bool operator==(const VectorXD<X>& other) const;
- bool operator!=(const VectorXD<X>& other) const;
-
- bool operator!() const;
- operator bool() const;
-
- protected:
- double _scalars[X];
- };
-
- tmpl QDebug operator<<(QDebug dbg, const VectorXD<X>& v);
-
- #include "vectorxd.hxx"
-
- #endif // VECTORXD_H
|