LowerMatrix.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_ADAPTORS_LOWERMATRIX_H_
36 #define _BLAZE_MATH_ADAPTORS_LOWERMATRIX_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
46 #include <blaze/math/Forward.h>
66 
67 
68 namespace blaze {
69 
70 //=================================================================================================
71 //
72 // LOWERMATRIX OPERATORS
73 //
74 //=================================================================================================
75 
76 //*************************************************************************************************
79 template< typename MT, bool SO, bool DF >
80 inline void reset( LowerMatrix<MT,SO,DF>& m );
81 
82 template< typename MT, bool SO, bool DF >
83 inline void reset( LowerMatrix<MT,SO,DF>& m, size_t i );
84 
85 template< typename MT, bool SO, bool DF >
86 inline void clear( LowerMatrix<MT,SO,DF>& m );
87 
88 template< typename MT, bool SO, bool DF >
89 inline bool isDefault( const LowerMatrix<MT,SO,DF>& m );
90 
91 template< typename MT, bool SO, bool DF >
92 inline void swap( LowerMatrix<MT,SO,DF>& a, LowerMatrix<MT,SO,DF>& b ) /* throw() */;
94 //*************************************************************************************************
95 
96 
97 //*************************************************************************************************
104 template< typename MT // Type of the adapted matrix
105  , bool SO // Storage order of the adapted matrix
106  , bool DF > // Density flag
107 inline void reset( LowerMatrix<MT,SO,DF>& m )
108 {
109  m.reset();
110 }
111 //*************************************************************************************************
112 
113 
114 //*************************************************************************************************
127 template< typename MT // Type of the adapted matrix
128  , bool SO // Storage order of the adapted matrix
129  , bool DF > // Density flag
130 inline void reset( LowerMatrix<MT,SO,DF>& m, size_t i )
131 {
132  m.reset( i );
133 }
134 //*************************************************************************************************
135 
136 
137 //*************************************************************************************************
144 template< typename MT // Type of the adapted matrix
145  , bool SO // Storage order of the adapted matrix
146  , bool DF > // Density flag
147 inline void clear( LowerMatrix<MT,SO,DF>& m )
148 {
149  m.clear();
150 }
151 //*************************************************************************************************
152 
153 
154 //*************************************************************************************************
172 template< typename MT // Type of the adapted matrix
173  , bool SO // Storage order of the adapted matrix
174  , bool DF > // Density flag
175 inline bool isDefault( const LowerMatrix<MT,SO,DF>& m )
176 {
177  return isDefault( m.matrix_ );
178 }
179 //*************************************************************************************************
180 
181 
182 //*************************************************************************************************
191 template< typename MT // Type of the adapted matrix
192  , bool SO // Storage order of the adapted matrix
193  , bool DF > // Density flag
194 inline void swap( LowerMatrix<MT,SO,DF>& a, LowerMatrix<MT,SO,DF>& b ) /* throw() */
195 {
196  a.swap( b );
197 }
198 //*************************************************************************************************
199 
200 
201 //*************************************************************************************************
215 template< typename MT // Type of the adapted matrix
216  , bool SO // Storage order of the adapted matrix
217  , bool DF > // Density flag
218 inline MT& derestrict( LowerMatrix<MT,SO,DF>& m )
219 {
220  return m.matrix_;
221 }
223 //*************************************************************************************************
224 
225 
226 
227 
228 //=================================================================================================
229 //
230 // ROWS SPECIALIZATIONS
231 //
232 //=================================================================================================
233 
234 //*************************************************************************************************
236 template< typename MT, bool SO, bool DF >
237 struct Rows< LowerMatrix<MT,SO,DF> > : public Rows<MT>
238 {};
240 //*************************************************************************************************
241 
242 
243 
244 
245 //=================================================================================================
246 //
247 // COLUMNS SPECIALIZATIONS
248 //
249 //=================================================================================================
250 
251 //*************************************************************************************************
253 template< typename MT, bool SO, bool DF >
254 struct Columns< LowerMatrix<MT,SO,DF> > : public Columns<MT>
255 {};
257 //*************************************************************************************************
258 
259 
260 
261 
262 //=================================================================================================
263 //
264 // ISSQUARE SPECIALIZATIONS
265 //
266 //=================================================================================================
267 
268 //*************************************************************************************************
270 template< typename MT, bool SO, bool DF >
271 struct IsSquare< LowerMatrix<MT,SO,DF> > : public TrueType
272 {
273  enum { value = 1 };
274  typedef TrueType Type;
275 };
277 //*************************************************************************************************
278 
279 
280 
281 
282 //=================================================================================================
283 //
284 // ISLOWER SPECIALIZATIONS
285 //
286 //=================================================================================================
287 
288 //*************************************************************************************************
290 template< typename MT, bool SO, bool DF >
291 struct IsLower< LowerMatrix<MT,SO,DF> > : public TrueType
292 {
293  enum { value = 1 };
294  typedef TrueType Type;
295 };
297 //*************************************************************************************************
298 
299 
300 
301 
302 //=================================================================================================
303 //
304 // ISADAPTOR SPECIALIZATIONS
305 //
306 //=================================================================================================
307 
308 //*************************************************************************************************
310 template< typename MT, bool SO, bool DF >
311 struct IsAdaptor< LowerMatrix<MT,SO,DF> > : public TrueType
312 {
313  enum { value = 1 };
314  typedef TrueType Type;
315 };
317 //*************************************************************************************************
318 
319 
320 
321 
322 //=================================================================================================
323 //
324 // ISRESTRICTED SPECIALIZATIONS
325 //
326 //=================================================================================================
327 
328 //*************************************************************************************************
330 template< typename MT, bool SO, bool DF >
331 struct IsRestricted< LowerMatrix<MT,SO,DF> > : public TrueType
332 {
333  enum { value = 1 };
334  typedef TrueType Type;
335 };
337 //*************************************************************************************************
338 
339 
340 
341 
342 //=================================================================================================
343 //
344 // HASCONSTDATAACCESS SPECIALIZATIONS
345 //
346 //=================================================================================================
347 
348 //*************************************************************************************************
350 template< typename MT, bool SO >
351 struct HasConstDataAccess< LowerMatrix<MT,SO,true> > : public TrueType
352 {
353  enum { value = 1 };
354  typedef TrueType Type;
355 };
357 //*************************************************************************************************
358 
359 
360 
361 
362 //=================================================================================================
363 //
364 // ISRESIZABLE SPECIALIZATIONS
365 //
366 //=================================================================================================
367 
368 //*************************************************************************************************
370 template< typename MT, bool SO, bool DF >
371 struct IsResizable< LowerMatrix<MT,SO,DF> > : public IsResizable<MT>::Type
372 {
373  enum { value = IsResizable<MT>::value };
374  typedef typename IsResizable<MT>::Type Type;
375 };
377 //*************************************************************************************************
378 
379 
380 
381 
382 //=================================================================================================
383 //
384 // REMOVEADAPTOR SPECIALIZATIONS
385 //
386 //=================================================================================================
387 
388 //*************************************************************************************************
390 template< typename MT, bool SO, bool DF >
391 struct RemoveAdaptor< LowerMatrix<MT,SO,DF> >
392 {
393  typedef MT Type;
394 };
396 //*************************************************************************************************
397 
398 
399 
400 
401 //=================================================================================================
402 //
403 // DERESTRICTTRAIT SPECIALIZATIONS
404 //
405 //=================================================================================================
406 
407 //*************************************************************************************************
409 template< typename MT, bool SO, bool DF >
410 struct DerestrictTrait< LowerMatrix<MT,SO,DF> >
411 {
412  typedef MT& Type;
413 };
415 //*************************************************************************************************
416 
417 
418 
419 
420 //=================================================================================================
421 //
422 // ADDTRAIT SPECIALIZATIONS
423 //
424 //=================================================================================================
425 
426 //*************************************************************************************************
428 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
429 struct AddTrait< LowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
430 {
431  typedef typename AddTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
432 };
433 
434 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
435 struct AddTrait< StaticMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
436 {
437  typedef typename AddTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
438 };
439 
440 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
441 struct AddTrait< LowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
442 {
443  typedef typename AddTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
444 };
445 
446 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
447 struct AddTrait< HybridMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
448 {
449  typedef typename AddTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
450 };
451 
452 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
453 struct AddTrait< LowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
454 {
455  typedef typename AddTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
456 };
457 
458 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
459 struct AddTrait< DynamicMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
460 {
461  typedef typename AddTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
462 };
463 
464 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
465 struct AddTrait< LowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
466 {
467  typedef typename AddTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
468 };
469 
470 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
471 struct AddTrait< CompressedMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
472 {
473  typedef typename AddTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
474 };
475 
476 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2, bool NF >
477 struct AddTrait< LowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
478 {
479  typedef typename AddTrait<MT1,MT2>::Type Type;
480 };
481 
482 template< typename MT1, bool SO1, bool DF1, bool NF, typename MT2, bool SO2, bool DF2 >
483 struct AddTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, LowerMatrix<MT2,SO2,DF2> >
484 {
485  typedef typename AddTrait<MT1,MT2>::Type Type;
486 };
487 
488 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2 >
489 struct AddTrait< LowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
490 {
491  typedef LowerMatrix< typename AddTrait<MT1,MT2>::Type > Type;
492 };
494 //*************************************************************************************************
495 
496 
497 
498 
499 //=================================================================================================
500 //
501 // SUBTRAIT SPECIALIZATIONS
502 //
503 //=================================================================================================
504 
505 //*************************************************************************************************
507 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
508 struct SubTrait< LowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
509 {
510  typedef typename SubTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
511 };
512 
513 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
514 struct SubTrait< StaticMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
515 {
516  typedef typename SubTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
517 };
518 
519 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
520 struct SubTrait< LowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
521 {
522  typedef typename SubTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
523 };
524 
525 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
526 struct SubTrait< HybridMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
527 {
528  typedef typename SubTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
529 };
530 
531 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
532 struct SubTrait< LowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
533 {
534  typedef typename SubTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
535 };
536 
537 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
538 struct SubTrait< DynamicMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
539 {
540  typedef typename SubTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
541 };
542 
543 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
544 struct SubTrait< LowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
545 {
546  typedef typename SubTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
547 };
548 
549 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
550 struct SubTrait< CompressedMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
551 {
552  typedef typename SubTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
553 };
554 
555 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2, bool NF >
556 struct SubTrait< LowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
557 {
558  typedef typename SubTrait<MT1,MT2>::Type Type;
559 };
560 
561 template< typename MT1, bool SO1, bool DF1, bool NF, typename MT2, bool SO2, bool DF2 >
562 struct SubTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, LowerMatrix<MT2,SO2,DF2> >
563 {
564  typedef typename SubTrait<MT1,MT2>::Type Type;
565 };
566 
567 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2 >
568 struct SubTrait< LowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
569 {
570  typedef LowerMatrix< typename SubTrait<MT1,MT2>::Type > Type;
571 };
573 //*************************************************************************************************
574 
575 
576 
577 
578 //=================================================================================================
579 //
580 // MULTTRAIT SPECIALIZATIONS
581 //
582 //=================================================================================================
583 
584 //*************************************************************************************************
586 template< typename MT, bool SO, bool DF, typename T >
587 struct MultTrait< LowerMatrix<MT,SO,DF>, T >
588 {
589  typedef LowerMatrix< typename MultTrait<MT,T>::Type > Type;
591 };
592 
593 template< typename T, typename MT, bool SO, bool DF >
594 struct MultTrait< T, LowerMatrix<MT,SO,DF> >
595 {
596  typedef LowerMatrix< typename MultTrait<T,MT>::Type > Type;
598 };
599 
600 template< typename MT, bool SO, bool DF, typename T, size_t N >
601 struct MultTrait< LowerMatrix<MT,SO,DF>, StaticVector<T,N,false> >
602 {
603  typedef typename MultTrait< MT, StaticVector<T,N,false> >::Type Type;
604 };
605 
606 template< typename T, size_t N, typename MT, bool SO, bool DF >
607 struct MultTrait< StaticVector<T,N,true>, LowerMatrix<MT,SO,DF> >
608 {
609  typedef typename MultTrait< StaticVector<T,N,true>, MT >::Type Type;
610 };
611 
612 template< typename MT, bool SO, bool DF, typename T, size_t N >
613 struct MultTrait< LowerMatrix<MT,SO,DF>, HybridVector<T,N,false> >
614 {
615  typedef typename MultTrait< MT, HybridVector<T,N,false> >::Type Type;
616 };
617 
618 template< typename T, size_t N, typename MT, bool SO, bool DF >
619 struct MultTrait< HybridVector<T,N,true>, LowerMatrix<MT,SO,DF> >
620 {
621  typedef typename MultTrait< HybridVector<T,N,true>, MT >::Type Type;
622 };
623 
624 template< typename MT, bool SO, bool DF, typename T >
625 struct MultTrait< LowerMatrix<MT,SO,DF>, DynamicVector<T,false> >
626 {
627  typedef typename MultTrait< MT, DynamicVector<T,false> >::Type Type;
628 };
629 
630 template< typename T, typename MT, bool SO, bool DF >
631 struct MultTrait< DynamicVector<T,true>, LowerMatrix<MT,SO,DF> >
632 {
633  typedef typename MultTrait< DynamicVector<T,true>, MT >::Type Type;
634 };
635 
636 template< typename MT, bool SO, bool DF, typename T >
637 struct MultTrait< LowerMatrix<MT,SO,DF>, CompressedVector<T,false> >
638 {
639  typedef typename MultTrait< MT, CompressedVector<T,false> >::Type Type;
640 };
641 
642 template< typename T, typename MT, bool SO, bool DF >
643 struct MultTrait< CompressedVector<T,true>, LowerMatrix<MT,SO,DF> >
644 {
645  typedef typename MultTrait< CompressedVector<T,true>, MT >::Type Type;
646 };
647 
648 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
649 struct MultTrait< LowerMatrix<MT,SO1,DF>, StaticMatrix<T,M,N,SO2> >
650 {
651  typedef typename MultTrait< MT, StaticMatrix<T,M,N,SO2> >::Type Type;
652 };
653 
654 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
655 struct MultTrait< StaticMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
656 {
657  typedef typename MultTrait< StaticMatrix<T,M,N,SO1>, MT >::Type Type;
658 };
659 
660 template< typename MT, bool SO1, bool DF, typename T, size_t M, size_t N, bool SO2 >
661 struct MultTrait< LowerMatrix<MT,SO1,DF>, HybridMatrix<T,M,N,SO2> >
662 {
663  typedef typename MultTrait< MT, HybridMatrix<T,M,N,SO2> >::Type Type;
664 };
665 
666 template< typename T, size_t M, size_t N, bool SO1, typename MT, bool SO2, bool DF >
667 struct MultTrait< HybridMatrix<T,M,N,SO1>, LowerMatrix<MT,SO2,DF> >
668 {
669  typedef typename MultTrait< HybridMatrix<T,M,N,SO1>, MT >::Type Type;
670 };
671 
672 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
673 struct MultTrait< LowerMatrix<MT,SO1,DF>, DynamicMatrix<T,SO2> >
674 {
675  typedef typename MultTrait< MT, DynamicMatrix<T,SO2> >::Type Type;
676 };
677 
678 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
679 struct MultTrait< DynamicMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
680 {
681  typedef typename MultTrait< DynamicMatrix<T,SO1>, MT >::Type Type;
682 };
683 
684 template< typename MT, bool SO1, bool DF, typename T, bool SO2 >
685 struct MultTrait< LowerMatrix<MT,SO1,DF>, CompressedMatrix<T,SO2> >
686 {
687  typedef typename MultTrait< MT, CompressedMatrix<T,SO2> >::Type Type;
688 };
689 
690 template< typename T, bool SO1, typename MT, bool SO2, bool DF >
691 struct MultTrait< CompressedMatrix<T,SO1>, LowerMatrix<MT,SO2,DF> >
692 {
693  typedef typename MultTrait< CompressedMatrix<T,SO1>, MT >::Type Type;
694 };
695 
696 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2, bool NF >
697 struct MultTrait< LowerMatrix<MT1,SO1,DF1>, SymmetricMatrix<MT2,SO2,DF2,NF> >
698 {
699  typedef typename MultTrait<MT1,MT2>::Type Type;
700 };
701 
702 template< typename MT1, bool SO1, bool DF1, bool NF, typename MT2, bool SO2, bool DF2 >
703 struct MultTrait< SymmetricMatrix<MT1,SO1,DF1,NF>, LowerMatrix<MT2,SO2,DF2> >
704 {
705  typedef typename MultTrait<MT1,MT2>::Type Type;
706 };
707 
708 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2 >
709 struct MultTrait< LowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
710 {
711  typedef LowerMatrix< typename MultTrait<MT1,MT2>::Type > Type;
712 };
714 //*************************************************************************************************
715 
716 
717 
718 
719 //=================================================================================================
720 //
721 // DIVTRAIT SPECIALIZATIONS
722 //
723 //=================================================================================================
724 
725 //*************************************************************************************************
727 template< typename MT, bool SO, bool DF, typename T >
728 struct DivTrait< LowerMatrix<MT,SO,DF>, T >
729 {
730  typedef LowerMatrix< typename DivTrait<MT,T>::Type > Type;
732 };
734 //*************************************************************************************************
735 
736 
737 
738 
739 //=================================================================================================
740 //
741 // MATHTRAIT SPECIALIZATIONS
742 //
743 //=================================================================================================
744 
745 //*************************************************************************************************
747 template< typename MT1, bool SO1, bool DF1, typename MT2, bool SO2, bool DF2 >
748 struct MathTrait< LowerMatrix<MT1,SO1,DF1>, LowerMatrix<MT2,SO2,DF2> >
749 {
750  typedef LowerMatrix< typename MathTrait<MT1,MT2>::HighType > HighType;
751  typedef LowerMatrix< typename MathTrait<MT1,MT2>::LowType > LowType;
752 };
754 //*************************************************************************************************
755 
756 
757 
758 
759 //=================================================================================================
760 //
761 // SUBMATRIXTRAIT SPECIALIZATIONS
762 //
763 //=================================================================================================
764 
765 //*************************************************************************************************
767 template< typename MT, bool SO, bool DF >
768 struct SubmatrixTrait< LowerMatrix<MT,SO,DF> >
769 {
770  typedef typename SubmatrixTrait<MT>::Type Type;
771 };
773 //*************************************************************************************************
774 
775 
776 
777 
778 //=================================================================================================
779 //
780 // ROWTRAIT SPECIALIZATIONS
781 //
782 //=================================================================================================
783 
784 //*************************************************************************************************
786 template< typename MT, bool SO, bool DF >
787 struct RowTrait< LowerMatrix<MT,SO,DF> >
788 {
789  typedef typename RowTrait<MT>::Type Type;
790 };
792 //*************************************************************************************************
793 
794 
795 
796 
797 //=================================================================================================
798 //
799 // COLUMNTRAIT SPECIALIZATIONS
800 //
801 //=================================================================================================
802 
803 //*************************************************************************************************
805 template< typename MT, bool SO, bool DF >
806 struct ColumnTrait< LowerMatrix<MT,SO,DF> >
807 {
808  typedef typename ColumnTrait<MT>::Type Type;
809 };
811 //*************************************************************************************************
812 
813 } // namespace blaze
814 
815 #endif
Constraint on the data type.
Header file for the Rows type trait.
Header file for the subtraction trait.
Header file for the row trait.
LowerMatrix specialization for dense matrices.
Matrix adapter for lower triangular matrices.
Definition: Forward.h:48
void reset(const DiagonalProxy< MT > &proxy)
Resetting the represented element to the default initial values.
Definition: DiagonalProxy.h:821
bool isDefault(const DiagonalProxy< MT > &proxy)
Returns whether the represented element is in default state.
Definition: DiagonalProxy.h:861
Header file for the IsSquare type trait.
Header file for the multiplication trait.
Header file for the implementation of the base template of the LowerMatrix.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for all forward declarations of the math module.
Header file for the Columns type trait.
Header file for the IsLower type trait.
Header file for the RemoveAdaptor type trait.
void clear(const DiagonalProxy< MT > &proxy)
Clearing the represented element.
Definition: DiagonalProxy.h:841
Header file for the IsAdaptor type trait.
Header file for the DerestrictTrait class template.
Header file for the HasConstDataAccess type trait.
Header file for the addition trait.
Header file for the division trait.
Header file for the submatrix trait.
#define BLAZE_CONSTRAINT_MUST_BE_NUMERIC_TYPE(T)
Constraint on the data type.In case the given data type T is not a numeric (integral or floating poin...
Definition: Numeric.h:79
Header file for the column trait.
void swap(DiagonalMatrix< MT, SO, DF > &a, DiagonalMatrix< MT, SO, DF > &b)
Swapping the contents of two matrices.
Definition: DiagonalMatrix.h:200
Header file for the mathematical trait.
LowerMatrix specialization for sparse matrices.
boost::true_type TrueType
Type traits base class.The TrueType class is used as base class for type traits and value traits that...
Definition: TrueType.h:61
Header file for the IsResizable type trait.
Header file for the IsRestricted type trait.