#### D.3.2.23 jordanbasis

Procedure from library `linalg.lib` (see linalg_lib).

Usage:
  jordanbasis(M); matrix M

Assume:
  eigenvalues of M in basefield

Return:

      list l:
        module l[1];  inverse(l[1])*M*l[1] in Jordan normal form
        intvec l[2];
          int l[2][i];  weight filtration index of l[1][i]

Example:

    LIB "linalg.lib";
    ring R=0,x,dp;
    matrix M[3][3]=3,2,1,0,2,1,0,0,3;
    print(M);
    ==> 3,2,1,
    ==> 0,2,1,
    ==> 0,0,3
    list l=jordanbasis(M);
    print(l[1]);
    ==> -2,0,3,
    ==> 1, 1,0,
    ==> 0, 1,0
    print(l[2]);
    ==> 0,
    ==> 1,
    ==> -1
    print(inverse(l[1])*M*l[1]);
    ==> 2,0,0,
    ==> 0,3,0,
    ==> 0,1,3

User manual for Singular version 4.4.1, 2025, generated by texi2html.