29 #ifndef __VECTORIMPL_HPP
30 #define __VECTORIMPL_HPP
42 m_pV = NullPointer< T >();
48 m_pV = NullPointer< T >();
50 memcpy( m_pV , V.m_pV , m_N*
sizeof(T) );
56 m_pV = NullPointer< T >();
64 if( m_N ) DeletePointer( m_pV );
66 m_pV = NewPointer< T >( N );
68 if( N ) memset( m_pV , 0 , N*
sizeof(T) );
75 memcpy( m_pV, pV, N*
sizeof(T) );
83 memcpy( m_pV, V.m_pV, m_N*
sizeof(T) );
114 for (
size_t i=0; i<m_N; i++) V.m_pV[i] *= A;
120 for (
size_t i=0; i<m_N; i++) m_pV[i] *= A;
127 for (
size_t i=0; i<m_N; i++) V.m_pV[i] /= A;
133 for (
size_t i=0; i<m_N; i++) m_pV[i] /= A;
140 for (
size_t i=0; i<m_N; i++) V.m_pV[i] = m_pV[i] + V0.m_pV[i];
146 for (
size_t i=0 ; i<m_N ; i++ ) m_pV[i] += V.m_pV[i];
153 for (
size_t i=0; i<m_N; i++) V.m_pV[i] = m_pV[i] - V0.m_pV[i];
159 for (
size_t i=0; i<m_N; i++) m_pV[i] -= V.m_pV[i];
167 for (
size_t i=0; i<m_N; i++) V.m_pV[i] = -m_pV[i];
174 for(
int c=0 ; c<count ; c++ )
for(
size_t i=0 ; i<m_N ; i++ ) m_pV[i] += V[c].m_pV[i];
181 for (
size_t i=0; i<m_N; i++) m_pV[i] += V.m_pV[i]*scale;
187 for (
size_t i=0; i<m_N; i++) m_pV[i] -= V.m_pV[i]*scale;
194 for(
size_t i=0 ; i<V1.m_N ; i++ ) Out.m_pV[i]=V1.m_pV[i]*scale1+V2.m_pV[i]*scale2;
199 for(
size_t i=0 ; i<V1.m_N ; i++ ) Out.m_pV[i]=V1.m_pV[i]*scale1+V2.m_pV[i];
206 for (
size_t i = 0; i<m_N; i++)
207 N += pow(m_pV[i], (T)Ln);
208 return pow(N, (T)1.0/Ln);
214 for (
size_t i = 0; i<m_N; i++)
221 for (
size_t i = 0; i<m_N; i++)
222 N += m_pV[i]*m_pV[i];
229 for(
size_t i=0 ; i<m_N ; i++ ) V0 += m_pV[i]*V.m_pV[i];
236 FILE* fp = fopen( fileName ,
"rb" );
237 if( !fp )
return false;
238 bool ret = read( fp );
245 FILE* fp = fopen( fileName ,
"wb" );
246 if( !fp )
return false;
247 bool ret = write( fp );
255 if( fread( &d ,
sizeof(
int) , 1 , fp )!=1 )
return false;
257 if( fread( &(*
this)[0] ,
sizeof( T ) , d , fp )!=d )
return false;
263 if( fwrite( &m_N ,
sizeof(
int ) , 1 , fp )!=1 )
return false;
264 if( fwrite( &(*
this)[0] ,
sizeof( T ) , m_N , fp )!=m_N )
return false;