1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #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>& mult(const VectorXD<X>& k);
-
- VectorXD<X>& div(double k);
-
- double dotProduct(const VectorXD<X>& other) const;
- VectorXD<X>& crossProduct(const VectorXD<X>& other);
-
- 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);
- 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);
-
- 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
|