Classes | Functions
vnl_diag_matrix.h File Reference

Contains class for diagonal matrices. More...

#include <iosfwd>
#include <cassert>
#include <vnl/vnl_vector.h>
#include <vnl/vnl_matrix.h>
#include "vnl/vnl_export.h"

Go to the source code of this file.

Classes

class  vnl_diag_matrix< T >
 stores a diagonal matrix as a single vector. More...
 
class  vnl_diag_matrix< T >
 stores a diagonal matrix as a single vector. More...
 

Functions

template<class T >
VNL_EXPORT vnl_vector< T > operator * (vnl_diag_matrix< T > const &, vnl_vector< T > const &)
 Multiply a vnl_diag_matrix by a vnl_vector. n flops. More...
 
template<class T >
VNL_EXPORT std::ostream & operator<< (std::ostream &, vnl_diag_matrix< T > const &)
 Print in MATLAB diag([1 2 3]) form. More...
 
template<class T >
vnl_diag_matrix< T > operator * (vnl_diag_matrix< T > const &A, vnl_diag_matrix< T > const &B)
 Multiply two vnl_diag_matrices. Just multiply the diag elements - n flops. More...
 
template<class T >
vnl_matrix< T > operator * (vnl_matrix< T > const &A, vnl_diag_matrix< T > const &D)
 Multiply a vnl_matrix by a vnl_diag_matrix. Just scales the columns - mn flops. More...
 
template<class T >
vnl_matrix< T > operator * (vnl_diag_matrix< T > const &D, vnl_matrix< T > const &A)
 Multiply a vnl_diag_matrix by a vnl_matrix. Just scales the rows - mn flops. More...
 
template<class T >
vnl_diag_matrix< T > operator+ (vnl_diag_matrix< T > const &A, vnl_diag_matrix< T > const &B)
 Add two vnl_diag_matrices. Just add the diag elements - n flops. More...
 
template<class T >
vnl_matrix< T > operator+ (vnl_matrix< T > const &A, vnl_diag_matrix< T > const &D)
 Add a vnl_diag_matrix to a vnl_matrix. n adds, mn copies. More...
 
template<class T >
vnl_matrix< T > operator+ (vnl_diag_matrix< T > const &D, vnl_matrix< T > const &A)
 Add a vnl_matrix to a vnl_diag_matrix. n adds, mn copies. More...
 
template<class T >
vnl_diag_matrix< T > operator- (vnl_diag_matrix< T > const &A, vnl_diag_matrix< T > const &B)
 Subtract two vnl_diag_matrices. Just subtract the diag elements - n flops. More...
 
template<class T >
vnl_matrix< T > operator- (vnl_matrix< T > const &A, vnl_diag_matrix< T > const &D)
 Subtract a vnl_diag_matrix from a vnl_matrix. n adds, mn copies. More...
 
template<class T >
vnl_matrix< T > operator- (vnl_diag_matrix< T > const &D, vnl_matrix< T > const &A)
 Subtract a vnl_matrix from a vnl_diag_matrix. n adds, mn copies. More...
 
template<class T >
vnl_vector< T > operator * (vnl_diag_matrix< T > const &D, vnl_vector< T > const &A)
 Multiply a vnl_diag_matrix by a vnl_vector. n flops. More...
 
template<class T >
vnl_vector< T > operator * (vnl_vector< T > const &A, vnl_diag_matrix< T > const &D)
 Multiply a vnl_vector by a vnl_diag_matrix. n flops. More...
 

Detailed Description

Contains class for diagonal matrices.

Author
Andrew W. Fitzgibbon (Oxford RRG)
Date
5 Aug 1996
  Modifications
   IMS (Manchester) 16 Mar 2001: Tidied up the documentation + added binary_io
   Feb.2002 - Peter Vanroose - brief doxygen comment placed on single line
   Sep.2002 - Peter Vanroose - Added operator+, operator-, operator*
   Mar.2004 - Peter Vanroose - removed deprecated resize()
   Oct.2010 - Peter Vanroose - mutators and setters now return *this
   Jan.2011 - Peter Vanroose - added methods set_diagonal() & get_diagonal()

Definition in file vnl_diag_matrix.h.

Function Documentation

◆ operator *() [1/6]

