336 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
339 return _blitz.dataZero()[ index[0] * strides[0]
340 + index[1] * strides[1] ];
344 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
347 return _blitz.dataZero()[ index[0]
348 + index[1] * strides[1]
349 + index[2] * strides[2] ];
353 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
356 return _blitz.dataZero()[ index[0] * strides[0]
357 + index[1] * strides[1]
358 + index[2] * strides[2]
359 + index[3] * strides[3] ];
363 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
366 return _blitz.dataZero()[ index[0] * strides[0]
367 + index[1] * strides[1]
368 + index[2] * strides[2]
369 + index[3] * strides[3]
370 + index[4] * strides[4] ];
374 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
377 return _blitz.dataZero()[ index[0] * strides[0]
378 + index[1] * strides[1]
379 + index[2] * strides[2]
380 + index[3] * strides[3]
381 + index[4] * strides[4]
382 + index[5] * strides[5] ];
386 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
389 return _blitz.dataZero()[ index[0] * strides[0]
390 + index[1] * strides[1]
391 + index[2] * strides[2]
392 + index[3] * strides[3]
393 + index[4] * strides[4]
394 + index[5] * strides[5]
395 + index[6] * strides[6] ];
399 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
402 return _blitz.dataZero()[ index[0] * strides[0]
403 + index[1] * strides[1]
404 + index[2] * strides[2]
405 + index[3] * strides[3]
406 + index[4] * strides[4]
407 + index[5] * strides[5]
408 + index[6] * strides[6]
409 + index[7] * strides[7] ];
417 blitz::TinyVector<int, Volume<T>::DIM_MAX> pos;
418 int i, n = index.size();
419 for( i=0; i<n && i<Volume<T>::DIM_MAX; ++i )
421 for( ; i<Volume<T>::DIM_MAX; ++i )
423 return _blitz( pos );
434 return *_blitz.dataZero();
441 const blitz::TinyVector<BlitzStridesType, Volume<T>::DIM_MAX>& strides
445 for(
size_t i=0; i!=index.size(); ++i )
446 offset += index[i] * strides[i];
447 return _blitz.dataZero()[ offset ];
451 template <
typename T >
inline
454 return at( position );
458 template <
typename T >
inline
461 return at( position );
464 template <
typename T >
inline
470 template <
typename T >
inline
476 template <
typename T >
inline
482 template <
typename T >
inline
488 template <
typename T >
inline
494 template <
typename T >
inline
500 template <
typename T >
inline
506 template <
typename T >
inline
512 template <
typename T >
inline
518 template <
typename T >
inline
524 template <
typename T >
inline
525 blitz::Array<T,Volume< T >::DIM_MAX>
528 return _blitz( subdomain );
531 template <
typename T >
inline
532 blitz::Array<T,Volume< T >::DIM_MAX>
535 return _blitz( subdomain );
538 template <
typename T >
inline
539 blitz::Array<T,Volume< T >::DIM_MAX>
545 template <
typename T >
inline
546 blitz::Array<T,Volume< T >::DIM_MAX>
552 template <
typename T >
inline
553 blitz::Array<T,Volume< T >::DIM_MAX>
555 const blitz::Range & r2 )
const
557 return _blitz( r0, r1, r2 );
560 template <
typename T >
inline
561 blitz::Array<T,Volume< T >::DIM_MAX>
563 const blitz::Range & r2,
const blitz::Range & r3 )
const
565 return _blitz( r0, r1, r2, r3 );
568 template <
typename T >
571 long x6,
long x7,
long x8 )
const
573 return _blitz( blitz::TinyVector<long,8>( x1, x2, x3, x4, x5, x6, x7,
577 template <
typename T >
580 long x5,
long x6,
long x7,
long x8 )
const
582 return at( x1, x2, x3, x4, x5, x6, x7, x8 );
585 template <
typename T >
588 long x5,
long x6,
long x7,
long x8 )
590 return _blitz( blitz::TinyVector<long,8>( x1, x2, x3, x4, x5, x6, x7,
595 template <
typename T >
598 long x5,
long x6,
long x7,
long x8 )
600 return at( x1, x2, x3, x4, x5, x6, x7, x8 );
604 template <
typename T>
610 template <
typename T>
616 return volumeout << volume;
619 template <
typename T>
625 std::vector<int> dims = volume.
getSize();
626 for(
int d=0, n=dims.size(); d<n; ++d )
635 std::string tB = ( hasT ?
"[" :
"" );
636 std::string tE = ( hasT ?
"]" :
"" );
637 std::string tS = ( hasT ?
" " :
"" );
639 std::string zB = ( hasZ ?
"[" :
"" );
640 std::string zE = ( hasZ ?
"]" :
"" );
641 std::string zS = ( hasZ ?
" " :
"" );
643 std::string yB = ( hasY ?
"[" :
"" );
644 std::string yE = ( hasY ?
"]" :
"" );
645 std::string yS = ( hasY ?
" " :
"" );
647 std::string xB = ( hasX ?
"[" :
"" );
648 std::string xE = ( hasX ?
"]" :
"" );
649 std::string xS = ( hasX ?
" " :
"" );
651 size_t sizeT =
static_cast<size_t>(volume.
getSizeT());
652 size_t sizeZ =
static_cast<size_t>(volume.
getSizeZ());
653 size_t sizeY =
static_cast<size_t>(volume.
getSizeY());
654 size_t sizeX =
static_cast<size_t>(volume.
getSizeX());
656 for(
size_t t = 0; t < sizeT; ++t )
659 if( t < out.
maxT() ) {
660 out.
ostream() << std::setw(2) << std::left << tB;
662 out.
ostream() << std::setw(3) << std::left <<
"...";
666 for(
size_t z = 0; z < sizeZ; ++z )
669 if( z < out.
maxZ() ) {
670 out.
ostream() << std::setw(2) << std::left << zB;
672 out.
ostream() << std::setw(3) << std::left <<
"...";
676 for(
size_t y = 0; y < sizeY; ++y )
678 if( y < out.
maxY() ) {
679 out.
ostream() << std::setw(2) << std::left << yB;
681 out.
ostream() << std::setw(3) << std::left <<
"...";
684 for(
size_t x = 0; x < sizeX; ++x )
686 if( x < out.
maxX() ) {
687 out.
ostream() << std::setw(10) << std::left
688 <<
toString( volume( x, y, z, t ) );
690 out.
ostream() << std::setw(10) << std::left <<
"...";
694 out.
ostream() << std::setw(2) << std::left << yE;
698 out.
ostream() << std::setw(2) << std::left << zS;
700 out.
ostream() << std::setw(2) << std::left << tS;
703 out.
ostream() << std::setw(2) << std::left << zE;
707 out.
ostream() << std::setw(2) << std::left << tS;
710 out.
ostream() << std::setw(2) << std::left << tE;
718 template <
typename T>
726 << (v->allocatorContext().isAllocated() ?
"" :
"not ")
727 <<
"allocated" << std::endl << std::flush;
730 std::vector<int> dims = v->getSize();
734 for(
int i=0; i<dims.size()-1; ++i)
735 std::cout << dims[i] <<
", ";
736 std::cout << dims[dims.size()-1] <<
"]" << std::endl << std::flush;
740 std::vector<int> borders = v->getBorders();
743 if (borders.size()>0) {
744 for(
int i=0; i<borders.size()-1; ++i)
745 std::cout << borders[i] <<
", ";
746 std::cout << borders[borders.size()-1] <<
"]" << std::endl << std::flush;
751 if (!v->refVolume().
isNull()) {
752 std::vector<int> pos = v->posInRefVolume();
754 <<
"position in parent [";
755 for(
int i=0; i<pos.size()-1; ++i)
756 std::cout << pos[i] <<
", ";
757 std::cout << pos[pos.size()-1] <<
"]" << std::endl << std::flush;
766 template <
typename T>
773 template <
typename T>