Changes in src/molecule_template.hpp [d74077:273382]
- File:
-
- 1 edited
-
src/molecule_template.hpp (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/molecule_template.hpp
rd74077 r273382 19 19 /********************************************** declarations *******************************/ 20 20 21 // ================== Acting on all Vectors ========================== // 22 23 // zero arguments 24 template <typename res> void molecule::ActOnAllVectors( res (Vector::*f)() ) const 25 { 26 atom *Walker = start; 27 while (Walker->next != end) { 28 Walker = Walker->next; 29 ((Walker->node)->*f)(); 30 } 31 }; 32 template <typename res> void molecule::ActOnAllVectors( res (Vector::*f)() const ) const 33 { 34 atom *Walker = start; 35 while (Walker->next != end) { 36 Walker = Walker->next; 37 ((Walker->node)->*f)(); 38 } 39 }; 40 // one argument 41 template <typename res, typename T> void molecule::ActOnAllVectors( res (Vector::*f)(T), T t ) const 42 { 43 atom *Walker = start; 44 while (Walker->next != end) { 45 Walker = Walker->next; 46 ((Walker->node)->*f)(t); 47 } 48 }; 49 template <typename res, typename T> void molecule::ActOnAllVectors( res (Vector::*f)(T) const, T t ) const 50 { 51 atom *Walker = start; 52 while (Walker->next != end) { 53 Walker = Walker->next; 54 ((Walker->node)->*f)(t); 55 } 56 }; 57 template <typename res, typename T> void molecule::ActOnAllVectors( res (Vector::*f)(T&), T &t ) const 58 { 59 atom *Walker = start; 60 while (Walker->next != end) { 61 Walker = Walker->next; 62 ((Walker->node)->*f)(t); 63 } 64 }; 65 template <typename res, typename T> void molecule::ActOnAllVectors( res (Vector::*f)(T&) const, T &t ) const 66 { 67 atom *Walker = start; 68 while (Walker->next != end) { 69 Walker = Walker->next; 70 ((Walker->node)->*f)(t); 71 } 72 }; 73 // two arguments 74 template <typename res, typename T, typename U> void molecule::ActOnAllVectors( res (Vector::*f)(T, U), T t, U u ) const 75 { 76 atom *Walker = start; 77 while (Walker->next != end) { 78 Walker = Walker->next; 79 ((Walker->node)->*f)(t, u); 80 } 81 }; 82 template <typename res, typename T, typename U> void molecule::ActOnAllVectors( res (Vector::*f)(T, U) const, T t, U u ) const 83 { 84 atom *Walker = start; 85 while (Walker->next != end) { 86 Walker = Walker->next; 87 ((Walker->node)->*f)(t, u); 88 } 89 }; 90 // three arguments 91 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllVectors( res (Vector::*f)(T, U, V), T t, U u, V v) const 92 { 93 atom *Walker = start; 94 while (Walker->next != end) { 95 Walker = Walker->next; 96 ((Walker->node)->*f)(t, u, v); 97 } 98 }; 99 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllVectors( res (Vector::*f)(T, U, V) const, T t, U u, V v) const 100 { 101 atom *Walker = start; 102 while (Walker->next != end) { 103 Walker = Walker->next; 104 ((Walker->node)->*f)(t, u, v); 105 } 106 }; 21 107 22 108 // ========================= Summing over each Atoms =================================== // … … 26 112 { 27 113 res result = 0; 28 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 29 result += ((*iter)->*f)(); 114 atom *Walker = start; 115 while (Walker->next != end) { 116 Walker = Walker->next; 117 result += (Walker->*f)(); 30 118 } 31 119 return result; … … 34 122 { 35 123 res result = 0; 36 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 37 result += ((*iter)->*f)(); 124 atom *Walker = start; 125 while (Walker->next != end) { 126 Walker = Walker->next; 127 result += (Walker->*f)(); 38 128 } 39 129 return result; … … 43 133 { 44 134 res result = 0; 45 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 46 result += ((*iter)->*f)(t); 135 atom *Walker = start; 136 while (Walker->next != end) { 137 Walker = Walker->next; 138 result += (Walker->*f)(t); 47 139 } 48 140 return result; … … 51 143 { 52 144 res result = 0; 53 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 54 result += ((*iter)->*f)(t); 145 atom *Walker = start; 146 while (Walker->next != end) { 147 Walker = Walker->next; 148 result += (Walker->*f)(t); 55 149 } 56 150 return result; … … 63 157 template <typename res> void molecule::ActWithEachAtom( res (molecule::*f)(atom *)) const 64 158 { 65 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 66 (*f)((*iter)); 159 atom *Walker = start; 160 while (Walker->next != end) { 161 Walker = Walker->next; 162 (*f)(Walker); 67 163 } 68 164 }; 69 165 template <typename res> void molecule::ActWithEachAtom( res (molecule::*f)(atom *) const) const 70 166 { 71 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 72 (*f)((*iter)); 167 atom *Walker = start; 168 while (Walker->next != end) { 169 Walker = Walker->next; 170 (*f)(Walker); 73 171 } 74 172 }; … … 79 177 template <typename res> void molecule::ActOnCopyWithEachAtom( res (molecule::*f)(atom *) , molecule *copy) const 80 178 { 81 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 82 (copy->*f)((*iter)); 179 atom *Walker = start; 180 while (Walker->next != end) { 181 Walker = Walker->next; 182 (copy->*f)(Walker); 83 183 } 84 184 }; 85 185 template <typename res> void molecule::ActOnCopyWithEachAtom( res (molecule::*f)(atom *) const, molecule *copy) const 86 186 { 87 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 88 (copy->*f)((*iter)); 187 atom *Walker = start; 188 while (Walker->next != end) { 189 Walker = Walker->next; 190 (copy->*f)(Walker); 89 191 } 90 192 }; … … 95 197 template <typename res> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) () ) const 96 198 { 97 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 98 if (((*iter)->*condition)()) 99 (copy->*f)((*iter)); 199 atom *Walker = start; 200 while (Walker->next != end) { 201 Walker = Walker->next; 202 if ((Walker->*condition)()) 203 (copy->*f)(Walker); 100 204 } 101 205 }; 102 206 template <typename res> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) () const ) const 103 207 { 104 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 105 if (((*iter)->*condition)()) 106 (copy->*f)((*iter)); 208 atom *Walker = start; 209 while (Walker->next != end) { 210 Walker = Walker->next; 211 if ((Walker->*condition)()) 212 (copy->*f)(Walker); 107 213 } 108 214 }; 109 215 template <typename res> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const , molecule *copy, bool (atom::*condition) () ) const 110 216 { 111 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 112 if (((*iter)->*condition)()) 113 (copy->*f)((*iter)); 217 atom *Walker = start; 218 while (Walker->next != end) { 219 Walker = Walker->next; 220 if ((Walker->*condition)()) 221 (copy->*f)(Walker); 114 222 } 115 223 }; 116 224 template <typename res> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) () const ) const 117 225 { 118 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 119 if (((*iter)->*condition)()) 120 (copy->*f)((*iter)); 226 atom *Walker = start; 227 while (Walker->next != end) { 228 Walker = Walker->next; 229 if ((Walker->*condition)()) 230 (copy->*f)(Walker); 121 231 } 122 232 }; … … 124 234 template <typename res, typename T> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T), T t ) const 125 235 { 126 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 127 if (((*iter)->*condition)(t)) 128 (copy->*f)((*iter)); 236 atom *Walker = start; 237 while (Walker->next != end) { 238 Walker = Walker->next; 239 if ((Walker->*condition)(t)) 240 (copy->*f)(Walker); 129 241 } 130 242 }; 131 243 template <typename res, typename T> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T) const, T t ) const 132 244 { 133 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 134 if (((*iter)->*condition)(t)) 135 (copy->*f)((*iter)); 245 atom *Walker = start; 246 while (Walker->next != end) { 247 Walker = Walker->next; 248 if ((Walker->*condition)(t)) 249 (copy->*f)(Walker); 136 250 } 137 251 }; 138 252 template <typename res, typename T> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T), T t ) const 139 253 { 140 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 141 if (((*iter)->*condition)(t)) 142 (copy->*f)((*iter)); 254 atom *Walker = start; 255 while (Walker->next != end) { 256 Walker = Walker->next; 257 if ((Walker->*condition)(t)) 258 (copy->*f)(Walker); 143 259 } 144 260 }; 145 261 template <typename res, typename T> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T) const, T t ) const 146 262 { 147 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 148 if (((*iter)->*condition)(t)) 149 (copy->*f)((*iter)); 263 atom *Walker = start; 264 while (Walker->next != end) { 265 Walker = Walker->next; 266 if ((Walker->*condition)(t)) 267 (copy->*f)(Walker); 150 268 } 151 269 }; … … 153 271 template <typename res, typename T, typename U> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T, U), T t, U u ) const 154 272 { 155 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 156 if (((*iter)->*condition)(t,u)) 157 (copy->*f)((*iter)); 273 atom *Walker = start; 274 while (Walker->next != end) { 275 Walker = Walker->next; 276 if ((Walker->*condition)(t,u)) 277 (copy->*f)(Walker); 158 278 } 159 279 }; 160 280 template <typename res, typename T, typename U> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T, U) const, T t, U u ) const 161 281 { 162 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 163 if (((*iter)->*condition)(t,u)) 164 (copy->*f)((*iter)); 282 atom *Walker = start; 283 while (Walker->next != end) { 284 Walker = Walker->next; 285 if ((Walker->*condition)(t,u)) 286 (copy->*f)(Walker); 165 287 } 166 288 }; 167 289 template <typename res, typename T, typename U> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T, U), T t, U u ) const 168 290 { 169 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 170 if (((*iter)->*condition)(t,u)) 171 (copy->*f)((*iter)); 291 atom *Walker = start; 292 while (Walker->next != end) { 293 Walker = Walker->next; 294 if ((Walker->*condition)(t,u)) 295 (copy->*f)(Walker); 172 296 } 173 297 }; 174 298 template <typename res, typename T, typename U> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T, U) const, T t, U u ) const 175 299 { 176 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 177 if (((*iter)->*condition)(t,u)) 178 (copy->*f)((*iter)); 300 atom *Walker = start; 301 while (Walker->next != end) { 302 Walker = Walker->next; 303 if ((Walker->*condition)(t,u)) 304 (copy->*f)(Walker); 179 305 } 180 306 }; … … 182 308 template <typename res, typename T, typename U, typename V> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T, U, V), T t, U u, V v ) const 183 309 { 184 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 185 if (((*iter)->*condition)(t,u,v)) 186 (copy->*f)((*iter)); 310 atom *Walker = start; 311 while (Walker->next != end) { 312 Walker = Walker->next; 313 if ((Walker->*condition)(t,u,v)) 314 (copy->*f)(Walker); 187 315 } 188 316 }; 189 317 template <typename res, typename T, typename U, typename V> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) , molecule *copy, bool (atom::*condition) (T, U, V) const, T t, U u, V v ) const 190 318 { 191 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 192 if (((*iter)->*condition)(t,u,v)) 193 (copy->*f)((*iter)); 319 atom *Walker = start; 320 while (Walker->next != end) { 321 Walker = Walker->next; 322 if ((Walker->*condition)(t,u,v)) 323 (copy->*f)(Walker); 194 324 } 195 325 }; 196 326 template <typename res, typename T, typename U, typename V> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T, U, V), T t, U u, V v ) const 197 327 { 198 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 199 if (((*iter)->*condition)(t,u,v)) 200 (copy->*f)((*iter)); 328 atom *Walker = start; 329 while (Walker->next != end) { 330 Walker = Walker->next; 331 if ((Walker->*condition)(t,u,v)) 332 (copy->*f)(Walker); 201 333 } 202 334 }; 203 335 template <typename res, typename T, typename U, typename V> void molecule::ActOnCopyWithEachAtomIfTrue( res (molecule::*f)(atom *) const, molecule *copy, bool (atom::*condition) (T, U, V) const, T t, U u, V v ) const 204 336 { 205 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 206 if (((*iter)->*condition)(t,u,v)) 207 (copy->*f)((*iter)); 337 atom *Walker = start; 338 while (Walker->next != end) { 339 Walker = Walker->next; 340 if ((Walker->*condition)(t,u,v)) 341 (copy->*f)(Walker); 208 342 } 209 343 }; … … 214 348 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)()) const 215 349 { 216 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 217 ((*iter)->*f)(); 350 atom *Walker = start; 351 while (Walker->next != end) { 352 Walker = Walker->next; 353 (Walker->*f)(); 218 354 } 219 355 }; 220 356 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)() const) const 221 357 { 222 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 223 ((*iter)->*f)(); 358 atom *Walker = start; 359 while (Walker->next != end) { 360 Walker = Walker->next; 361 (Walker->*f)(); 224 362 } 225 363 }; … … 227 365 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T), T t ) const 228 366 { 229 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 230 ((*iter)->*f)(t); 367 atom *Walker = start; 368 while (Walker->next != end) { 369 Walker = Walker->next; 370 (Walker->*f)(t); 231 371 } 232 372 }; 233 373 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T) const, T t ) const 234 374 { 235 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 236 ((*iter)->*f)(t); 375 atom *Walker = start; 376 while (Walker->next != end) { 377 Walker = Walker->next; 378 (Walker->*f)(t); 237 379 } 238 380 }; … … 240 382 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U), T t, U u ) const 241 383 { 242 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 243 ((*iter)->*f)(t, u); 384 atom *Walker = start; 385 while (Walker->next != end) { 386 Walker = Walker->next; 387 (Walker->*f)(t, u); 244 388 } 245 389 }; 246 390 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U) const, T t, U u ) const 247 391 { 248 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 249 ((*iter)->*f)(t, u); 392 atom *Walker = start; 393 while (Walker->next != end) { 394 Walker = Walker->next; 395 (Walker->*f)(t, u); 250 396 } 251 397 }; … … 253 399 template <typename res, typename typ, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (typ::*f)(T, U, V), T t, U u, V v) const 254 400 { 255 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 256 ((*iter)->*f)(t, u, v); 401 atom *Walker = start; 402 while (Walker->next != end) { 403 Walker = Walker->next; 404 (Walker->*f)(t, u, v); 257 405 } 258 406 }; 259 407 template <typename res, typename typ, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (typ::*f)(T, U, V) const, T t, U u, V v) const 260 408 { 261 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 262 ((*iter)->*f)(t, u, v); 409 atom *Walker = start; 410 while (Walker->next != end) { 411 Walker = Walker->next; 412 (Walker->*f)(t, u, v); 263 413 } 264 414 }; … … 266 416 template <typename res, typename typ, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (typ::*f)(T, U, V, W), T t, U u, V v, W w) const 267 417 { 268 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 269 ((*iter)->*f)(t, u, v, w); 418 atom *Walker = start; 419 while (Walker->next != end) { 420 Walker = Walker->next; 421 (Walker->*f)(t, u, v, w); 270 422 } 271 423 }; 272 424 template <typename res, typename typ, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (typ::*f)(T, U, V, W) const, T t, U u, V v, W w) const 273 425 { 274 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 275 ((*iter)->*f)(t, u, v, w); 426 atom *Walker = start; 427 while (Walker->next != end) { 428 Walker = Walker->next; 429 (Walker->*f)(t, u, v, w); 276 430 } 277 431 }; … … 282 436 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *) ) const 283 437 { 438 atom *Walker = start; 284 439 int inc = 1; 285 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 286 (*Setor) (&array[((*iter)->*index)], &inc); 440 while (Walker->next != end) { 441 Walker = Walker->next; 442 (*Setor) (&array[(Walker->*index)], &inc); 287 443 } 288 444 }; 289 445 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *), T value ) const 290 446 { 291 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 292 (*Setor) (&array[((*iter)->*index)], &value); 447 atom *Walker = start; 448 while (Walker->next != end) { 449 Walker = Walker->next; 450 (*Setor) (&array[(Walker->*index)], &value); 293 451 } 294 452 }; 295 453 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *), T *value ) const 296 454 { 297 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 298 (*Setor) (&array[((*iter)->*index)], value); 455 atom *Walker = start; 456 while (Walker->next != end) { 457 Walker = Walker->next; 458 (*Setor) (&array[(Walker->*index)], value); 299 459 } 300 460 }; … … 302 462 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int element::*index, void (*Setor)(T *, T *) ) const 303 463 { 464 atom *Walker = start; 304 465 int inc = 1; 305 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 306 (*Setor) (&array[((*iter)->getType()->*index)], &inc); 466 while (Walker->next != end) { 467 Walker = Walker->next; 468 (*Setor) (&array[(Walker->type->*index)], &inc); 307 469 } 308 470 }; 309 471 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int element::*index, void (*Setor)(T *, T *), T value ) const 310 472 { 311 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 312 (*Setor) (&array[((*iter)->getType()->*index)], &value); 473 atom *Walker = start; 474 while (Walker->next != end) { 475 Walker = Walker->next; 476 (*Setor) (&array[(Walker->type->*index)], &value); 313 477 } 314 478 }; 315 479 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int element::*index, void (*Setor)(T *, T *), T *value ) const 316 480 { 317 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 318 (*Setor) (&array[((*iter)->getType()->*index)], value); 481 atom *Walker = start; 482 while (Walker->next != end) { 483 Walker = Walker->next; 484 (*Setor) (&array[(Walker->type->*index)], value); 319 485 } 320 486 }; … … 322 488 template <typename T, typename typ> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(typ &), typ atom::*value ) const 323 489 { 324 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 325 array[((*iter)->*index)] = ((*iter)->*Setor) ((*iter)->*value); 490 atom *Walker = start; 491 while (Walker->next != end) { 492 Walker = Walker->next; 493 array[(Walker->*index)] = (Walker->*Setor) (Walker->*value); 326 494 } 327 495 }; 328 496 template <typename T, typename typ> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(typ &) const, typ atom::*value ) const 329 497 { 330 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 331 array[((*iter)->*index)] = ((*iter)->*Setor) ((*iter)->*value); 498 atom *Walker = start; 499 while (Walker->next != end) { 500 Walker = Walker->next; 501 array[(Walker->*index)] = (Walker->*Setor) (Walker->*value); 332 502 } 333 503 }; 334 504 template <typename T, typename typ> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(typ &), typ &vect ) const 335 505 { 336 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 337 array[((*iter)->*index)] = ((*iter)->*Setor) (vect); 506 atom *Walker = start; 507 while (Walker->next != end) { 508 Walker = Walker->next; 509 array[(Walker->*index)] = (Walker->*Setor) (vect); 338 510 } 339 511 }; 340 512 template <typename T, typename typ> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(typ &) const, typ &vect ) const 341 513 { 342 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 343 array[((*iter)->*index)] = ((*iter)->*Setor) (vect); 514 atom *Walker = start; 515 while (Walker->next != end) { 516 Walker = Walker->next; 517 array[(Walker->*index)] = (Walker->*Setor) (vect); 344 518 } 345 519 }; 346 520 template <typename T, typename typ, typename typ2> void molecule::SetAtomValueToIndexedArray ( T *array, int typ::*index, T typ2::*value ) const 347 521 { 348 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 349 (*iter)->*value = array[((*iter)->*index)]; 350 //Log() << Verbose(2) << *(*iter) << " gets " << ((*iter)->*value); << endl; 522 atom *Walker = start; 523 while (Walker->next != end) { 524 Walker = Walker->next; 525 Walker->*value = array[(Walker->*index)]; 526 //Log() << Verbose(2) << *Walker << " gets " << (Walker->*value); << endl; 351 527 } 352 528 }; … … 354 530 template <typename T, typename typ> void molecule::SetAtomValueToValue ( T value, T typ::*ptr ) const 355 531 { 356 for (molecule::const_iterator iter = begin(); iter != end(); ++iter) { 357 (*iter)->*ptr = value; 358 //Log() << Verbose(2) << *(*iter) << " gets " << ((*iter)->*ptr) << endl; 532 atom *Walker = start; 533 while (Walker->next != end) { 534 Walker = Walker->next; 535 Walker->*ptr = value; 536 //Log() << Verbose(2) << *Walker << " gets " << (Walker->*ptr) << endl; 359 537 } 360 538 };
Note:
See TracChangeset
for help on using the changeset viewer.
