You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vectorxd.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef VECTORXD_H
  2. #define VECTORXD_H
  3. #include <QDebug>
  4. #define tmpl template<unsigned X>
  5. tmpl class VectorXD
  6. {
  7. public:
  8. VectorXD();
  9. VectorXD(const double scalars[X]);
  10. VectorXD(const VectorXD<X>& other);
  11. VectorXD<X>& setScalar(unsigned i, double value);
  12. double getScalar(unsigned i);
  13. bool isNull() const;
  14. bool equal(const VectorXD<X>& other) const;
  15. VectorXD<X>& add(double k);
  16. VectorXD<X>& add(double scalars[X]);
  17. VectorXD<X>& add(const VectorXD<X>& other);
  18. VectorXD<X>& sub(double k);
  19. VectorXD<X>& sub(double scalars[X]);
  20. VectorXD<X>& sub(const VectorXD<X>& other);
  21. VectorXD<X>& mult(double k);
  22. VectorXD<X>& div(double k);
  23. double dotProduct(const VectorXD<X>& other) const;
  24. double norm() const;
  25. VectorXD<X> operator+() const;
  26. VectorXD<X> operator+(const double& k) const;
  27. VectorXD<X>& operator+=(const double& k);
  28. VectorXD<X> operator+(const VectorXD<X>& other) const;
  29. VectorXD<X>& operator+=(const VectorXD<X>& other);
  30. VectorXD<X> operator-() const;
  31. VectorXD<X> operator-(const double& k) const;
  32. VectorXD<X>& operator-=(const double& k);
  33. VectorXD<X> operator-(const VectorXD<X>& other) const;
  34. VectorXD<X>& operator-=(const VectorXD<X>& other);
  35. VectorXD<X> operator*(const double& k) const;
  36. VectorXD<X>& operator*=(const double& k);
  37. double operator*(const VectorXD<X>& other) const;
  38. VectorXD<X>& operator*=(const VectorXD<X>& other);
  39. VectorXD<X> operator/(const double& k) const;
  40. VectorXD<X>& operator/=(const double& k);
  41. bool operator==(const VectorXD<X>& other) const;
  42. bool operator!=(const VectorXD<X>& other) const;
  43. bool operator!() const;
  44. operator bool() const;
  45. protected:
  46. double _scalars[X];
  47. };
  48. tmpl QDebug operator<<(QDebug dbg, const VectorXD<X>& v);
  49. #include "vectorxd.hxx"
  50. #endif // VECTORXD_H