[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[oMetah-devel] ometah/common geometry.cpp geometry.hpp itsPoin...
From: |
Johann |
Subject: |
[oMetah-devel] ometah/common geometry.cpp geometry.hpp itsPoin... |
Date: |
Fri, 11 Mar 2005 05:23:36 -0500 |
CVSROOT: /cvsroot/ometah
Module name: ometah
Branch:
Changes by: Johann <address@hidden> 05/03/11 10:23:36
Modified files:
common : geometry.cpp geometry.hpp itsPoint.cpp
itsPoint.hpp itsSet.cpp itsSet.hpp logic.cpp
logic.hpp matrix.cpp matrix.hpp
Log message:
* corrections of the templates
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/geometry.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/geometry.hpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsPoint.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsPoint.hpp.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsSet.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsSet.hpp.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/logic.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/logic.hpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/matrix.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/matrix.hpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: ometah/common/geometry.cpp
diff -u ometah/common/geometry.cpp:1.1 ometah/common/geometry.cpp:1.2
--- ometah/common/geometry.cpp:1.1 Thu Mar 10 18:03:41 2005
+++ ometah/common/geometry.cpp Fri Mar 11 10:23:36 2005
@@ -1,6 +1,6 @@
/***************************************************************************
- * $Id: geometry.cpp,v 1.1 2005/03/10 18:03:41 nojhan Exp $
+ * $Id: geometry.cpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -21,11 +21,11 @@
*/
//! Translate 2D rectangular coordinates to polar ones
-template<class T, class U>
-U<T> rec2pol_2D(U<T> &recVec)
+template<class T>
+T rec2pol_2D(T &recVec)
{
- T a;
- U<T> polVec;
+ typename T::value_type a;
+ T polVec;
polVec.reserve(2);
// special case, both components 0
@@ -50,10 +50,10 @@
}
//! Translate 2D polar coordinates to rectangular ones
-template<class T, class U>
-U<T> pol2rec_2D(U<T> & polVec)
+template<class T>
+T pol2rec_2D(T & polVec)
{
- U<T> recVec;
+ T recVec;
recVec.reserve(2);
recVec.push_back( polVec[0]*cos(polVec[1]) ); // x
@@ -63,12 +63,12 @@
}
//! Translate nD polar coordinates to rectangular ones
-template<class T, class U>
-U<T> pol2rec(U<T> & polVec)
+template<class T>
+T pol2rec(T & polVec)
{
- U<T> recVec; recVec.reserve( polVec.size() );
- U<T> ProjVec; ProjVec.reserve( 2 );
- T Ri, Ri_1, ai, xi;
+ T recVec; recVec.reserve( polVec.size() );
+ T ProjVec; ProjVec.reserve( 2 );
+ typename T::value_type Ri, Ri_1, ai, xi;
Ri=polVec[0];
@@ -77,7 +77,7 @@
Ri_1=Ri;
ai=polVec[i];
- U<T> Ra;
+ T Ra;
Ra.push_back(Ri_1);
Ra.push_back(ai);
@@ -94,9 +94,9 @@
//! Calculate the eucilidan distance between two vectors with n dimensions
template<class T, class U>
-T distanceEuclidian(U<T> & vecA, U<T> & vecB)
+T distanceEuclidian(U & vecA, U & vecB)
{
- U<T> squares;
+ U squares;
squares.reserve( vecA.size() );
for(unsigned int i=0; i<vecA.size(); i++) {
@@ -108,10 +108,10 @@
//! Calculate the gravity center of a matrix with n dimensions
template<class T, class U>
-U<T> gravityCenter(U< U<T> > & points, U<T> & weights)
+T gravityCenter(U & points, T & weights)
{
- T Wn = 0;
- U<T> VG;
+ typename U::value_type Wn = 0;
+ T VG;
// weight sum
unsigned int i;
@@ -124,7 +124,7 @@
// dimensions
for(j=0; j < points[0].size(); j++) {
- T g = 0;
+ typename T::value_type g = 0;
unsigned int i;
for(i=0; i < points.size(); i++) {
Index: ometah/common/geometry.hpp
diff -u ometah/common/geometry.hpp:1.2 ometah/common/geometry.hpp:1.3
--- ometah/common/geometry.hpp:1.2 Mon Feb 28 14:30:04 2005
+++ ometah/common/geometry.hpp Fri Mar 11 10:23:36 2005
@@ -2,7 +2,7 @@
/***************************************************************************
* geometry.hpp
*
- * $Id: geometry.hpp,v 1.2 2005/02/28 14:30:04 nojhan Exp $
+ * $Id: geometry.hpp,v 1.3 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -25,26 +25,26 @@
#ifndef GEOMETRY
#define GEOMETRY
-#define PI
+#define PI 3.1415926535
//! Translate 2D rectangular coordinates to polar ones
-template<class T, class U>
-U<T> rec2pol_2D(U<T> &recVec);
+template<class T>
+T rec2pol_2D(T &recVec);
//! Translate 2D polar coordinates to rectangular ones
-template<class T, class U>
-U<T> pol2rec_2D(U<T> & polVec);
+template<class T>
+T pol2rec_2D(T & polVec);
//! Translate nD polar coordinates to rectangular ones
-template<class T, class U>
-U<T> pol2rec(U<T> & polVec);
+template<class T>
+T pol2rec(T & polVec);
//! Calculate the eucilidan distance between two vectors with n dimensions
template<class T, class U>
-T distanceEuclidian(U<T> & vecA, U<T> & vecB);
+T distanceEuclidian(U & vecA, U & vecB);
//! Calculate the gravity center of a matrix with n dimensions
template<class T, class U>
-U<T> gravityCenter(U< U<T> > & points, U<T> & weights);
+T gravityCenter(U & points, T & weights);
#endif
Index: ometah/common/itsPoint.cpp
diff -u ometah/common/itsPoint.cpp:1.1 ometah/common/itsPoint.cpp:1.2
--- ometah/common/itsPoint.cpp:1.1 Thu Mar 10 18:03:41 2005
+++ ometah/common/itsPoint.cpp Fri Mar 11 10:23:36 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsPoint.cpp,v 1.1 2005/03/10 18:03:41 nojhan Exp $
+ * $Id: itsPoint.cpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -19,6 +19,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include "itsPoint.hpp"
+
//! Get the solution vector
vector<double> itsPoint::getSolution()
{
@@ -40,5 +42,5 @@
//! Set the value vector
void itsPoint::setValues(vector<double> values)
{
- this->values = values
+ this->values = values;
}
Index: ometah/common/itsPoint.hpp
diff -u ometah/common/itsPoint.hpp:1.4 ometah/common/itsPoint.hpp:1.5
--- ometah/common/itsPoint.hpp:1.4 Mon Feb 28 14:30:04 2005
+++ ometah/common/itsPoint.hpp Fri Mar 11 10:23:36 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsPoint.hpp,v 1.4 2005/02/28 14:30:04 nojhan Exp $
+ * $Id: itsPoint.hpp,v 1.5 2005/03/11 10:23:36 nojhan Exp $
* Author : Walid TFAILI <address@hidden>
****************************************************************************/
@@ -22,6 +22,9 @@
#ifndef ITSPOINT
#define ITSPOINT
+#include <vector>
+
+using namespace std;
//! The point abstraction
/*!
@@ -47,6 +50,6 @@
//! Set the value vector
void setValues(vector<double> values);
-}
+};
#endif
Index: ometah/common/itsSet.cpp
diff -u ometah/common/itsSet.cpp:1.1 ometah/common/itsSet.cpp:1.2
--- ometah/common/itsSet.cpp:1.1 Thu Mar 10 17:58:16 2005
+++ ometah/common/itsSet.cpp Fri Mar 11 10:23:36 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsSet.cpp,v 1.1 2005/03/10 17:58:16 nojhan Exp $
+ * $Id: itsSet.cpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
* Author: Walid TFAILI <address@hidden>
****************************************************************************/
@@ -21,15 +21,19 @@
+
#include "itsSet.hpp"
+
template <class T>
-void itsSet::add(T item)
+void itsSet<T>::add(T item)
{
- collection[item.name().c_str()] = item;
+ // key is based on a const char*, so we take the c_str
+ collection[item->name().c_str()] = item;
}
-void itsSet::remove(string name)
+template <class T>
+void itsSet<T>::remove(string name)
{
// find the element iterator
// erase the element
@@ -38,13 +42,14 @@
);
}
-void itsSet::choose(string name)
+template <class T>
+void itsSet<T>::choose(string name)
{
this->currentItem = name;
}
template <class T>
-T * itsSet::item()
+T * itsSet<T>::item()
{
return & collection[currentItem.c_str()];
}
Index: ometah/common/itsSet.hpp
diff -u ometah/common/itsSet.hpp:1.4 ometah/common/itsSet.hpp:1.5
--- ometah/common/itsSet.hpp:1.4 Thu Mar 10 17:58:16 2005
+++ ometah/common/itsSet.hpp Fri Mar 11 10:23:36 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsSet.hpp,v 1.4 2005/03/10 17:58:16 nojhan Exp $
+ * $Id: itsSet.hpp,v 1.5 2005/03/11 10:23:36 nojhan Exp $
* Author: Walid TFAILI <address@hidden>
****************************************************************************/
@@ -25,12 +25,13 @@
#include <string>
#include <hash_map.h>
+using namespace std;
//! A common class for all sets of objects
/*!
It uses templates to permit any kind of instanciation
*/
-template <class T, class string>
+template <class T>
class itsSet
{
protected:
@@ -39,15 +40,6 @@
/*!
A binary predicate that determines whether two keys are equal.
*/
- /*
- struct eqstr
- {
- bool operator()(string s1, string s2) const
- {
- return strcmp(s1, s2) == 0;
- }
- };
-*/
struct eqstr
{
bool operator()(const char* s1, const char* s2) const
@@ -88,6 +80,6 @@
//! Return a pointer on the current object
T * item();
-}
+};
#endif
Index: ometah/common/logic.cpp
diff -u ometah/common/logic.cpp:1.2 ometah/common/logic.cpp:1.3
--- ometah/common/logic.cpp:1.2 Sat Mar 5 22:46:17 2005
+++ ometah/common/logic.cpp Fri Mar 11 10:23:36 2005
@@ -2,7 +2,7 @@
/***************************************************************************
* logic.cpp
*
- * $Id: logic.cpp,v 1.2 2005/03/05 22:46:17 nojhan Exp $
+ * $Id: logic.cpp,v 1.3 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -22,9 +22,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include "logic.hpp"
+
//! Exclusive or
template<class T>
-bool xor(T cond1, T cond2)
+bool xOr(T cond1, T cond2)
{
if( cond1>0 && cond2>0 && cond1!=cond2 ) {
return true;
Index: ometah/common/logic.hpp
diff -u ometah/common/logic.hpp:1.1 ometah/common/logic.hpp:1.2
--- ometah/common/logic.hpp:1.1 Mon Feb 21 09:37:59 2005
+++ ometah/common/logic.hpp Fri Mar 11 10:23:36 2005
@@ -2,7 +2,7 @@
/***************************************************************************
* logic.hpp
*
- * $Id: logic.hpp,v 1.1 2005/02/21 09:37:59 nojhan Exp $
+ * $Id: logic.hpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -27,6 +27,6 @@
//! Exclusive or
template<class T>
-bool xor(T cond1, T cond2);
+bool xOr(T cond1, T cond2);
#endif
Index: ometah/common/matrix.cpp
diff -u ometah/common/matrix.cpp:1.1 ometah/common/matrix.cpp:1.2
--- ometah/common/matrix.cpp:1.1 Thu Mar 10 18:03:41 2005
+++ ometah/common/matrix.cpp Fri Mar 11 10:23:36 2005
@@ -1,6 +1,6 @@
/***************************************************************************
- * $Id: matrix.cpp,v 1.1 2005/03/10 18:03:41 nojhan Exp $
+ * $Id: matrix.cpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -21,8 +21,8 @@
*/
//! Test if a vector is comprised in bounds
-template<class T, class U>
-bool isInBounds( U<T> aVector, U<T> mins, U<T> maxs)
+template<class T>
+bool isInBounds( T aVector, T mins, T maxs)
{
unsigned int i;
for(i=0; i<aVector.size(); i++ ){
@@ -39,10 +39,10 @@
//! Force a vector to be in bounds
-template<class T, class U>
-U<T> forceBounds(U<T> aVector, U<T> mins, U<T> maxs)
+template<class T>
+T forceBounds( T aVector, T mins, T maxs)
{
- U<T> CastedVector=aVector;
+ T CastedVector=aVector;
unsigned int i;
for(i=0; i<aVector.size(); i++ ){
@@ -58,14 +58,20 @@
}
//! Create a 2D matrix filled with values
-template<class T, class U>
-U< U<T> > matrixFilled( unsigned int dimL, unsigned int dimC, T fillValue)
+/*
+ if we want a vector<vector<double> > :
+ T stand for double
+ V stand for vector<vector<double> >
+*/
+template <class T, class U>
+U matrixFilled( unsigned int dimL, unsigned int dimC, T fillValue )
{
unsigned int i;
- U<T> vec(dimC, fillValue);
+ // make the vector<double> possible at this step
+ typename U::value_type vec(dimC, fillValue);
- U< U<T> > mat;
+ U mat;
for(i=0; i<dimL; i++){
mat.push_back(vec);
}
@@ -73,12 +79,13 @@
return mat;
}
+
//! Multipliate two 2D matrix
-template<class T, class U>
-U< U<T> > multiply( U< U<T> > matA, U< U<T> > matB)
+template<class T>
+T multiply( T matA, T matB)
{
- U< U<T> > newMat;
+ T newMat;
unsigned int Al=matA.size();
unsigned int Ac=matA[0].size();
@@ -104,9 +111,9 @@
//! Multiply each term of a vector by a scalar
template<class T, class U>
-U<T> multiply(U<T> aVector, T aNb)
+U multiply(U aVector, T aNb)
{
- vector<double> res;
+ U res;
res.reserve( aVector.size() );
@@ -120,13 +127,13 @@
//! Cholesky factorization
-template<class T, class U>
-U< U<T> > cholesky( U< U<T> > A)
+template<class T>
+T cholesky( T A)
{
// FIXME : vérifier que A est symétrique définie positive
- U< U<T> > B;
+ T B;
unsigned int Al=A.size();
unsigned int Ac=A[0].size();
B = filledMatrix(Al, Ac, 0.0);
@@ -172,13 +179,13 @@
//! Transposition of a matrix
template<class T, class U>
-U< U<T> > transpose(U< U<T> > &mat)
+U transpose( T &mat)
{
unsigned int iSize=mat.size();
unsigned int jSize=mat[0].size();
- U<T> aVector;
- U< U<T> > newMat;
+ typename U::value_type aVector;
+ U newMat;
unsigned int i, j;
@@ -195,16 +202,16 @@
}
//! Calculate a variance-covariance matrix from a list of vector
-template<class T, class U>
-U< U<T> > varianceCovariance(U< U<T> > pop)
+template<class U>
+U varianceCovariance( U pop)
{
// vector of means
// => average of columns => transposition before calculations
- U<T> vecMeanCentered = mean( transpose(pop) );
+ typename U::value_type vecMeanCentered = mean( transpose(pop) );
// centered population
// same size as the initial matrix
- U< U<T> > popMeanCentered = filledMatrix(pop.size(),pop[0].size(), 0.0);
+ U popMeanCentered = filledMatrix(pop.size(),pop[0].size(), 0.0);
// centering
// rows
@@ -216,12 +223,12 @@
}
// transposition of the centered matrix
- U< U<T> > popMeanCenteredT;
+ U popMeanCenteredT;
popMeanCenteredT = transpose(popMeanCentered);
// final varaince/covariance matrix
- U< U<T> > popVar;
+ U popVar;
popVar = multiply( popMeanCenteredT, popMeanCentered );
// multiplication by n-1 :
@@ -236,9 +243,9 @@
//! Calculate the mean vector of a matrix
template<class T, class U>
-U<T> mean( U< U<T> > mat)
+T mean( U mat)
{
- U<T> moyDim;
+ T moyDim;
moyDim.reserve(mat.size());
unsigned int i,a;
@@ -252,7 +259,7 @@
//! Calculate the mean of a vector
template<class T, class U>
-T mean(U<T> aVector, int begin=0, int during=0)
+T mean(U aVector, int begin=0, int during=0)
{
if (during==0) {
during = aVector.size() - begin; // if no end : take all
@@ -268,7 +275,7 @@
//! Calculate the sum of a vector
template<class T, class U>
-T sum(U<T> aVector, int begin=0, int during=0)
+T sum(U aVector, int begin=0, int during=0)
{
if (during==0) {
during = aVector.size() - begin;
@@ -286,13 +293,13 @@
//! Calculate the standard deviation of a vector
template<class T, class U>
-T std(U<T> aVector, int begin=0, int during=0)
+T stdev(U aVector, int begin=0, int during=0)
{
if (during==0) {
during = aVector.size() - begin;
}
- U<T> deviation;
+ U deviation;
T aMean, aDev, aStd;
aMean = mean(aVector, begin, during); // mean
@@ -310,7 +317,7 @@
//! Find the minimum value of a vector
template<class T, class U>
-T min(U<T> aVector, int begin=0, int during=0)
+T min(U aVector, int begin=0, int during=0)
{
if (during==0) {
during = aVector.size() - begin;
@@ -328,10 +335,10 @@
}
//! Substraction of two vectors, terms by terms
-template<class T, class U>
-U<T> substraction(U<T> from, U<T> that)
+template<class T>
+T substraction(T from, T that)
{
- U<T> res;
+ T res;
res.reserve(from.size());
@@ -342,10 +349,10 @@
}
//! Addition of two vectors, terms by terms
-template<class T, class U>
-U<T> addition(U<T> from, U<T> that)
+template<class T>
+T addition(T from, T that)
{
- U<T> res;
+ T res;
res.reserve( from.size() );
@@ -356,8 +363,8 @@
}
//! Calculate the absolute values of a vector
-template<class T, class U>
-U<T> abs(U<T> aVector)
+template<class T>
+T abs(T aVector)
{
for(unsigned int i=0; i<aVector.size(); i++){
aVector[i] = abs(aVector[i]);
Index: ometah/common/matrix.hpp
diff -u ometah/common/matrix.hpp:1.2 ometah/common/matrix.hpp:1.3
--- ometah/common/matrix.hpp:1.2 Mon Feb 28 14:30:04 2005
+++ ometah/common/matrix.hpp Fri Mar 11 10:23:36 2005
@@ -2,7 +2,7 @@
/***************************************************************************
* matrix.hpp
*
- * $Id: matrix.hpp,v 1.2 2005/02/28 14:30:04 nojhan Exp $
+ * $Id: matrix.hpp,v 1.3 2005/03/11 10:23:36 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -26,67 +26,67 @@
#define MATRIX
//! Test if a vector is comprised in bounds
-template<class T, class U>
-bool isInBounds( U<T> aVector, U<T> mins, U<T> maxs);
+template<class T>
+bool isInBounds( T aVector, T mins, T maxs );
//! Force a vector to be in bounds
-template<class T, class U>
-U<T> forceBounds(U<T> aVector, U<T> mins, U<T> maxs);
+template<class T>
+T forceBounds( T aVector, T mins, T maxs );
//! Create a 2D matrix filled with values
template<class T, class U>
-U< U<T> > matrixFilled( unsigned int dimL, unsigned int dimC, T fillValue);
+U matrixFilled( unsigned int dimL, unsigned int dimC, T fillValue );
//! Multipliate two 2D matrix
-template<class T, class U>
-U< U<T> > multiply( U< U<T> > matA, U< U<T> > matB);
+template<class T>
+T multiply( T matA, T matB );
//! Multiply each term of a vector by a scalar
template<class T, class U>
-U<T> multiply(U<T> aVector, T aNb);
+U multiply( U aVector, T aNb );
//! Cholesky factorization
-template<class T, class U>
-U< U<T> > cholesky( U< U<T> > A);
+template<class T>
+T cholesky( T A );
//! Transposition of a matrix
template<class T, class U>
-U< U<T> > transpose(U< U<T> > &mat);
+U transpose( T &mat );
//! Calculate a variance-covariance matrix from a list of vector
-template<class T, class U>
-U< U<T> > varianceCovariance(U< U<T> > pop);
+template<class U>
+U varianceCovariance( U pop );
//! Calculate the mean vector of a matrix
template<class T, class U>
-U<T> mean( U< U<T> > mat);
+T mean( U mat );
//! Calculate the mean of a vector
template<class T, class U>
-T mean(U<T> aVector, int Begin=0, int During=0);
+T mean( U aVector, int Begin=0, int During=0 );
//! Calculate the sum of a vector
template<class T, class U>
-T sum(U<T> aVector, int Begin=0, int During=0);
+T sum( U aVector, int Begin=0, int During=0 );
//! Calculate the standard deviation of a vector
template<class T, class U>
-T std(U<T> aVector, int Begin=0, int During=0);
+T stdev( U aVector, int Begin=0, int During=0 );
//! Find the minimum value of a vector
template<class T, class U>
-T min(U<T> aVector, int Begin=0, int During=0);
+T min( U aVector, int Begin=0, int During=0 );
//! Substraction of two vectors, terms by terms
-template<class T, class U>
-U<T> substraction(U<T> from, U<T> that);
+template<class T>
+T substraction( T from, T that );
//! Addition of two vectors, terms by terms
-template<class T, class U>
-U<T> addition(U<T> from, U<T> that);
+template<class T>
+T addition( T from, T that );
//! Calculate the absolute values of a vector
-template<class T, class U>
-U<T> abs(U<T> aVector);
+template<class T>
+T abs( T aVector );
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [oMetah-devel] ometah/common geometry.cpp geometry.hpp itsPoin...,
Johann <=