Changes in src/vector.hpp [9c20aa:2319ed]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/vector.hpp
r9c20aa r2319ed 8 8 */ 9 9 class Vector { 10 11 10 public: 11 double x[NDIM]; 12 12 13 14 15 13 Vector(); 14 Vector(double x1, double x2, double x3); 15 ~Vector(); 16 16 17 18 19 20 21 22 23 double Norm() const;24 double Angle(const Vector *y) const;25 bool IsNull();17 double Distance(const Vector *y) const; 18 double DistanceSquared(const Vector *y) const; 19 double PeriodicDistance(const Vector *y, const double *cell_size) const; 20 double PeriodicDistanceSquared(const Vector *y, const double *cell_size) const; 21 double ScalarProduct(const Vector *y) const; 22 double Projection(const Vector *y) const; 23 double Norm() const; 24 double NormSquared() const; 25 double Angle(const Vector *y) const; 26 26 27 28 void AddVector(const Vector *y); 29 void SubtractVector(const Vector *y); 30 void CopyVector(const Vector *y); 31 void RotateVector(const Vector *y, const double alpha); 32 void VectorProduct(const Vector *y); 33 void ProjectOntoPlane(const Vector *y); 34 void Zero(); 35 void One(double one); 36 void Init(double x1, double x2, double x3); 37 void Normalize(); 38 void Translate(const Vector *x); 39 void Mirror(const Vector *x); 40 void Scale(double **factor); 41 void Scale(double *factor); 42 void Scale(double factor); 43 void MatrixMultiplication(double *M); 44 void InverseMatrixMultiplication(double *M); 45 void KeepPeriodic(ofstream *out, double *matrix); 46 void LinearCombinationOfVectors(const Vector *x1, const Vector *x2, const Vector *x3, double *factors); 47 double CutsPlaneAt(Vector *A, Vector *B, Vector *C); 48 bool GetOneNormalVector(const Vector *x1); 49 bool MakeNormalVector(const Vector *y1); 50 bool MakeNormalVector(const Vector *y1, const Vector *y2); 51 bool MakeNormalVector(const Vector *x1, const Vector *x2, const Vector *x3); 52 bool SolveSystem(Vector *x1, Vector *x2, Vector *y, double alpha, double beta, double c); 53 bool LSQdistance(Vector **vectors, int dim); 54 void AskPosition(double *cell_size, bool check); 55 bool Output(ofstream *out) const; 27 void AddVector(const Vector *y); 28 void SubtractVector(const Vector *y); 29 void CopyVector(const Vector *y); 30 void RotateVector(const Vector *y, const double alpha); 31 void VectorProduct(const Vector *y); 32 void ProjectOntoPlane(const Vector *y); 33 void Zero(); 34 void One(double one); 35 void Init(double x1, double x2, double x3); 36 void Normalize(); 37 void Translate(const Vector *x); 38 void Mirror(const Vector *x); 39 void Scale(double **factor); 40 void Scale(double *factor); 41 void Scale(double factor); 42 void MatrixMultiplication(double *M); 43 double * InverseMatrix(double *A); 44 void InverseMatrixMultiplication(double *M); 45 void KeepPeriodic(ofstream *out, double *matrix); 46 void LinearCombinationOfVectors(const Vector *x1, const Vector *x2, const Vector *x3, double *factors); 47 double CutsPlaneAt(Vector *A, Vector *B, Vector *C); 48 bool GetIntersectionWithPlane(ofstream *out, Vector *PlaneNormal, Vector *PlaneOffset, Vector *LineVector, Vector *LineVector2); 49 bool GetIntersectionOfTwoLinesOnPlane(ofstream *out, Vector *Line1a, Vector *Line1b, Vector *Line2a, Vector *Line2b); 50 bool GetOneNormalVector(const Vector *x1); 51 bool MakeNormalVector(const Vector *y1); 52 bool MakeNormalVector(const Vector *y1, const Vector *y2); 53 bool MakeNormalVector(const Vector *x1, const Vector *x2, const Vector *x3); 54 bool SolveSystem(Vector *x1, Vector *x2, Vector *y, double alpha, double beta, double c); 55 bool LSQdistance(Vector **vectors, int dim); 56 void AskPosition(double *cell_size, bool check); 57 bool Output(ofstream *out) const; 56 58 }; 57 59 58 ostream & operator << (ostream& ost, constVector &m);60 ostream & operator << (ostream& ost, Vector &m); 59 61 //Vector& operator+=(Vector& a, const Vector& b); 60 62 //Vector& operator*=(Vector& a, const double m);
Note:
See TracChangeset
for help on using the changeset viewer.