183
206
const_cast<T_container&>(container2));
209
template<typename T_container>
210
CartesianProduct<TinyVector<int,4>,T_container,4>
211
indexSet(const T_container& container0, const T_container& container1,
212
const T_container& container2, const T_container& container3)
214
return CartesianProduct<TinyVector<int,4>,T_container,4>(
215
const_cast<T_container&>(container0),
216
const_cast<T_container&>(container1),
217
const_cast<T_container&>(container2),
218
const_cast<T_container&>(container3));
221
template<typename T_container>
222
CartesianProduct<TinyVector<int,5>,T_container,5>
223
indexSet(const T_container& container0, const T_container& container1,
224
const T_container& container2, const T_container& container3,
225
const T_container& container4)
227
return CartesianProduct<TinyVector<int,5>,T_container,5>(
228
const_cast<T_container&>(container0),
229
const_cast<T_container&>(container1),
230
const_cast<T_container&>(container2),
231
const_cast<T_container&>(container3),
232
const_cast<T_container&>(container4));
235
template<typename T_container>
236
CartesianProduct<TinyVector<int,6>,T_container,6>
237
indexSet(const T_container& container0, const T_container& container1,
238
const T_container& container2, const T_container& container3,
239
const T_container& container4, const T_container& container5)
241
return CartesianProduct<TinyVector<int,6>,T_container,6>(
242
const_cast<T_container&>(container0),
243
const_cast<T_container&>(container1),
244
const_cast<T_container&>(container2),
245
const_cast<T_container&>(container3),
246
const_cast<T_container&>(container4),
247
const_cast<T_container&>(container5));
250
template<typename T_container>
251
CartesianProduct<TinyVector<int,7>,T_container,7>
252
indexSet(const T_container& container0, const T_container& container1,
253
const T_container& container2, const T_container& container3,
254
const T_container& container4, const T_container& container5,
255
const T_container& container6)
257
return CartesianProduct<TinyVector<int,7>,T_container,7>(
258
const_cast<T_container&>(container0),
259
const_cast<T_container&>(container1),
260
const_cast<T_container&>(container2),
261
const_cast<T_container&>(container3),
262
const_cast<T_container&>(container4),
263
const_cast<T_container&>(container5),
264
const_cast<T_container&>(container6));
267
template<typename T_container>
268
CartesianProduct<TinyVector<int,8>,T_container,8>
269
indexSet(const T_container& container0, const T_container& container1,
270
const T_container& container2, const T_container& container3,
271
const T_container& container4, const T_container& container5,
272
const T_container& container6, const T_container& container7)
274
return CartesianProduct<TinyVector<int,8>,T_container,8>(
275
const_cast<T_container&>(container0),
276
const_cast<T_container&>(container1),
277
const_cast<T_container&>(container2),
278
const_cast<T_container&>(container3),
279
const_cast<T_container&>(container4),
280
const_cast<T_container&>(container5),
281
const_cast<T_container&>(container6),
282
const_cast<T_container&>(container7));
285
template<typename T_container>
286
CartesianProduct<TinyVector<int,9>,T_container,9>
287
indexSet(const T_container& container0, const T_container& container1,
288
const T_container& container2, const T_container& container3,
289
const T_container& container4, const T_container& container5,
290
const T_container& container6, const T_container& container7,
291
const T_container& container8)
293
return CartesianProduct<TinyVector<int,9>,T_container,9>(
294
const_cast<T_container&>(container0),
295
const_cast<T_container&>(container1),
296
const_cast<T_container&>(container2),
297
const_cast<T_container&>(container3),
298
const_cast<T_container&>(container4),
299
const_cast<T_container&>(container5),
300
const_cast<T_container&>(container6),
301
const_cast<T_container&>(container7),
302
const_cast<T_container&>(container8));
305
template<typename T_container>
306
CartesianProduct<TinyVector<int,10>,T_container,10>
307
indexSet(const T_container& container0, const T_container& container1,
308
const T_container& container2, const T_container& container3,
309
const T_container& container4, const T_container& container5,
310
const T_container& container6, const T_container& container7,
311
const T_container& container8, const T_container& container9)
313
return CartesianProduct<TinyVector<int,10>,T_container,10>(
314
const_cast<T_container&>(container0),
315
const_cast<T_container&>(container1),
316
const_cast<T_container&>(container2),
317
const_cast<T_container&>(container3),
318
const_cast<T_container&>(container4),
319
const_cast<T_container&>(container5),
320
const_cast<T_container&>(container6),
321
const_cast<T_container&>(container7),
322
const_cast<T_container&>(container8),
323
const_cast<T_container&>(container9));
326
template<typename T_container>
327
CartesianProduct<TinyVector<int,11>,T_container,11>
328
indexSet(const T_container& container0, const T_container& container1,
329
const T_container& container2, const T_container& container3,
330
const T_container& container4, const T_container& container5,
331
const T_container& container6, const T_container& container7,
332
const T_container& container8, const T_container& container9,
333
const T_container& container10)
335
return CartesianProduct<TinyVector<int,11>,T_container,11>(
336
const_cast<T_container&>(container0),
337
const_cast<T_container&>(container1),
338
const_cast<T_container&>(container2),
339
const_cast<T_container&>(container3),
340
const_cast<T_container&>(container4),
341
const_cast<T_container&>(container5),
342
const_cast<T_container&>(container6),
343
const_cast<T_container&>(container7),
344
const_cast<T_container&>(container8),
345
const_cast<T_container&>(container9),
346
const_cast<T_container&>(container10));
186
349
// Mixture of singletons and containers, e.g. A[indexSet(I,3,K)]
188
351
// cp_findContainerType<T1,T2,T3,...,Tn>::T_container
265
433
cp_traits<T3,T_container>::make(c3));
436
template<typename T1, typename T2, typename T3, typename T4>
437
CartesianProduct<TinyVector<int,4>, _bz_typename
438
cp_findContainerType<T1,T2,T3,T4>::T_container, 4>
439
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4)
441
typedef _bz_typename cp_findContainerType<T1,T2,T3,T4>::T_container
444
return CartesianProduct<TinyVector<int,4>, T_container, 4>(
445
cp_traits<T1,T_container>::make(c1),
446
cp_traits<T2,T_container>::make(c2),
447
cp_traits<T3,T_container>::make(c3),
448
cp_traits<T4,T_container>::make(c4));
451
template<typename T1, typename T2, typename T3, typename T4, typename T5>
452
CartesianProduct<TinyVector<int,5>, _bz_typename
453
cp_findContainerType<T1,T2,T3,T4,T5>::T_container, 5>
454
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5)
456
typedef _bz_typename cp_findContainerType<T1,T2,T3,T4,T5>::T_container
459
return CartesianProduct<TinyVector<int,5>, T_container, 5>(
460
cp_traits<T1,T_container>::make(c1),
461
cp_traits<T2,T_container>::make(c2),
462
cp_traits<T3,T_container>::make(c3),
463
cp_traits<T4,T_container>::make(c4),
464
cp_traits<T5,T_container>::make(c5));
467
template<typename T1, typename T2, typename T3, typename T4, typename T5,
469
CartesianProduct<TinyVector<int,6>, _bz_typename
470
cp_findContainerType<T1,T2,T3,T4,T5,T6>::T_container, 6>
471
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
474
typedef _bz_typename cp_findContainerType<T1,T2,T3,T4,T5,T6>::T_container
477
return CartesianProduct<TinyVector<int,6>, T_container, 6>(
478
cp_traits<T1,T_container>::make(c1),
479
cp_traits<T2,T_container>::make(c2),
480
cp_traits<T3,T_container>::make(c3),
481
cp_traits<T4,T_container>::make(c4),
482
cp_traits<T5,T_container>::make(c5),
483
cp_traits<T6,T_container>::make(c6));
486
template<typename T1, typename T2, typename T3, typename T4, typename T5,
487
typename T6, typename T7>
488
CartesianProduct<TinyVector<int,7>, _bz_typename
489
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7>::T_container, 7>
490
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
491
const T6& c6, const T7& c7)
494
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7>::T_container
497
return CartesianProduct<TinyVector<int,7>, T_container, 7>(
498
cp_traits<T1,T_container>::make(c1),
499
cp_traits<T2,T_container>::make(c2),
500
cp_traits<T3,T_container>::make(c3),
501
cp_traits<T4,T_container>::make(c4),
502
cp_traits<T5,T_container>::make(c5),
503
cp_traits<T6,T_container>::make(c6),
504
cp_traits<T7,T_container>::make(c7));
507
template<typename T1, typename T2, typename T3, typename T4, typename T5,
508
typename T6, typename T7, typename T8>
509
CartesianProduct<TinyVector<int,8>, _bz_typename
510
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8>::T_container, 8>
511
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
512
const T6& c6, const T7& c7, const T8& c8)
515
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8>::T_container
518
return CartesianProduct<TinyVector<int,8>, T_container, 8>(
519
cp_traits<T1,T_container>::make(c1),
520
cp_traits<T2,T_container>::make(c2),
521
cp_traits<T3,T_container>::make(c3),
522
cp_traits<T4,T_container>::make(c4),
523
cp_traits<T5,T_container>::make(c5),
524
cp_traits<T6,T_container>::make(c6),
525
cp_traits<T7,T_container>::make(c7),
526
cp_traits<T8,T_container>::make(c8));
529
template<typename T1, typename T2, typename T3, typename T4, typename T5,
530
typename T6, typename T7, typename T8, typename T9>
531
CartesianProduct<TinyVector<int,9>, _bz_typename
532
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9>::T_container, 9>
533
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
534
const T6& c6, const T7& c7, const T8& c8, const T9& c9)
537
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9>::T_container
540
return CartesianProduct<TinyVector<int,9>, T_container, 9>(
541
cp_traits<T1,T_container>::make(c1),
542
cp_traits<T2,T_container>::make(c2),
543
cp_traits<T3,T_container>::make(c3),
544
cp_traits<T4,T_container>::make(c4),
545
cp_traits<T5,T_container>::make(c5),
546
cp_traits<T6,T_container>::make(c6),
547
cp_traits<T7,T_container>::make(c7),
548
cp_traits<T8,T_container>::make(c8),
549
cp_traits<T9,T_container>::make(c9));
552
template<typename T1, typename T2, typename T3, typename T4, typename T5,
553
typename T6, typename T7, typename T8, typename T9, typename T10>
554
CartesianProduct<TinyVector<int,10>, _bz_typename
555
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::T_container, 10>
556
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
557
const T6& c6, const T7& c7, const T8& c8, const T9& c9, const T10& c10)
560
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::T_container
563
return CartesianProduct<TinyVector<int,10>, T_container, 10>(
564
cp_traits<T1,T_container>::make(c1),
565
cp_traits<T2,T_container>::make(c2),
566
cp_traits<T3,T_container>::make(c3),
567
cp_traits<T4,T_container>::make(c4),
568
cp_traits<T5,T_container>::make(c5),
569
cp_traits<T6,T_container>::make(c6),
570
cp_traits<T7,T_container>::make(c7),
571
cp_traits<T8,T_container>::make(c8),
572
cp_traits<T9,T_container>::make(c9),
573
cp_traits<T10,T_container>::make(c10));
576
template<typename T1, typename T2, typename T3, typename T4, typename T5,
577
typename T6, typename T7, typename T8, typename T9, typename T10,
579
CartesianProduct<TinyVector<int,11>, _bz_typename
580
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::T_container, 11>
581
indexSet(const T1& c1, const T2& c2, const T3& c3, const T4& c4, const T5& c5,
582
const T6& c6, const T7& c7, const T8& c8, const T9& c9, const T10& c10,
586
cp_findContainerType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::T_container
589
return CartesianProduct<TinyVector<int,11>, T_container, 11>(
590
cp_traits<T1,T_container>::make(c1),
591
cp_traits<T2,T_container>::make(c2),
592
cp_traits<T3,T_container>::make(c3),
593
cp_traits<T4,T_container>::make(c4),
594
cp_traits<T5,T_container>::make(c5),
595
cp_traits<T6,T_container>::make(c6),
596
cp_traits<T7,T_container>::make(c7),
597
cp_traits<T8,T_container>::make(c8),
598
cp_traits<T9,T_container>::make(c9),
599
cp_traits<T10,T_container>::make(c10),
600
cp_traits<T11,T_container>::make(c11));
270
605
#endif // BZ_ARRAY_INDIRECT_H