template<class T >
VNL_EXPORT vnl_vector<T> operator * ( vnl_diag_matrix< T > const &  ,
vnl_vector< T > const &   
)
inline

Multiply a vnl_diag_matrix by a vnl_vector. n flops.

Definition at line 352 of file vnl_diag_matrix.h.

◆ operator *() [2/6]

template<class T >
vnl_diag_matrix< T > operator * ( vnl_diag_matrix< T > const &  A,
vnl_diag_matrix< T > const &  B 
)
inline

Multiply two vnl_diag_matrices. Just multiply the diag elements - n flops.

Definition at line 226 of file vnl_diag_matrix.h.

◆ operator *() [3/6]

template<class T >
vnl_matrix< T > operator * ( vnl_matrix< T > const &  A,
vnl_diag_matrix< T > const &  D 
)
inline

Multiply a vnl_matrix by a vnl_diag_matrix. Just scales the columns - mn flops.

Definition at line 239 of file vnl_diag_matrix.h.

◆ operator *() [4/6]

template<class T >
vnl_matrix< T > operator * ( vnl_diag_matrix< T > const &  D,
vnl_matrix< T > const &  A 
)
inline

Multiply a vnl_diag_matrix by a vnl_matrix. Just scales the rows - mn flops.

Definition at line 253 of file vnl_diag_matrix.h.

◆ operator *() [5/6]

template<class T >
vnl_vector< T > operator * ( vnl_diag_matrix< T > const &  D,
vnl_vector< T > const &  A 
)
inline

Multiply a vnl_diag_matrix by a vnl_vector. n flops.

Definition at line 352 of file vnl_diag_matrix.h.

◆ operator *() [6/6]

template<class T >
vnl_vector< T > operator * ( vnl_vector< T > const &  A,
vnl_diag_matrix< T > const &  D 
)
inline

Multiply a vnl_vector by a vnl_diag_matrix. n flops.

Definition at line 362 of file vnl_diag_matrix.h.

◆ operator+() [1/3]

template<class T >
vnl_diag_matrix< T > operator+ ( vnl_diag_matrix< T > const &  A,
vnl_diag_matrix< T > const &  B 
)
inline

Add two vnl_diag_matrices. Just add the diag elements - n flops.

Definition at line 267 of file vnl_diag_matrix.h.

◆ operator+() [2/3]

template<class T >
vnl_matrix< T > operator+ ( vnl_matrix< T > const &  A,
vnl_diag_matrix< T > const &  D 
)
inline

Add a vnl_diag_matrix to a vnl_matrix. n adds, mn copies.

Definition at line 280 of file vnl_diag_matrix.h.

◆ operator+() [3/3]

template<class T >
vnl_matrix< T > operator+ ( vnl_diag_matrix< T > const &  D,
vnl_matrix< T > const &  A 
)
inline

Add a vnl_matrix to a vnl_diag_matrix. n adds, mn copies.

Definition at line 295 of file vnl_diag_matrix.h.

◆ operator-() [1/3]

template<class T >
vnl_diag_matrix< T > operator- ( vnl_diag_matrix< T > const &  A,
vnl_diag_matrix< T > const &  B 
)
inline

Subtract two vnl_diag_matrices. Just subtract the diag elements - n flops.

Definition at line 303 of file vnl_diag_matrix.h.

◆ operator-() [2/3]

template<class T >
vnl_matrix< T > operator- ( vnl_matrix< T > const &  A,
vnl_diag_matrix< T > const &  D 
)
inline

Subtract a vnl_diag_matrix from a vnl_matrix. n adds, mn copies.

Definition at line 316 of file vnl_diag_matrix.h.

◆ operator-() [3/3]

template<class T >
vnl_matrix< T > operator- ( vnl_diag_matrix< T > const &  D,
vnl_matrix< T > const &  A 
)
inline

Subtract a vnl_matrix from a vnl_diag_matrix. n adds, mn copies.

Definition at line 331 of file vnl_diag_matrix.h.

◆ operator<<()

template<class T >
VNL_EXPORT std::ostream & operator<< ( std::ostream &  ,
vnl_diag_matrix< T > const &   
)

Print in MATLAB diag([1 2 3]) form.

Definition at line 37 of file vnl_diag_matrix.hxx.