Changeset 753f02 for src/vector.hpp
- Timestamp:
- Apr 28, 2010, 2:52:56 PM (15 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 8cbb97
- Parents:
- 1bd79e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/vector.hpp
r1bd79e r753f02 37 37 // Method implemented by forwarding to the Representation 38 38 39 virtualdouble DistanceSquared(const Vector &y) const;40 virtualdouble DistanceToPlane(const Vector &PlaneNormal, const Vector &PlaneOffset) const;41 virtualdouble PeriodicDistance(const Vector &y, const double * const cell_size) const;42 virtualdouble PeriodicDistanceSquared(const Vector &y, const double * const cell_size) const;43 virtualdouble ScalarProduct(const Vector &y) const;44 virtualdouble Angle(const Vector &y) const;45 virtualbool IsZero() const;46 virtualbool IsOne() const;47 virtualbool IsNormalTo(const Vector &normal) const;48 virtualbool IsEqualTo(const Vector &a) const;39 double DistanceSquared(const Vector &y) const; 40 double DistanceToPlane(const Vector &PlaneNormal, const Vector &PlaneOffset) const; 41 double PeriodicDistance(const Vector &y, const double * const cell_size) const; 42 double PeriodicDistanceSquared(const Vector &y, const double * const cell_size) const; 43 double ScalarProduct(const Vector &y) const; 44 double Angle(const Vector &y) const; 45 bool IsZero() const; 46 bool IsOne() const; 47 bool IsNormalTo(const Vector &normal) const; 48 bool IsEqualTo(const Vector &a) const; 49 49 50 v irtual void AddVector(const Vector &y);51 v irtual void SubtractVector(const Vector &y);52 v irtual void VectorProduct(const Vector &y);53 v irtual void ProjectOntoPlane(const Vector &y);54 v irtual void ProjectIt(const Vector &y);55 virtualVector Projection(const Vector &y) const;56 v irtual void Mirror(const Vector &x);57 v irtual void ScaleAll(const double *factor);58 v irtual void Scale(const double factor);59 v irtual void MatrixMultiplication(const double * const M);60 virtualbool InverseMatrixMultiplication(const double * const M);61 v irtual void KeepPeriodic(const double * const matrix);62 virtualbool GetOneNormalVector(const Vector &x1);63 virtualbool MakeNormalTo(const Vector &y1);64 virtualbool IsInParallelepiped(const Vector &offset, const double * const parallelepiped) const;65 v irtual void WrapPeriodically(const double * const M, const double * const Minv);50 void AddVector(const Vector &y); 51 void SubtractVector(const Vector &y); 52 void VectorProduct(const Vector &y); 53 void ProjectOntoPlane(const Vector &y); 54 void ProjectIt(const Vector &y); 55 Vector Projection(const Vector &y) const; 56 void Mirror(const Vector &x); 57 void ScaleAll(const double *factor); 58 void Scale(const double factor); 59 void MatrixMultiplication(const double * const M); 60 bool InverseMatrixMultiplication(const double * const M); 61 void KeepPeriodic(const double * const matrix); 62 bool GetOneNormalVector(const Vector &x1); 63 bool MakeNormalTo(const Vector &y1); 64 bool IsInParallelepiped(const Vector &offset, const double * const parallelepiped) const; 65 void WrapPeriodically(const double * const M, const double * const Minv); 66 66 67 67 // Accessors ussually come in pairs... and sometimes even more than that 68 virtualdouble& operator[](size_t i);69 virtualconst double& operator[](size_t i) const;68 double& operator[](size_t i); 69 const double& operator[](size_t i) const; 70 70 double& at(size_t i); 71 71 const double& at(size_t i) const; 72 72 73 73 // Assignment operator 74 virtualVector &operator=(const Vector& src);74 Vector &operator=(const Vector& src); 75 75 76 76 // Access to internal structure 77 virtualdouble* get();77 double* get(); 78 78 79 79 // Methods that are derived directly from other methods … … 94 94 95 95 protected: 96 typedef std::auto_ptr<Vector> rep_ptr;97 Vector(Baseconstructor);98 Vector(Baseconstructor,const Vector*);99 static Vector VecFromRep(const Vector*);100 96 101 97 private: 102 // method used for protection, i.e. to avoid infinite recursion 103 // when our internal rep becomes messed up 104 virtual bool isBaseClass() const; 105 virtual Vector* clone() const; 106 // this is used to represent the vector internally 107 rep_ptr rep; 98 double x[NDIM]; 108 99 109 100 };
Note:
See TracChangeset
for help on using the changeset viewer.