ConicBundle
Friend Functions of Indexmatrix

## Functions

Indexmatrix CH_Matrix_Classes::diag (const Indexmatrix &A)
returns a column vector v consisting of the elements v(i)=A(i,i), 0<=i<min(row dimension,column dimension)

void CH_Matrix_Classes::swap (Indexmatrix &A, Indexmatrix &B)
swap the content of the two matrices A and B (involves no copying)

IndexmatrixCH_Matrix_Classes::xbpeya (Indexmatrix &x, const Indexmatrix &y, Integer alpha=1, Integer beta=0, int ytrans=0)
returns x= alpha*y+beta*x, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size More...

IndexmatrixCH_Matrix_Classes::xeyapzb (Indexmatrix &x, const Indexmatrix &y, const Indexmatrix &z, Integer alpha=1, Integer beta=1)
returns x= alpha*y+beta*z; x is initialized to the correct size; alpha and beta have default value 1 More...

IndexmatrixCH_Matrix_Classes::genmult (const Indexmatrix &A, const Indexmatrix &B, Indexmatrix &C, Integer alpha=1, Integer beta=0, int atrans=0, int btrans=0)
returns C=beta*C+alpha*A*B, where A and B may be transposed; C must not be equal to A and B; if beta==0 then C is initialized to the correct size

Indexmatrix CH_Matrix_Classes::transpose (const Indexmatrix &A)
returns an Indexmatrix that is the transpose of A

Indexmatrix CH_Matrix_Classes::abs (const Indexmatrix &A)
returns an Indexmatrix B with entries B(i,j)=abs(A(i,j))

Integer CH_Matrix_Classes::trace (const Indexmatrix &A)
returns the sum of the diagonal elements A(i,i) over all i

Indexmatrix CH_Matrix_Classes::sumrows (const Indexmatrix &A)
returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

Indexmatrix CH_Matrix_Classes::sumcols (const Indexmatrix &A)
returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

Integer CH_Matrix_Classes::sum (const Indexmatrix &A)
returns the sum over all elements of A, i.e., (1 1 ... 1)*A*(1 1 ... 1)^T

Indexmatrix CH_Matrix_Classes::operator< (const Indexmatrix &A, const Indexmatrix &B)
returns a matrix having elements (i,j)=Integer(A(i,j)<B(i,j)) for all i,j

Indexmatrix CH_Matrix_Classes::operator<= (const Indexmatrix &A, const Indexmatrix &B)
returns a matrix having elements (i,j)=Integer(A(i,j)<=B(i,j)) for all i,j

Indexmatrix CH_Matrix_Classes::operator== (const Indexmatrix &A, const Indexmatrix &B)
returns a matrix having elements (i,j)=Integer(A(i,j)==B(i,j)) for all i,j

Indexmatrix CH_Matrix_Classes::operator!= (const Indexmatrix &A, const Indexmatrix &B)
returns a matrix having elements (i,j)=Integer(A(i,j)!=B(i,j)) for all i,j

Indexmatrix CH_Matrix_Classes::operator< (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)<d) for all i,j

Indexmatrix CH_Matrix_Classes::operator> (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)>d) for all i,j

Indexmatrix CH_Matrix_Classes::operator<= (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)<=d) for all i,j

Indexmatrix CH_Matrix_Classes::operator>= (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)>=d) for all i,j

Indexmatrix CH_Matrix_Classes::operator== (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)==d) for all i,j

Indexmatrix CH_Matrix_Classes::operator!= (const Indexmatrix &A, Integer d)
returns a matrix having elements (i,j)=Integer(A(i,j)!=d) for all i,j

Indexmatrix CH_Matrix_Classes::minrows (const Indexmatrix &A)
returns a row vector holding in each column the minimum over all rows in this column

Indexmatrix CH_Matrix_Classes::mincols (const Indexmatrix &A)
returns a column vector holding in each row the minimum over all columns in this row

Integer CH_Matrix_Classes::min (const Indexmatrix &A, Integer *iindex=0, Integer *jindex=0)
returns the minimum value over all elements of the matrix

Indexmatrix CH_Matrix_Classes::maxrows (const Indexmatrix &A)
returns a row vector holding in each column the maximum over all rows in this column

Indexmatrix CH_Matrix_Classes::maxcols (const Indexmatrix &A)
returns a column vector holding in each row the maximum over all columns in this row

Integer CH_Matrix_Classes::max (const Indexmatrix &A, Integer *iindex=0, Integer *jindex=0)
returns the maximum value over all elements of the matrix

Indexmatrix CH_Matrix_Classes::sortindex (const Indexmatrix &vec, bool nondecreasing=true)
returns an Indexmatrix ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

void CH_Matrix_Classes::sortindex (const Indexmatrix &vec, Indexmatrix &ind, bool nondecreasing=true)
sets ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

std::ostream & CH_Matrix_Classes::operator<< (std::ostream &o, const Indexmatrix &A)
output format (all Integer values): nr nc \n A(1,1) A(1,2) ... A(1,nc) \n A(2,1) ... A(nr,nc) \n

std::istream & CH_Matrix_Classes::operator>> (std::istream &i, Indexmatrix &A)
input format (all Integer values): nr nc \n A(1,1) A(1,2) ... A(1,nc) \n A(2,1) ... A(nr,nc) \n

## ◆ xbpeya()

 Indexmatrix& CH_Matrix_Classes::xbpeya ( Indexmatrix & x, const Indexmatrix & y, Integer alpha = `1`, Integer beta = `0`, int ytrans = `0` )

returns x= alpha*y+beta*x, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size

If ytrans

• ==0 [default] : y is used in its usual (non transposed) shape,
• ==1 : the transposed of y is used instead of y.

If beta

• ==0 [default] : x is initialized to alpha*y (transposed) with its dimensions,
• ==1 : alpha*y (tranposed) is added to x
• other : just computes it

If alpha

• ==1 [default] : y is added
• ==-1 : y is subtracted
• ==0 : y is ignored except maybe for its dimension
• other : just computes it

## ◆ xeyapzb()

 Indexmatrix& CH_Matrix_Classes::xeyapzb ( Indexmatrix & x, const Indexmatrix & y, const Indexmatrix & z, Integer alpha = `1`, Integer beta = `1` )

returns x= alpha*y+beta*z; x is initialized to the correct size; alpha and beta have default value 1

returns x= alpha*y+beta*z; x is initialized to the correct size, see CH_Matrix_Classes::xeyapzb() for default values of alpha and beta.