X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Finclude%2Fvmfuncs.h;h=9abbaf6ff8606b236155ac829921823f5e17dca9;hb=91dff2fda3bda6f53a57812e82a5d36f4b61322d;hp=976cd2ce70bb74ec31cfa5b58b29cd5eadf70fd1;hpb=c5feadbb145eecf6d73f793535b7e23eb18db2cb;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/include/vmfuncs.h b/lib/maracasVisuLib/include/vmfuncs.h index 976cd2c..9abbaf6 100644 --- a/lib/maracasVisuLib/include/vmfuncs.h +++ b/lib/maracasVisuLib/include/vmfuncs.h @@ -29,6 +29,8 @@ #include #include "mathdefs.h" +#include + using namespace std; namespace gtm @@ -47,14 +49,14 @@ namespace gtm */ template< class T > inline - void VectorPrint( std::ostream& o, T* v, uint n, bool col ) + void VectorPrint( std::ostream& o, T* v, uint32_t n, bool col ) { - uint i; + uint32_t i; o << n << ": ["; if( col ) o << endl; else o << " "; - for( uint i = 0; i < n; i++ ) { + for( uint32_t i = 0; i < n; i++ ) { o << v[ i ]; if( col ) o << endl; @@ -72,7 +74,7 @@ namespace gtm */ template< class T > inline - T* VectorAllocateMemory( uint n ) + T* VectorAllocateMemory( uint32_t n ) { T* v = new T[ n ]; @@ -103,7 +105,7 @@ namespace gtm */ template< class T > inline - void VectorAssignMemory( T* v, T* v_o, uint n ) + void VectorAssignMemory( T* v, T* v_o, uint32_t n ) { memcpy( v, v_o, sizeof( T ) * n ); @@ -117,7 +119,7 @@ namespace gtm */ template< class T > inline - T* VectorCopyMemory( T* v, uint n ) + T* VectorCopyMemory( T* v, uint32_t n ) { T* n_v = VectorAllocateMemory< T >( n ); VectorAssignMemory< T >( n_v, v, n ); @@ -134,9 +136,9 @@ namespace gtm */ template< class T > inline - void VectorAssignScalar( T* v, T s, uint n ) + void VectorAssignScalar( T* v, T s, uint32_t n ) { - uint i; + uint32_t i; for( i = 0; i < n; v[ i ] = s, i++ ); @@ -153,9 +155,9 @@ namespace gtm */ template< class T > inline - void VectorMatrixCast( T** ma, T* v, uint n, uint m, bool col ) + void VectorMatrixCast( T** ma, T* v, uint32_t n, uint32_t m, bool col ) { - uint i; + uint32_t i; for( i = 0; i < ( ( col )? m: n ); i++ ) ma[ ( col )? n: i ][ ( col )? i: m ] = v[ i ]; @@ -172,9 +174,9 @@ namespace gtm */ template< class T > inline - void VectorAdd( T* v, T* v_l, T* v_r, uint n ) + void VectorAdd( T* v, T* v_l, T* v_r, uint32_t n ) { - uint i; + uint32_t i; for( i = 0; i < n; v[ i ] = v_l[ i ] + v_r[ i ], i++ ); @@ -190,9 +192,9 @@ namespace gtm */ template< class T > inline - void VectorSubtract( T* v, T* v_l, T* v_r, uint n ) + void VectorSubtract( T* v, T* v_l, T* v_r, uint32_t n ) { - uint i; + uint32_t i; for( i = 0; i < n; v[ i ] = v_l[ i ] - v_r[ i ], i++ ); @@ -225,10 +227,10 @@ namespace gtm */ template< class T > inline - T VectorDotProduct( T* v_l, T* v_r, uint n ) + T VectorDotProduct( T* v_l, T* v_r, uint32_t n ) { T ret; - uint i; + uint32_t i; for( i = 0, ret = ( T )0; i < n; ret = ret + ( v_l[ i ] * v_r[ i ] ), i++ ); return( ret ); @@ -245,9 +247,9 @@ namespace gtm */ template< class T > inline - void VectorScalarProduct( T* v, T* v_l, T s, uint n ) + void VectorScalarProduct( T* v, T* v_l, T s, uint32_t n ) { - uint i; + uint32_t i; for( i = 0; i < n; v[ i ] = v_l[ i ] * s, i++ ); @@ -261,7 +263,7 @@ namespace gtm */ template< class T > inline - T VectorNorm( T* v, uint n ) + T VectorNorm( T* v, uint32_t n ) { return( ( T )( sqrt( ( double )( VectorDotProduct< T >( v, v, n ) ) ) ) ); @@ -276,9 +278,9 @@ namespace gtm */ template< class T > inline - void VectorNormalize( T* v, T* v_o, uint n ) + void VectorNormalize( T* v, T* v_o, uint32_t n ) { - uint i; + uint32_t i; T norm = VectorNorm< T >( v_o, n ); norm = ( norm == ( T )0 )? ( T )1: norm; @@ -300,9 +302,9 @@ namespace gtm */ template< class T > inline - void MatrixPrint( std::ostream& o, T** ma, uint n, uint m ) + void MatrixPrint( std::ostream& o, T** ma, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; o << n << " x " << m << endl; for( j = 0; j < m; j++ ) { @@ -322,9 +324,9 @@ namespace gtm */ template< class T > inline - T** MatrixAllocateMemory( uint n, uint m ) + T** MatrixAllocateMemory( uint32_t n, uint32_t m ) { - uint i; + uint32_t i; T** ma = new T*[ n ]; for( i = 0; i < n; i++ ) { @@ -347,9 +349,9 @@ namespace gtm */ template< class T > inline - void MatrixAssignMemory( T** ma, T** ma_o, uint n, uint m ) + void MatrixAssignMemory( T** ma, T** ma_o, uint32_t n, uint32_t m ) { - uint i; + uint32_t i; for( i = 0; i < n; i++ ) memcpy( ma[ i ], ma_o[ i ], sizeof( T ) * m ); @@ -365,7 +367,7 @@ namespace gtm */ template< class T > inline - T** MatrixCopyMemory( T** ma, uint n, uint m ) + T** MatrixCopyMemory( T** ma, uint32_t n, uint32_t m ) { T** n_ma = MatrixAllocateMemory< T >( n, m ); MatrixAssignMemory< T >( n_ma, ma, n, m ); @@ -383,9 +385,9 @@ namespace gtm */ template< class T > inline - void MatrixAssignScalar( T** ma, T s, uint n, uint m ) + void MatrixAssignScalar( T** ma, T s, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; for( i = 0; i < n; i++ ) for( j = 0; j < m; j++ ) @@ -404,9 +406,9 @@ namespace gtm */ template< class T > inline - void MatrixVectorCast( T* v, T** ma, uint n, uint m, bool col ) + void MatrixVectorCast( T* v, T** ma, uint32_t n, uint32_t m, bool col ) { - uint i; + uint32_t i; for( i = 0; i < ( ( col )? m: n ); i++ ) v[ i ] = ma[ ( col )? n: i ][ ( col )? i: m ]; @@ -421,9 +423,9 @@ namespace gtm */ template< class T > inline - void MatrixFreeMemory( T** ma, uint n ) + void MatrixFreeMemory( T** ma, uint32_t n ) { - uint i; + uint32_t i; if( ma ) { @@ -446,9 +448,9 @@ namespace gtm */ template< class T > inline - void MatrixAdd( T** ma, T** ma_l, T** ma_r, uint n, uint m ) + void MatrixAdd( T** ma, T** ma_l, T** ma_r, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; for( i = 0; i < n; i++ ) for( j = 0; j < m; ma[ i ][ j ] = ma_l[ i ][ j ] + ma_r[ i ][ j ], j++ ); @@ -466,9 +468,9 @@ namespace gtm */ template< class T > inline - void MatrixSubtract( T** ma, T** ma_l, T** ma_r, uint n, uint m ) + void MatrixSubtract( T** ma, T** ma_l, T** ma_r, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; for( i = 0; i < n; i++ ) for( j = 0; j < m; ma[ i ][ j ] = ma_l[ i ][ j ] - ma_r[ i ][ j ], j++ ); @@ -487,7 +489,7 @@ namespace gtm */ template< class T > inline - void MatrixProduct( T** ma, T** ma_l, T** ma_r, uint n, uint m, uint nr ) + void MatrixProduct( T** ma, T** ma_l, T** ma_r, uint32_t n, uint32_t m, uint32_t nr ) { unsigned i, j, k; @@ -512,9 +514,9 @@ namespace gtm */ template< class T > inline - void MatrixScalarProduct( T** ma, T** ma_l, T s, uint n, uint m ) + void MatrixScalarProduct( T** ma, T** ma_l, T s, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; for( i = 0; i < n; i++ ) for( j = 0; j < m; ma[ i ][ j ] = ma_l[ i ][ j ] * s, j++ ); @@ -533,9 +535,9 @@ namespace gtm */ template< class T > inline - void MatrixCofactor( T** ma, T** ma_o, uint i, uint j, uint n, uint m ) + void MatrixCofactor( T** ma, T** ma_o, uint32_t i, uint32_t j, uint32_t n, uint32_t m ) { - uint k, l; + uint32_t k, l; for( k = 0; k < i; k++ ) { @@ -561,9 +563,9 @@ namespace gtm */ template< class T > inline - T MatrixDeterminant( T** ma, uint n ) + T MatrixDeterminant( T** ma, uint32_t n ) { - uint k; + uint32_t k; T** tmp = NULL; T ret = ( T )0, c; @@ -614,9 +616,9 @@ namespace gtm */ template< class T > inline - void MatrixInverseAdjoint( T** ma, T** ma_o, uint n ) + void MatrixInverseAdjoint( T** ma, T** ma_o, uint32_t n ) { - uint i, j; + uint32_t i, j; T** tmp; T c; @@ -649,9 +651,9 @@ namespace gtm */ template< class T > inline - void MatrixInverseGauss( T** ma, T** ma_o, uint n ) + void MatrixInverseGauss( T** ma, T** ma_o, uint32_t n ) { - uint i, j, k, n2 = 2 * n; + uint32_t i, j, k, n2 = 2 * n; T** ma_a = MatrixAllocateMemory< T >( n2, n ); T a, b; @@ -699,9 +701,9 @@ namespace gtm */ template< class T > inline - void MatrixTranspose( T** ma, T** ma_o, uint n, uint m ) + void MatrixTranspose( T** ma, T** ma_o, uint32_t n, uint32_t m ) { - uint i, j; + uint32_t i, j; for( i = 0; i < m; i++ ) for( j = 0; j < n; ma[ i ][ j ] = ma_o[ j ][ i ], j++ ); @@ -716,9 +718,9 @@ namespace gtm */ template< class T > inline - void MatrixLoadIdentity( T** ma, uint n ) + void MatrixLoadIdentity( T** ma, uint32_t n ) { - uint i, j; + uint32_t i, j; for( i = 0; i < n; i++ ) for( j = 0; j < n; ma[ i ][ j ] = ( i == j )? ( T )1: ( T )0, j++ );