Changeset 71129f
- Timestamp:
- Apr 6, 2011, 1:50:41 PM (14 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:
- 0a60ee
- Parents:
- 5605793
- git-author:
- Frederik Heber <heber@…> (04/01/11 14:28:45)
- git-committer:
- Frederik Heber <heber@…> (04/06/11 13:50:41)
- Location:
- src/LinearAlgebra
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
src/LinearAlgebra/Line.cpp
r5605793 r71129f 134 134 // cout << endl; 135 135 //} 136 if (fabs(M->Determinant()) > LINALG_MYEPSILON ) {136 if (fabs(M->Determinant()) > LINALG_MYEPSILON()) { 137 137 Log() << Verbose(1) << "Determinant of coefficient matrix is NOT zero." << endl; 138 138 throw SkewException(__FILE__,__LINE__); … … 148 148 Vector d = Line2b - Line1b; 149 149 Log() << Verbose(1) << "INFO: a = " << a << ", b = " << b << ", c = " << c << "." << endl; 150 if ((a.NormSquared() <= LINALG_MYEPSILON ) || (b.NormSquared() <= LINALG_MYEPSILON)) {150 if ((a.NormSquared() <= LINALG_MYEPSILON()) || (b.NormSquared() <= LINALG_MYEPSILON())) { 151 151 res.Zero(); 152 152 Log() << Verbose(1) << "At least one of the lines is ill-defined, i.e. offset equals second vector." << endl; … … 157 157 Vector parallel; 158 158 double factor = 0.; 159 if (fabs(a.ScalarProduct(b)*a.ScalarProduct(b)/a.NormSquared()/b.NormSquared() - 1.) <= LINALG_MYEPSILON ) {159 if (fabs(a.ScalarProduct(b)*a.ScalarProduct(b)/a.NormSquared()/b.NormSquared() - 1.) <= LINALG_MYEPSILON()) { 160 160 parallel = Line1a - Line2a; 161 161 factor = parallel.ScalarProduct(a)/a.Norm(); 162 if ((factor > -LINALG_MYEPSILON ) && (factor - 1. <= LINALG_MYEPSILON)) {162 if ((factor > -LINALG_MYEPSILON()) && (factor - 1. <= LINALG_MYEPSILON())) { 163 163 res = Line2a; 164 164 Log() << Verbose(1) << "Lines conincide." << endl; … … 167 167 parallel = Line1a - Line2b; 168 168 factor = parallel.ScalarProduct(a)/a.Norm(); 169 if ((factor > -LINALG_MYEPSILON ) && (factor - 1. <= LINALG_MYEPSILON)) {169 if ((factor > -LINALG_MYEPSILON()) && (factor - 1. <= LINALG_MYEPSILON())) { 170 170 res = Line2b; 171 171 Log() << Verbose(1) << "Lines conincide." << endl; … … 186 186 temp2.VectorProduct(b); 187 187 Log() << Verbose(1) << "INFO: temp1 = " << temp1 << ", temp2 = " << temp2 << "." << endl; 188 if (fabs(temp2.NormSquared()) > LINALG_MYEPSILON )188 if (fabs(temp2.NormSquared()) > LINALG_MYEPSILON()) 189 189 s = temp1.ScalarProduct(temp2)/temp2.NormSquared(); 190 190 else -
src/LinearAlgebra/MatrixContent.cpp
r5605793 r71129f 575 575 size_t I=0; 576 576 for (size_t i=0; i<greaterDimension; i++) { // only copy real space part 577 if (fabs(GSL_REAL(gsl_vector_complex_get(eval,i))) > LINALG_MYEPSILON ) { // only take eigenvectors with value > 0577 if (fabs(GSL_REAL(gsl_vector_complex_get(eval,i))) > LINALG_MYEPSILON()) { // only take eigenvectors with value > 0 578 578 std::cout << i << "th eigenvalue is (" << GSL_REAL(gsl_vector_complex_get(eval,i)) << "," << GSL_IMAG(gsl_vector_complex_get(eval,i)) << ")" << std::endl; 579 579 for (size_t j=0; j<greaterDimension; j++) { 580 if (fabs(GSL_IMAG(gsl_matrix_complex_get(evec,j,i))) > LINALG_MYEPSILON )580 if (fabs(GSL_IMAG(gsl_matrix_complex_get(evec,j,i))) > LINALG_MYEPSILON()) 581 581 std::cerr << "MatrixContent::transformToEigenbasis() - WARNING: eigenvectors are complex-valued!" << std::endl; 582 582 gsl_matrix_set(content, j,I, GSL_REAL(gsl_matrix_complex_get(evec,j,i))); 583 583 } 584 if (fabs(GSL_IMAG(gsl_vector_complex_get(eval,I))) > LINALG_MYEPSILON )584 if (fabs(GSL_IMAG(gsl_vector_complex_get(eval,I))) > LINALG_MYEPSILON()) 585 585 std::cerr << "MatrixContent::transformToEigenbasis() - WARNING: eigenvectors are complex-valued!" << std::endl; 586 586 gsl_vector_set(eval_real, I, GSL_REAL(gsl_vector_complex_get(eval, i))); … … 805 805 806 806 /** Equality operator. 807 * Note that we use numerical sensible checking, i.e. with threshold LINALG_MYEPSILON .807 * Note that we use numerical sensible checking, i.e. with threshold LINALG_MYEPSILON(). 808 808 * \param &rhs MatrixContent to checks against 809 809 */ … … 813 813 for(int i=rows;i--;){ 814 814 for(int j=columns;j--;){ 815 if(fabs(at(i,j)-rhs.at(i,j))>LINALG_MYEPSILON ){815 if(fabs(at(i,j)-rhs.at(i,j))>LINALG_MYEPSILON()){ 816 816 return false; 817 817 } -
src/LinearAlgebra/Plane.cpp
r5605793 r71129f 28 28 #include "CodePatterns/Verbose.hpp" 29 29 #include "Exceptions/MultipleSolutionsException.hpp" 30 #include "Helpers/defs.hpp"31 #include "Helpers/helpers.hpp"32 30 #include "LinearAlgebra/defs.hpp" 33 31 #include "LinearAlgebra/fast_functions.hpp" … … 44 42 Vector x1 = y1 -y2; 45 43 Vector x2 = y3 -y2; 46 if ((fabs(x1.Norm()) <= LINALG_MYEPSILON ) || (fabs(x2.Norm()) <= LINALG_MYEPSILON) || (fabs(x1.Angle(x2)) <= LINALG_MYEPSILON)) {44 if ((fabs(x1.Norm()) <= LINALG_MYEPSILON()) || (fabs(x2.Norm()) <= LINALG_MYEPSILON()) || (fabs(x1.Angle(x2)) <= LINALG_MYEPSILON())) { 47 45 throw LinearDependenceException(__FILE__,__LINE__); 48 46 } … … 70 68 Vector x1 = y1; 71 69 Vector x2 = y2; 72 if ((fabs(x1.Norm()) <= LINALG_MYEPSILON ) || (fabs(x2.Norm()) <= LINALG_MYEPSILON)) {70 if ((fabs(x1.Norm()) <= LINALG_MYEPSILON()) || (fabs(x2.Norm()) <= LINALG_MYEPSILON())) { 73 71 throw ZeroVectorException(__FILE__,__LINE__); 74 72 } 75 73 76 if((fabs(x1.Angle(x2)) <= LINALG_MYEPSILON )) {74 if((fabs(x1.Angle(x2)) <= LINALG_MYEPSILON())) { 77 75 throw LinearDependenceException(__FILE__,__LINE__); 78 76 } … … 181 179 182 180 double factor1 = getNormal().ScalarProduct(line.getDirection()); 183 if(fabs(factor1) <= LINALG_MYEPSILON ){181 if(fabs(factor1) <= LINALG_MYEPSILON()){ 184 182 // the plane is parallel... under all circumstances this is bad luck 185 183 // we no have either no or infinite solutions … … 227 225 Vector Plane::getClosestPoint(const Vector &point) const{ 228 226 double factor = point.ScalarProduct(*normalVector)-offset; 229 if(fabs(factor) <= LINALG_MYEPSILON ){227 if(fabs(factor) <= LINALG_MYEPSILON()){ 230 228 // the point itself lies on the plane 231 229 return point; -
src/LinearAlgebra/RealSpaceMatrix.cpp
r5605793 r71129f 257 257 RealSpaceMatrix RealSpaceMatrix::invert() const{ 258 258 double det = determinant(); 259 if(fabs(det) <= LINALG_MYEPSILON ){259 if(fabs(det) <= LINALG_MYEPSILON()){ 260 260 throw NotInvertibleException(__FILE__,__LINE__); 261 261 } -
src/LinearAlgebra/Space.cpp
r5605793 r71129f 22 22 #include <limits> 23 23 24 #include "Helpers/defs.hpp"25 24 #include "LinearAlgebra/defs.hpp" 26 25 #include "LinearAlgebra/Space.hpp" … … 43 42 44 43 bool Space::isContained(const Vector &point) const{ 45 return (distance(point)) <= LINALG_MYEPSILON ;44 return (distance(point)) <= LINALG_MYEPSILON(); 46 45 } -
src/LinearAlgebra/Vector.cpp
r5605793 r71129f 280 280 bool Vector::IsZero() const 281 281 { 282 return (fabs(at(0))+fabs(at(1))+fabs(at(2)) < MYEPSILON);282 return (fabs(at(0))+fabs(at(1))+fabs(at(2)) < LINALG_MYEPSILON()); 283 283 }; 284 284 … … 288 288 bool Vector::IsOne() const 289 289 { 290 return (fabs(Norm() - 1.) < MYEPSILON);290 return (fabs(Norm() - 1.) < LINALG_MYEPSILON()); 291 291 }; 292 292 … … 296 296 bool Vector::IsNormalTo(const Vector &normal) const 297 297 { 298 if (ScalarProduct(normal) < MYEPSILON)298 if (ScalarProduct(normal) < LINALG_MYEPSILON()) 299 299 return true; 300 300 else … … 309 309 bool status = true; 310 310 for (int i=0;i<NDIM;i++) { 311 if (fabs(at(i) - a[i]) > MYEPSILON)311 if (fabs(at(i) - a[i]) > LINALG_MYEPSILON()) 312 312 status = false; 313 313 } … … 323 323 double norm1 = Norm(), norm2 = y.Norm(); 324 324 double angle = -1; 325 if ((fabs(norm1) > MYEPSILON) && (fabs(norm2) > MYEPSILON))325 if ((fabs(norm1) > LINALG_MYEPSILON()) && (fabs(norm2) > LINALG_MYEPSILON())) 326 326 angle = this->ScalarProduct(y)/norm1/norm2; 327 // -1- MYEPSILONoccured due to numerical imprecision, catch ...328 //Log() << Verbose(2) << "INFO: acos(-1) = " << acos(-1) << ", acos(-1+ MYEPSILON) = " << acos(-1+MYEPSILON) << ", acos(-1-MYEPSILON) = " << acos(-1-MYEPSILON) << "." << endl;327 // -1-LINALG_MYEPSILON() occured due to numerical imprecision, catch ... 328 //Log() << Verbose(2) << "INFO: acos(-1) = " << acos(-1) << ", acos(-1+LINALG_MYEPSILON()) = " << acos(-1+LINALG_MYEPSILON()) << ", acos(-1-LINALG_MYEPSILON()) = " << acos(-1-LINALG_MYEPSILON()) << "." << endl; 329 329 if (angle < -1) 330 330 angle = -1; … … 525 525 SubtractVector(x1); 526 526 for (int i=NDIM;i--;) 527 result = result || (fabs(at(i)) > MYEPSILON);527 result = result || (fabs(at(i)) > LINALG_MYEPSILON()); 528 528 529 529 return result; … … 550 550 // find two components != 0 551 551 for (j=0;j<NDIM;j++){ 552 if (fabs(GivenVector[j]) > MYEPSILON)552 if (fabs(GivenVector[j]) > LINALG_MYEPSILON()) 553 553 Components[Last++] = j; 554 554 else -
src/LinearAlgebra/VectorContent.cpp
r5605793 r71129f 27 27 28 28 #include "CodePatterns/Assert.hpp" 29 #include "Helpers/defs.hpp"30 29 #include "LinearAlgebra/defs.hpp" 31 30 #include "LinearAlgebra/Vector.hpp" … … 257 256 ASSERT(dimension == b.dimension, "Dimenions of VectorContents to compare differ"); 258 257 for (size_t i=0;i<dimension;i++) 259 status = status && (fabs(at(i) - b.at(i)) <= LINALG_MYEPSILON );258 status = status && (fabs(at(i) - b.at(i)) <= LINALG_MYEPSILON()); 260 259 return status; 261 260 }; … … 376 375 for (size_t i = dimension; i--; ) 377 376 result += fabs(at(i)); 378 return (result <= LINALG_MYEPSILON );377 return (result <= LINALG_MYEPSILON()); 379 378 }; 380 379 … … 387 386 for (size_t i=dimension;--i;) 388 387 NormValue += at(i)*at(i); 389 return (fabs(NormValue - 1.) <= LINALG_MYEPSILON );388 return (fabs(NormValue - 1.) <= LINALG_MYEPSILON()); 390 389 }; 391 390 … … 452 451 double norm1 = Norm(), norm2 = y.Norm(); 453 452 double angle = -1; 454 if ((fabs(norm1) > LINALG_MYEPSILON ) && (fabs(norm2) > LINALG_MYEPSILON))453 if ((fabs(norm1) > LINALG_MYEPSILON()) && (fabs(norm2) > LINALG_MYEPSILON())) 455 454 angle = this->ScalarProduct(y)/norm1/norm2; 456 // -1-LINALG_MYEPSILON occured due to numerical imprecision, catch ...457 //Log() << Verbose(2) << "INFO: acos(-1) = " << acos(-1) << ", acos(-1+LINALG_MYEPSILON ) = " << acos(-1+LINALG_MYEPSILON) << ", acos(-1-LINALG_MYEPSILON) = " << acos(-1-LINALG_MYEPSILON) << "." << endl;455 // -1-LINALG_MYEPSILON() occured due to numerical imprecision, catch ... 456 //Log() << Verbose(2) << "INFO: acos(-1) = " << acos(-1) << ", acos(-1+LINALG_MYEPSILON()) = " << acos(-1+LINALG_MYEPSILON()) << ", acos(-1-LINALG_MYEPSILON()) = " << acos(-1-LINALG_MYEPSILON()) << "." << endl; 458 457 if (angle < -1) 459 458 angle = -1; -
src/LinearAlgebra/defs.hpp
r5605793 r71129f 18 18 #include <limits> 19 19 20 #define LINALG_MYEPSILON numeric_limits<double>::epsilon()*100. 20 #ifdef HAVE_INLINE 21 inline 22 #endif 23 double LINALG_MYEPSILON() 24 { 25 return (std::numeric_limits<double>::epsilon()*100.); 26 } 21 27 22 28 enum { NDIM = 3 }; //!< number of spatial dimensions -
src/LinearAlgebra/fast_functions.hpp
r5605793 r71129f 16 16 #include <cmath> 17 17 18 #include " Helpers/defs.hpp"18 #include "LinearAlgebra/defs.hpp" 19 19 20 20 /** … … 42 42 inline sign_t sign(double value) 43 43 { 44 if(fabs(value)< MYEPSILON){44 if(fabs(value)<LINALG_MYEPSILON()){ 45 45 return Zero; 46 46 } -
src/LinearAlgebra/unittests/LinearSystemOfEquationsUnitTest.cpp
r5605793 r71129f 118 118 s->GetSolutionAsArray(array); 119 119 for (int i=0;i<4;i++) { 120 CPPUNIT_ASSERT( fabs(x_array[i] - array[i]) <= LINALG_MYEPSILON );120 CPPUNIT_ASSERT( fabs(x_array[i] - array[i]) <= LINALG_MYEPSILON() ); 121 121 } 122 122 delete[](array); -
src/LinearAlgebra/unittests/MatrixUnitTest.cpp
r5605793 r71129f 272 272 // arbitrary rotation matrix has det = 1 273 273 res.setRotation(M_PI/3.,1.,M_PI/7.); 274 CPPUNIT_ASSERT(fabs(fabs(res.determinant()) -1.) <= LINALG_MYEPSILON );274 CPPUNIT_ASSERT(fabs(fabs(res.determinant()) -1.) <= LINALG_MYEPSILON()); 275 275 276 276 // inverse is rotation matrix with negative angles -
src/LinearAlgebra/unittests/PlaneUnitTest.cpp
r5605793 r71129f 160 160 { 161 161 Vector t = (1./3.)*(unitVec[0]+unitVec[1]+unitVec[2]); 162 CPPUNIT_ASSERT(fabs(p1->distance(zeroVec)-t.Norm()) <= LINALG_MYEPSILON );162 CPPUNIT_ASSERT(fabs(p1->distance(zeroVec)-t.Norm()) <= LINALG_MYEPSILON()); 163 163 CPPUNIT_ASSERT_EQUAL(t,p1->getClosestPoint(zeroVec)); 164 164 } 165 165 166 CPPUNIT_ASSERT(fabs(p2->distance(unitVec[2])-1) <= LINALG_MYEPSILON );166 CPPUNIT_ASSERT(fabs(p2->distance(unitVec[2])-1) <= LINALG_MYEPSILON()); 167 167 CPPUNIT_ASSERT_EQUAL(zeroVec,p2->getClosestPoint(unitVec[2])); 168 CPPUNIT_ASSERT(fabs(p3->distance(unitVec[1])-1) <= LINALG_MYEPSILON );168 CPPUNIT_ASSERT(fabs(p3->distance(unitVec[1])-1) <= LINALG_MYEPSILON()); 169 169 CPPUNIT_ASSERT_EQUAL(zeroVec,p3->getClosestPoint(unitVec[1])); 170 CPPUNIT_ASSERT(fabs(p4->distance(unitVec[0])-1) <= LINALG_MYEPSILON );170 CPPUNIT_ASSERT(fabs(p4->distance(unitVec[0])-1) <= LINALG_MYEPSILON()); 171 171 CPPUNIT_ASSERT_EQUAL(zeroVec,p4->getClosestPoint(unitVec[0])); 172 172 } -
src/LinearAlgebra/unittests/VectorUnitTest.cpp
r5605793 r71129f 28 28 #include "CodePatterns/Log.hpp" 29 29 #include "Exceptions/LinearDependenceException.hpp" 30 #include "Helpers/defs.hpp"31 30 #include "LinearAlgebra/defs.hpp" 32 31 #include "LinearAlgebra/Plane.hpp" … … 233 232 CPPUNIT_ASSERT_EQUAL( M_PI, zero.Angle(unit) ); 234 233 CPPUNIT_ASSERT_EQUAL( 0., unit.Angle(unit) ); 235 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/2. - otherunit.Angle(unit)) <= LINALG_MYEPSILON );236 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/2. - unit.Angle(notunit)) <= LINALG_MYEPSILON );237 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/4. - otherunit.Angle(notunit)) <= LINALG_MYEPSILON );234 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/2. - otherunit.Angle(unit)) <= LINALG_MYEPSILON() ); 235 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/2. - unit.Angle(notunit)) <= LINALG_MYEPSILON() ); 236 CPPUNIT_ASSERT_EQUAL( true, fabs(M_PI/4. - otherunit.Angle(notunit)) <= LINALG_MYEPSILON() ); 238 237 }; 239 238 … … 258 257 // first one-component system 259 258 CPPUNIT_ASSERT(testVector.GetOneNormalVector(unit)); 260 CPPUNIT_ASSERT(testVector.ScalarProduct(unit) <= LINALG_MYEPSILON );259 CPPUNIT_ASSERT(testVector.ScalarProduct(unit) <= LINALG_MYEPSILON()); 261 260 262 261 // second one-component system 263 262 CPPUNIT_ASSERT(testVector.GetOneNormalVector(otherunit)); 264 CPPUNIT_ASSERT(testVector.ScalarProduct(otherunit) <= LINALG_MYEPSILON );263 CPPUNIT_ASSERT(testVector.ScalarProduct(otherunit) <= LINALG_MYEPSILON()); 265 264 266 265 // first two-component system 267 266 CPPUNIT_ASSERT(testVector.GetOneNormalVector(notunit)); 268 CPPUNIT_ASSERT(testVector.ScalarProduct(notunit) <= LINALG_MYEPSILON );267 CPPUNIT_ASSERT(testVector.ScalarProduct(notunit) <= LINALG_MYEPSILON()); 269 268 270 269 // second two-component system 271 270 CPPUNIT_ASSERT(testVector.GetOneNormalVector(two)); 272 CPPUNIT_ASSERT(testVector.ScalarProduct(two) <= LINALG_MYEPSILON );271 CPPUNIT_ASSERT(testVector.ScalarProduct(two) <= LINALG_MYEPSILON()); 273 272 274 273 // three component system 275 274 CPPUNIT_ASSERT(testVector.GetOneNormalVector(three)); 276 CPPUNIT_ASSERT(testVector.ScalarProduct(three) <= LINALG_MYEPSILON );277 } 275 CPPUNIT_ASSERT(testVector.ScalarProduct(three) <= LINALG_MYEPSILON()); 276 }
Note:
See TracChangeset
for help on using the changeset viewer.