Changeset 6b937bd for molecuilder/src/molecule_template.hpp
- Timestamp:
- Oct 19, 2009, 1:09:29 PM (16 years ago)
- Children:
- 3b0ba2
- Parents:
- 99bed3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/molecule_template.hpp
r99bed3 r6b937bd 156 156 157 157 // zero arguments 158 template <typename res > res molecule::SumPerAtom(res (atom::*f)() )158 template <typename res, typename typ> res molecule::SumPerAtom(res (typ::*f)() ) 159 159 { 160 160 res result = 0; … … 166 166 return result; 167 167 }; 168 template <typename res > res molecule::SumPerAtom(res (atom::*f)() const )168 template <typename res, typename typ> res molecule::SumPerAtom(res (typ::*f)() const ) 169 169 { 170 170 res result = 0; … … 176 176 return result; 177 177 }; 178 template <typename res > res molecule::SumPerAtom(res (atom::*f)() ) const178 template <typename res, typename typ> res molecule::SumPerAtom(res (typ::*f)() ) const 179 179 { 180 180 res result = 0; … … 186 186 return result; 187 187 }; 188 template <typename res > res molecule::SumPerAtom(res (atom::*f)() const ) const188 template <typename res, typename typ> res molecule::SumPerAtom(res (typ::*f)() const ) const 189 189 { 190 190 res result = 0; … … 197 197 }; 198 198 // one argument 199 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T), T t )199 template <typename res, typename typ, typename T> res molecule::SumPerAtom(res (typ::*f)(T), T t ) 200 200 { 201 201 res result = 0; … … 207 207 return result; 208 208 }; 209 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T) const, T t )209 template <typename res, typename typ, typename T> res molecule::SumPerAtom(res (typ::*f)(T) const, T t ) 210 210 { 211 211 res result = 0; … … 217 217 return result; 218 218 }; 219 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T), T t ) const219 template <typename res, typename typ, typename T> res molecule::SumPerAtom(res (typ::*f)(T), T t ) const 220 220 { 221 221 res result = 0; … … 227 227 return result; 228 228 }; 229 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T) const, T t ) const229 template <typename res, typename typ, typename T> res molecule::SumPerAtom(res (typ::*f)(T) const, T t ) const 230 230 { 231 231 res result = 0; … … 357 357 358 358 // zero arguments 359 template <typename res > void molecule::ActOnAllAtoms( res (atom::*f)())359 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)()) 360 360 { 361 361 atom *Walker = start; … … 365 365 } 366 366 }; 367 template <typename res > void molecule::ActOnAllAtoms( res (atom::*f)() const)367 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)() const) 368 368 { 369 369 atom *Walker = start; … … 373 373 } 374 374 }; 375 template <typename res > void molecule::ActOnAllAtoms( res (atom::*f)()) const375 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)()) const 376 376 { 377 377 atom *Walker = start; … … 381 381 } 382 382 }; 383 template <typename res > void molecule::ActOnAllAtoms( res (atom::*f)() const) const383 template <typename res, typename typ> void molecule::ActOnAllAtoms( res (typ::*f)() const) const 384 384 { 385 385 atom *Walker = start; … … 390 390 }; 391 391 // one argument 392 template <typename res, typename T> void molecule::ActOnAllAtoms( res (atom::*f)(T), T t )392 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T), T t ) 393 393 { 394 394 atom *Walker = start; … … 398 398 } 399 399 }; 400 template <typename res, typename T> void molecule::ActOnAllAtoms( res (atom::*f)(T) const, T t )400 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T) const, T t ) 401 401 { 402 402 atom *Walker = start; … … 406 406 } 407 407 }; 408 template <typename res, typename T> void molecule::ActOnAllAtoms( res (atom::*f)(T), T t ) const408 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T), T t ) const 409 409 { 410 410 atom *Walker = start; … … 414 414 } 415 415 }; 416 template <typename res, typename T> void molecule::ActOnAllAtoms( res (atom::*f)(T) const, T t ) const416 template <typename res, typename typ, typename T> void molecule::ActOnAllAtoms( res (typ::*f)(T) const, T t ) const 417 417 { 418 418 atom *Walker = start; … … 423 423 }; 424 424 // two argument 425 template <typename res, typename T, typename U> void molecule::ActOnAllAtoms( res (atom::*f)(T, U), T t, U u )425 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U), T t, U u ) 426 426 { 427 427 atom *Walker = start; … … 431 431 } 432 432 }; 433 template <typename res, typename T, typename U> void molecule::ActOnAllAtoms( res (atom::*f)(T, U) const, T t, U u )433 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U) const, T t, U u ) 434 434 { 435 435 atom *Walker = start; … … 439 439 } 440 440 }; 441 template <typename res, typename T, typename U> void molecule::ActOnAllAtoms( res (atom::*f)(T, U), T t, U u ) const441 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U), T t, U u ) const 442 442 { 443 443 atom *Walker = start; … … 447 447 } 448 448 }; 449 template <typename res, typename T, typename U> void molecule::ActOnAllAtoms( res (atom::*f)(T, U) const, T t, U u ) const449 template <typename res, typename typ, typename T, typename U> void molecule::ActOnAllAtoms( res (typ::*f)(T, U) const, T t, U u ) const 450 450 { 451 451 atom *Walker = start; … … 456 456 }; 457 457 // three argument 458 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V), T t, U u, V v)458 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) 459 459 { 460 460 atom *Walker = start; … … 464 464 } 465 465 }; 466 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V) const, T t, U u, V v)466 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) 467 467 { 468 468 atom *Walker = start; … … 472 472 } 473 473 }; 474 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V), T t, U u, V v) const474 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 475 475 { 476 476 atom *Walker = start; … … 480 480 } 481 481 }; 482 template <typename res, typename T, typename U, typename V> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V) const, T t, U u, V v) const482 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 483 483 { 484 484 atom *Walker = start; … … 489 489 }; 490 490 // four arguments 491 template <typename res, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V, W), T t, U u, V v, W w)491 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) 492 492 { 493 493 atom *Walker = start; … … 497 497 } 498 498 }; 499 template <typename res, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V, W) const, T t, U u, V v, W w)499 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) 500 500 { 501 501 atom *Walker = start; … … 505 505 } 506 506 }; 507 template <typename res, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V, W), T t, U u, V v, W w) const507 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 508 508 { 509 509 atom *Walker = start; … … 513 513 } 514 514 }; 515 template <typename res, typename T, typename U, typename V, typename W> void molecule::ActOnAllAtoms( res (atom::*f)(T, U, V, W) const, T t, U u, V v, W w) const515 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 516 516 { 517 517 atom *Walker = start; … … 525 525 526 526 // for atom ints 527 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, void (*Setor)(T *, T *) )527 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *) ) 528 528 { 529 529 atom *Walker = start; … … 534 534 } 535 535 }; 536 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, void (*Setor)(T *, T *), T value )536 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *), T value ) 537 537 { 538 538 atom *Walker = start; … … 542 542 } 543 543 }; 544 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, void (*Setor)(T *, T *), T *value )544 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, void (*Setor)(T *, T *), T *value ) 545 545 { 546 546 atom *Walker = start; … … 550 550 } 551 551 }; 552 // for element ints inside atom class552 // for element ints 553 553 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int element::*index, void (*Setor)(T *, T *) ) 554 554 { … … 576 576 } 577 577 }; 578 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, T (atom::*Setor)(Vector &), Vector atom::*value ) 578 579 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(Vector &), Vector atom::*value ) 579 580 { 580 581 atom *Walker = start; … … 584 585 } 585 586 }; 586 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, T (atom::*Setor)(Vector &), Vector &vect )587 template <typename T> void molecule::SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(Vector &), Vector &vect ) 587 588 { 588 589 atom *Walker = start; … … 593 594 }; 594 595 595 template <typename T > void molecule::SetAtomValueToIndexedArray ( T *array, int TesselPoint::*index, T atom::*value )596 template <typename T, typename typ, typename typ2> void molecule::SetAtomValueToIndexedArray ( T *array, int typ::*index, T typ2::*value ) 596 597 { 597 598 atom *Walker = start; … … 603 604 }; 604 605 605 template <typename T> void molecule::SetAtomValueToIndexedArray ( T *array, int element::*index, T atom::*value ) 606 { 607 atom *Walker = start; 608 while (Walker->next != end) { 609 Walker = Walker->next; 610 Walker->*value = array[(Walker->type->*index)]; 611 //cout << Verbose(2) << *Walker << " gets " << (Walker->*value) << endl; 612 } 613 }; 614 template <typename T> void molecule::SetAtomValueToValue ( T value, T atom::*ptr ) 606 template <typename T, typename typ> void molecule::SetAtomValueToValue ( T value, T typ::*ptr ) 615 607 { 616 608 atom *Walker = start;
Note:
See TracChangeset
for help on using the changeset viewer.