linalg(deprecated)/ismith - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : linalg(deprecated)/ismith

linalg(deprecated)

  

ismith

  

integer-only Smith normal form

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

ismith(A)

ismith(A, U, V)

Parameters

A

-

rectangular matrix of integers

U

-

name

V

-

name

Description

• 

Important: The linalg package has been deprecated. Use the superseding packages, LinearAlgebra and VectorCalculus, instead.

  

- For information on migrating linalg code to the new packages, see examples/LinearAlgebraMigration.

• 

The function ismith computes the Smith normal form S of an n by m rectangular matrix of integers.

• 

If two n by n matrices have the same Smith normal form, they are equivalent.

• 

The Smith normal form is a diagonal matrix where

rank(A) = number of nonzero rows (columns) of S

sign(S[i,i]) = 1  for 0 < i <= rank(A)

S[i,i] divides S[i+1,i+1] for 0 < i < rank(A)

product(S[i,i],i=1..r) divides det(M) for all minors M of rank 0 < r <= rank(A)

  

Hence if n = m and rank(A) = n then detA=i=1nSi,i.

• 

The Smith normal form is obtained by doing elementary row and column operations.  This includes interchanging rows (columns), multiplying through a row (column) by -1, and adding integral multiples of one row (column) to another.

• 

Although the rank and determinant can be easily obtained from S this is not an efficient method for computing these quantities except that this may yield a partial factorization of detA without doing any explicit factorizations.

• 

In the case of three arguments, the second argument U and the third argument V will be assigned the transformation matrices on output, such that smith(A) = U &* A &* V.

• 

The command with(linalg,ismith) allows the use of the abbreviated form of this command.

Examples

Important: The linalg package has been deprecated. Use the superseding packages, LinearAlgebra and VectorCalculus, instead.

withlinalg&colon;

Harray9&comma;36&comma;30&comma;36&comma;192&comma;180&comma;30&comma;180&comma;180

H9−3630−36192−18030−180180

(1)

ismithH

30001200060

(2)

Aarray13&comma;5&comma;7&comma;17&comma;31&comma;39

A1357173139

(3)

BismithA&comma;U&comma;V

B100020

(4)

evalU

01−11

(5)

evalV

−47−11−72127−19459−104159

(6)

evalmU&*A&*VB

000000

(7)

See Also

linalg(deprecated)[ihermite]

linalg(deprecated)[smith]

LinearAlgebra

LinearAlgebra[SmithForm]