36#ifndef STK_BINARYIMPL_H
37#define STK_BINARYIMPL_H
39#define EGAL(arg1, arg2) ((arg1::structure_ == int(Arrays::arg2)))
49template<
typename FunctorOp,
typename Lhs,
typename Rhs,
int LStructure_,
int RStructure_>
54template<
typename FunctorOp,
typename Lhs,
typename Rhs>
62 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
63 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
66 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
68template<
typename FunctorOp,
typename Lhs,
typename Rhs>
72 enum { structure_ = Arrays::square_
73 , binary_op_Kind_ = Arrays::binary_op_2D_
76 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
77 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
80 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
82template<
typename FunctorOp,
typename Lhs,
typename Rhs>
86 typedef typename Rhs::Type
RType;
87 enum { structure_ = Arrays::array2D_
88 , binary_op_Kind_= Arrays::binary_op_2D_Diag_
91 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
92 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
97template<
typename FunctorOp,
typename Lhs,
typename Rhs>
102 enum { structure_ = Arrays::array2D_
103 , binary_op_Kind_= Arrays::binary_op_2D_UpTri_
106 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
107 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
112template<
typename FunctorOp,
typename Lhs,
typename Rhs>
117 enum { structure_ = Arrays::array2D_
118 , binary_op_Kind_= Arrays::binary_op_2D_LowTri_
121 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
122 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
127template<
typename FunctorOp,
typename Lhs,
typename Rhs>
131 enum { structure_ = Arrays::square_
132 , binary_op_Kind_= Arrays::binary_op_2D_Sym_
135 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
136 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
139 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
141template<
typename FunctorOp,
typename Lhs,
typename Rhs>
145 enum { structure_ = Arrays::array2D_
146 , binary_op_Kind_= Arrays::binary_op_2D_UpSym_
149 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
150 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
153 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
155template<
typename FunctorOp,
typename Lhs,
typename Rhs>
159 enum { structure_ = Arrays::array2D_
160 , binary_op_Kind_= Arrays::binary_op_2D_LowSym_
163 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
164 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
167 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
174template<
typename FunctorOp,
typename Lhs,
typename Rhs>
178 enum { structure_ = Arrays::square_
179 , binary_op_Kind_ = Arrays::binary_op_2D_
182 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
183 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
186 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
188template<
typename FunctorOp,
typename Lhs,
typename Rhs>
192 enum { structure_ = Arrays::square_
193 , binary_op_Kind_ = Arrays::binary_op_2D_
196 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
197 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
200 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
202template<
typename FunctorOp,
typename Lhs,
typename Rhs>
207 enum { structure_ = Arrays::square_
208 , binary_op_Kind_= Arrays::binary_op_2D_Diag_
211 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
212 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
217template<
typename FunctorOp,
typename Lhs,
typename Rhs>
222 enum { structure_ = Arrays::square_
223 , binary_op_Kind_= Arrays::binary_op_2D_UpTri_
226 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
227 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
232template<
typename FunctorOp,
typename Lhs,
typename Rhs>
237 enum { structure_ = Arrays::square_
238 , binary_op_Kind_= Arrays::binary_op_2D_LowTri_
241 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
242 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
247template<
typename FunctorOp,
typename Lhs,
typename Rhs>
251 enum { structure_ = Arrays::square_
252 , binary_op_Kind_= Arrays::binary_op_2D_Sym_
255 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
256 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
259 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
261template<
typename FunctorOp,
typename Lhs,
typename Rhs>
265 enum { structure_ = Arrays::square_
266 , binary_op_Kind_= Arrays::binary_op_2D_UpSym_
269 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
270 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
273 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
275template<
typename FunctorOp,
typename Lhs,
typename Rhs>
279 enum { structure_ = Arrays::square_
280 , binary_op_Kind_= Arrays::binary_op_2D_LowSym_
283 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
284 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
287 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
293template<
typename FunctorOp,
typename Lhs,
typename Rhs>
298 enum { structure_ = Arrays::array2D_
299 , binary_op_Kind_= Arrays::binary_op_Diag_2D_
302 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
303 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
308template<
typename FunctorOp,
typename Lhs,
typename Rhs>
313 enum { structure_ = Arrays::square_
314 , binary_op_Kind_= Arrays::binary_op_Diag_2D_
317 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
318 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
323template<
typename FunctorOp,
typename Lhs,
typename Rhs>
329 enum { structure_ = Arrays::upper_triangular_
330 , binary_op_Kind_= Arrays::binary_op_Diag_UpTri_
333 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
334 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
339template<
typename FunctorOp,
typename Lhs,
typename Rhs>
345 enum { structure_ = Arrays::lower_triangular_
346 , binary_op_Kind_= Arrays::binary_op_Diag_LowTri_
349 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
350 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
355template<
typename FunctorOp,
typename Lhs,
typename Rhs>
360 enum { structure_ = Arrays::symmetric_
361 , binary_op_Kind_= Arrays::binary_op_Diag_Sym_
364 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
365 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
370template<
typename FunctorOp,
typename Lhs,
typename Rhs>
375 enum { structure_ = Arrays::upper_symmetric_
376 , binary_op_Kind_= Arrays::binary_op_Diag_UpSym_
379 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
380 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
385template<
typename FunctorOp,
typename Lhs,
typename Rhs>
390 enum { structure_ = Arrays::lower_symmetric_
391 , binary_op_Kind_= Arrays::binary_op_Diag_LowSym_
394 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
395 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
405template<
typename FunctorOp,
typename Lhs,
typename Rhs>
410 enum { structure_ = Arrays::array2D_
411 , binary_op_Kind_= Arrays::binary_op_UpTri_2D_
414 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
415 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
420template<
typename FunctorOp,
typename Lhs,
typename Rhs>
425 enum { structure_ = Arrays::square_
426 , binary_op_Kind_= Arrays::binary_op_UpTri_2D_
429 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
430 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
435template<
typename FunctorOp,
typename Lhs,
typename Rhs>
441 enum { structure_ = Arrays::upper_triangular_
442 , binary_op_Kind_= Arrays::binary_op_UpTri_Diag_
445 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
446 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
451template<
typename FunctorOp,
typename Lhs,
typename Rhs>
457 enum { structure_ = Arrays::upper_triangular_
458 , binary_op_Kind_= Arrays::binary_op_UpTri_UpTri_
461 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
462 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
467template<
typename FunctorOp,
typename Lhs,
typename Rhs>
473 enum { structure_ = Arrays::array2D_
474 , binary_op_Kind_= Arrays::binary_op_UpTri_LowTri_
477 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
478 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
483template<
typename FunctorOp,
typename Lhs,
typename Rhs>
488 enum { structure_ = Arrays::square_
489 , binary_op_Kind_= Arrays::binary_op_UpTri_Sym_
492 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
493 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
498template<
typename FunctorOp,
typename Lhs,
typename Rhs>
503 enum { structure_ = Arrays::square_
504 , binary_op_Kind_= Arrays::binary_op_UpTri_UpSym_
507 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
508 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
513template<
typename FunctorOp,
typename Lhs,
typename Rhs>
518 enum { structure_ = Arrays::square_
519 , binary_op_Kind_= Arrays::binary_op_UpTri_LowSym_
522 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
523 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
532template<
typename FunctorOp,
typename Lhs,
typename Rhs>
537 enum { structure_ = Arrays::array2D_
538 , binary_op_Kind_= Arrays::binary_op_LowTri_2D_
541 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
542 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
547template<
typename FunctorOp,
typename Lhs,
typename Rhs>
552 enum { structure_ = Arrays::square_
553 , binary_op_Kind_= Arrays::binary_op_LowTri_2D_
556 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
557 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
562template<
typename FunctorOp,
typename Lhs,
typename Rhs>
568 enum { structure_ = Arrays::lower_triangular_
569 , binary_op_Kind_= Arrays::binary_op_LowTri_Diag_
572 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
573 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
578template<
typename FunctorOp,
typename Lhs,
typename Rhs>
584 enum { structure_ = Arrays::array2D_
585 , binary_op_Kind_= Arrays::binary_op_LowTri_UpTri_
588 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
589 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
594template<
typename FunctorOp,
typename Lhs,
typename Rhs>
600 enum { structure_ = Arrays::lower_triangular_
601 , binary_op_Kind_= Arrays::binary_op_LowTri_LowTri_
604 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
605 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
610template<
typename FunctorOp,
typename Lhs,
typename Rhs>
615 enum { structure_ = Arrays::square_
616 , binary_op_Kind_= Arrays::binary_op_LowTri_Sym_
619 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
620 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
625template<
typename FunctorOp,
typename Lhs,
typename Rhs>
630 enum { structure_ = Arrays::square_
631 , binary_op_Kind_= Arrays::binary_op_LowTri_UpSym_
634 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
635 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
640template<
typename FunctorOp,
typename Lhs,
typename Rhs>
645 enum { structure_ = Arrays::square_
646 , binary_op_Kind_= Arrays::binary_op_LowTri_LowSym_
649 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
650 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
659template<
typename FunctorOp,
typename Lhs,
typename Rhs>
663 enum { structure_ = Arrays::square_
664 , binary_op_Kind_= Arrays::binary_op_Sym_2D_
667 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
668 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
671 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
673template<
typename FunctorOp,
typename Lhs,
typename Rhs>
677 enum { structure_ = Arrays::square_
678 , binary_op_Kind_= Arrays::binary_op_Sym_2D_
681 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
682 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
685 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
687template<
typename FunctorOp,
typename Lhs,
typename Rhs>
692 enum { structure_ = Arrays::symmetric_
693 , binary_op_Kind_= Arrays::binary_op_Sym_Diag_
696 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
697 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
702template<
typename FunctorOp,
typename Lhs,
typename Rhs>
707 enum { structure_ = Arrays::square_
708 , binary_op_Kind_= Arrays::binary_op_Sym_UpTri_
711 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
712 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
717template<
typename FunctorOp,
typename Lhs,
typename Rhs>
722 enum { structure_ = Arrays::square_
723 , binary_op_Kind_= Arrays::binary_op_Sym_LowTri_
726 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
727 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
732template<
typename FunctorOp,
typename Lhs,
typename Rhs>
736 enum { structure_ = Arrays::symmetric_
737 , binary_op_Kind_= Arrays::binary_op_Sym_Sym_
740 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
741 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
744 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
746template<
typename FunctorOp,
typename Lhs,
typename Rhs>
750 enum { structure_ = Arrays::symmetric_
751 , binary_op_Kind_= Arrays::binary_op_Sym_UpSym_
754 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
755 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
758 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
760template<
typename FunctorOp,
typename Lhs,
typename Rhs>
764 enum { structure_ = Arrays::symmetric_
765 , binary_op_Kind_= Arrays::binary_op_Sym_LowSym_
768 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
769 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
772 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
i,
j), r.elt(
j,
i));}
778template<
typename FunctorOp,
typename Lhs,
typename Rhs>
782 enum { structure_ = Arrays::square_
783 , binary_op_Kind_= Arrays::binary_op_UpSym_2D_
786 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
787 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
790 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
792template<
typename FunctorOp,
typename Lhs,
typename Rhs>
796 enum { structure_ = Arrays::square_
797 , binary_op_Kind_= Arrays::binary_op_UpSym_2D_
800 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
801 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
804 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
806template<
typename FunctorOp,
typename Lhs,
typename Rhs>
811 enum { structure_ = Arrays::upper_symmetric_
812 , binary_op_Kind_= Arrays::binary_op_UpSym_Diag_
815 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
816 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
821template<
typename FunctorOp,
typename Lhs,
typename Rhs>
826 enum { structure_ = Arrays::upper_triangular_
827 , binary_op_Kind_= Arrays::binary_op_UpSym_UpTri_
830 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
831 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
836template<
typename FunctorOp,
typename Lhs,
typename Rhs>
841 enum { structure_ = Arrays::square_
842 , binary_op_Kind_= Arrays::binary_op_UpSym_LowTri_
845 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
846 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
851template<
typename FunctorOp,
typename Lhs,
typename Rhs>
855 enum { structure_ = Arrays::symmetric_
856 , binary_op_Kind_= Arrays::binary_op_UpSym_Sym_
859 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
860 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
863 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
865template<
typename FunctorOp,
typename Lhs,
typename Rhs>
869 enum { structure_ = Arrays::upper_symmetric_
870 , binary_op_Kind_= Arrays::binary_op_UpSym_UpSym_
873 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
874 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
877 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
j,
i));}
879template<
typename FunctorOp,
typename Lhs,
typename Rhs>
883 enum { structure_ = Arrays::symmetric_
884 , binary_op_Kind_= Arrays::binary_op_UpSym_LowSym_
887 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
888 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
891 {
return (
i<=
j) ?
f(
l.elt(
i,
j), r.elt(
j,
i)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
897template<
typename FunctorOp,
typename Lhs,
typename Rhs>
901 enum { structure_ = Arrays::square_
902 , binary_op_Kind_= Arrays::binary_op_LowTri_2D_
905 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
906 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
909 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
911template<
typename FunctorOp,
typename Lhs,
typename Rhs>
915 enum { structure_ = Arrays::square_
916 , binary_op_Kind_= Arrays::binary_op_LowTri_2D_
919 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
920 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
923 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
925template<
typename FunctorOp,
typename Lhs,
typename Rhs>
930 enum { structure_ = Arrays::lower_symmetric_
931 , binary_op_Kind_= Arrays::binary_op_LowTri_Diag_
934 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
935 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
940template<
typename FunctorOp,
typename Lhs,
typename Rhs>
945 enum { structure_ = Arrays::square_
946 , binary_op_Kind_= Arrays::binary_op_LowSym_UpTri_
949 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
950 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
955template<
typename FunctorOp,
typename Lhs,
typename Rhs>
960 enum { structure_ = Arrays::lower_triangular_
961 , binary_op_Kind_= Arrays::binary_op_LowSym_LowTri_
964 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
965 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
970template<
typename FunctorOp,
typename Lhs,
typename Rhs>
974 enum { structure_ = Arrays::symmetric_
975 , binary_op_Kind_= Arrays::binary_op_LowSym_Sym_
978 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
979 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
982 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
984template<
typename FunctorOp,
typename Lhs,
typename Rhs>
988 enum { structure_ = Arrays::symmetric_
989 , binary_op_Kind_= Arrays::binary_op_LowSym_UpSym_
992 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
993 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
996 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
j,
i)) :
f(
l.elt(
j,
i), r.elt(
i,
j));}
998template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1002 enum { structure_ = Arrays::lower_symmetric_
1003 , binary_op_Kind_= Arrays::binary_op_LowSym_LowSym_
1006 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1007 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1010 {
return (
i>=
j) ?
f(
l.elt(
i,
j), r.elt(
i,
j)) :
f(
l.elt(
j,
i), r.elt(
j,
i));}
1019template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1025 enum { structure_ = Arrays::diagonal_
1026 , binary_op_Kind_= Arrays::binary_op_1D_
1029 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1030 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1035 {
return f(
l.elt(
i), r.elt(
i));}
1037template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1041 enum { structure_ = Arrays::diagonal_
1042 , binary_op_Kind_= Arrays::binary_op_1D_
1045 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsOtherSize_
1046 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1049 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1051 {
return f(
l.elt(
i), r.elt(
i));}
1053template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1057 enum { structure_ = Arrays::diagonal_
1058 , binary_op_Kind_= Arrays::binary_op_1D_
1061 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1062 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsOtherSize_
1065 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1067 {
return f(
l.elt(
i), r.elt(
i));}
1072template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1076 enum { structure_ = Arrays::diagonal_
1077 , binary_op_Kind_= Arrays::binary_op_1D_
1080 , useForRows_ =
Rhs::sizeRows_ !=
UnknownSize ? Arrays::useRhsSize_ : Arrays::useLhsSize_
1081 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1084 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1086 {
return f(
l.elt(
i), r.elt(
i));}
1088template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1092 enum { structure_ = Arrays::vector_
1093 , binary_op_Kind_= Arrays::binary_op_1D_
1096 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1097 , useForCols_ = Arrays::useLhsSize_
1100 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1102 {
return f(
l.elt(
i), r.elt(
i));}
1104template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1108 enum { structure_ = Arrays::vector_
1109 , binary_op_Kind_= Arrays::binary_op_1D_
1112 , useForRows_ =
Lhs::sizeRows_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsOtherSize_
1113 , useForCols_ = Arrays::useLhsSize_
1116 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1118 {
return f(
l.elt(
i), r.elt(
i));}
1123template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1127 enum { structure_ = Arrays::diagonal_
1128 , binary_op_Kind_= Arrays::binary_op_1D_
1131 , useForRows_ =
Rhs::sizeRows_ !=
UnknownSize ? Arrays::useRhsSize_ : Arrays::useLhsOtherSize_
1132 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1135 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1137 {
return f(
l.elt(
i), r.elt(
i));}
1139template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1143 enum { structure_ = Arrays::point_
1144 , binary_op_Kind_= Arrays::binary_op_1D_
1147 , useForRows_ = Arrays::useLhsSize_
1148 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsOtherSize_
1151 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1153 {
return f(
l.elt(
i), r.elt(
i));}
1155template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1159 enum { structure_ = Arrays::point_
1160 , binary_op_Kind_= Arrays::binary_op_1D_
1163 , useForRows_ = Arrays::useLhsSize_
1164 , useForCols_ =
Lhs::sizeCols_ !=
UnknownSize ? Arrays::useLhsSize_ : Arrays::useRhsSize_
1167 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1169 {
return f(
l.elt(
i), r.elt(
i));}
1174template<
typename FunctorOp,
typename Lhs,
typename Rhs>
1178 enum { structure_ = Arrays::number_
1179 , binary_op_Kind_= Arrays::binary_op_0D_
1182 , useForRows_ = Arrays::useLhsSize_
1183 , useForCols_ = Arrays::useLhsSize_
1186 {
return f(
l.elt(
i,
j), r.elt(
i,
j));}
1188 {
return f(
l.elt(
i), r.elt(
i));}
1190 {
return f(
l.elt(), r.elt());}
1201template<
typename Lhs,
typename Rhs,
int Size_,
int useForRows_>
1210template<
typename Lhs,
typename Rhs,
int Size_,
int useForCols_>
1215template<
typename Lhs,
typename Rhs,
int Size_>
1226template<
typename Lhs,
typename Rhs,
int Size_>
1237template<
typename Lhs,
typename Rhs,
int Size_>
1248template<
typename Lhs,
typename Rhs,
int Size_>
1259template<
typename Lhs,
typename Rhs,
int Size_>
1270template<
typename Lhs,
typename Rhs,
int Size_>
1281template<
typename Lhs,
typename Rhs,
int Size_>
1292template<
typename Lhs,
typename Rhs,
int Size_>
1303template<
typename Lhs,
int Size_,
int use_>
1312template<
typename Lhs,
int Size_>
1321template<
typename Lhs,
int Size_>
1339{
enum { structure_ = Arrays::upper_triangular_}; };
1342{
enum { structure_ = Arrays::lower_triangular_}; };
1345{
enum { structure_ = Arrays::upper_symmetric_}; };
1348{
enum { structure_ = Arrays::lower_symmetric_}; };
1351{
enum { structure_ = Arrays::point_}; };
1354{
enum { structure_ = Arrays::vector_}; };
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
@ array2D_
general matrix/array/expression
@ square_
square matrix/array/expression
@ binary_op_2D_
both operand are array2d or square
const int UnknownSize
This value means that an integer is not known at compile-time, and that instead the value is stored i...
The namespace STK is the main domain space of the Statistical ToolKit project.
static ColRange const & colsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > ColRange
Type of the Range for the columns.
TRange< Size_ > ColRange
Type of the Range for the columns.
static ColRange const & colsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > ColRange
Type of the Range for the columns.
static ColRange const & colsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > ColRange
Type of the Range for the columns.
static ColRange const & colsImpl(Lhs const &lhs, Rhs const &rhs)
implement the access to the columns of the BinaryOperator Possible cases are:
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt0Impl(FunctorOp const &f, Lhs const &l, Rhs const &r)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
FunctorOp::result_type result_type
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
FunctorOp::result_type result_type
static result_type elt1Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i)
static result_type elt2Impl(FunctorOp const &f, Lhs const &l, Rhs const &r, int i, int j)
FunctorOp::result_type result_type
Helper class giving the Structure of a binary operator.
TRange< Size_ > RowRange
Type of the Range for the rows.
static RowRange const & rowsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > RowRange
Type of the Range for the rows.
static RowRange const & rowsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > RowRange
Type of the Range for the rows.
static RowRange const & rowsImpl(Lhs const &lhs, Rhs const &rhs)
TRange< Size_ > RowRange
Type of the Range for the rows.
static RowRange const & rowsImpl(Lhs const &lhs, Rhs const &rhs)
implement the access to the rows of the BinaryOperator Possible cases are:
static RangeType const & rangeImpl(Lhs const &lhs)
TRange< Size_ > RangeType
Type of the Range for the rows.
TRange< Size_ > RangeType
Type of the Range for the rows.
static RangeType const & rangeImpl(Lhs const &lhs)
Allow to disambiguate the call to range to use.
static RangeType const & rangeImpl(Lhs const &lhs)
TRange< Size_ > RangeType
Type of the Range for the rows.
Helper Traits class for transposed operator.