int main () { matrix<> m1,m2; adaptor<> bam1 (m1), bam2 (m2); matrix_swap (bam1, bam2); return 0; }
void operator () (int) const { #ifdef USE_ADAPTOR { #ifdef USE_BANDED M m1 (N, N, 1, 1), m2 (N, N, 1, 1), m3 (N, N, 1, 1); ublas::banded_adaptor<M> bam1 (m1, 1, 1), bam2 (m2, 1, 1), bam3 (m3, 1, 1); test_with (bam1, bam2, bam3); #ifdef USE_RANGE ublas::matrix_range<ublas::banded_adaptor<M> > mr1 (bam1, ublas::range (0, N), ublas::range (0, N)), mr2 (bam2, ublas::range (0, N), ublas::range (0, N)), mr3 (bam3, ublas::range (0, N), ublas::range (0, N)); test_with (mr1, mr2, mr3); #endif #ifdef USE_SLICE ublas::matrix_slice<ublas::banded_adaptor<M> > ms1 (bam1, ublas::slice (0, 1, N), ublas::slice (0, 1, N)), ms2 (bam2, ublas::slice (0, 1, N), ublas::slice (0, 1, N)), ms3 (bam3, ublas::slice (0, 1, N), ublas::slice (0, 1, N)); test_with (ms1, ms2, ms3); #endif #endif #ifdef USE_DIAGONAL M m1 (N, N), m2 (N, N), m3 (N, N); ublas::diagonal_adaptor<M> dam1 (m1), dam2 (m2), dam3 (m3); test_with (dam1, dam2, dam3); #ifdef USE_RANGE ublas::matrix_range<ublas::diagonal_adaptor<M> > mr1 (dam1, ublas::range (0, N), ublas::range (0, N)), mr2 (dam2, ublas::range (0, N), ublas::range (0, N)), mr3 (dam3, ublas::range (0, N), ublas::range (0, N)); test_with (mr1, mr2, mr3); #endif #ifdef USE_SLICE ublas::matrix_slice<ublas::diagonal_adaptor<M> > ms1 (dam1, ublas::slice (0, 1, N), ublas::slice (0, 1, N)), ms2 (dam2, ublas::slice (0, 1, N), ublas::slice (0, 1, N)), ms3 (dam3, ublas::slice (0, 1, N), ublas::slice (0, 1, N)); test_with (ms1, ms2, ms3); #endif #endif } #endif }