44 template <
typename TSpace>
46 typename TSpace::Dimension
55 template <
typename TSpace>
57 typename TSpace::Dimension
70 template <
typename TSpace>
75 out <<
"[Lattice n=" << myN <<
" m=" << myM <<
"]";
82 template <
typename TSpace>
96 template <
typename TSpace>
100 if ( myX0 != 0 )
delete[] myX0;
101 if ( myV != 0 )
delete[] myV;
108 template <
typename TSpace>
111 : myN( 0 ), myM( 0 ), myX0( 0 ), myV( 0 )
119 template <
typename TSpace>
121 : myN( other.myN ), myM( other.myM ), myX0( 0 ), myV( 0 )
123 if ( (
myN == 0 ) || (
myM == 0 ) )
return;
131 myV[ m*i + j ] = other.
myV[ m*i + j ];
140 template <
typename TSpace>
145 if (
this != &other )
147 if ( ( other.
myM != myM ) || ( other.
myN != myN ) )
149 if ( myX0 != 0 )
delete[] myX0;
150 if ( myV != 0 )
delete[] myV;
153 if ( ( myN == 0 ) || ( myM == 0 ) )
160 myX0 =
new double[ myM ];
161 myV =
new double[ myM * myN ];
165 myX0[ j ] = other.
myX0[ j ];
169 myV[ m*i + j ] = other.
myV[ m*i + j ];
183 template <
typename TSpace>
190 if ( ( aM != myM ) || ( aN != myN ) )
194 if ( myX0 != 0 )
delete[] myX0;
195 if ( myV != 0 )
delete[] myV;
196 myX0 =
new double[ aM ];
197 myV =
new double[ aM*aN ];
204 myV[ aM*i + j ] = ( j == ( i % aM ) ) ? dh : 0.0;
208 template <
typename TSpace>
213 if ( myX0 != 0 )
delete[] myX0;
214 if ( myV != 0 )
delete[] myV;
225 template <
typename TSpace>
240 template <
typename TSpace>
245 double* off_v = myV + myM*i;
257 template <
typename TSpace>
271 x[ j ] += (*off_v) * pi;
283 template <
typename TSpace>
297 x[ j ] += (*off_v) * pi;
309 template <
typename TSpace>
315 x[ j ] = (
float) myX0[ j ];
323 x[ j ] += (float) ((*off_v) * pi);
335 template <
typename TSpace>
341 x[ j ] = (
float) myX0[ j ];
349 x[ j ] += (float) ((*off_v) * pi);
359 template <
typename TSpace>
365 object.selfDisplay( out );