Changeset fa01b7 in git


Ignore:
Timestamp:
Jul 30, 2001, 6:38:12 PM (22 years ago)
Author:
Mathias Schulze <mschulze@…>
Branches:
(u'spielwiese', '91fdef05f09f54b8d58d92a472e9c4a43aa4656f')
Children:
34a9eb1eb751113c0633d266eb927061823c9864
Parents:
7f96f2576333085049303a2a167373a52265c643
Message:
*mschulze: modified docu of jordanbasis


git-svn-id: file:///usr/local/Singular/svn/trunk@5553 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/linalg.lib

    r7f96f2 rfa01b7  
    11//GMG last modified: 04/25/2000
    22//////////////////////////////////////////////////////////////////////////////
    3 version="$Id: linalg.lib,v 1.14 2001-06-01 12:58:41 mschulze Exp $";
     3version="$Id: linalg.lib,v 1.15 2001-07-30 16:38:12 mschulze Exp $";
    44category="Linear Algebra";
    55info="
     
    15291529
    15301530proc jordanbasis(matrix M)
    1531 "USAGE:   jordan(M); matrix M
     1531"USAGE:   jordanbasis(M); matrix M
    15321532ASSUME:  M constant square matrix, eigenvalues of M in coefficient field
    15331533RETURN:  matrix U with inverse(U)*M*U in Jordan normal form
     
    15611561
    15621562  int j,k,l;
    1563   matrix N,NN;
     1563  matrix N0,N1;
    15641564  module K0,K1;
    15651565  list K;
     
    15691569  for(i=ncols(e);i>0;i--)
    15701570  {
    1571     N=M-e[i]*freemodule(ncols(M));
     1571    N0=M-e[i]*freemodule(ncols(M));
    15721572
    15731573    K0=0;
    1574     NN=N;
     1574    N1=N0;
    15751575    K=module();
    15761576    while(size(K0)<m[i])
    15771577    {
    1578       K0=syz(NN);
     1578      K0=syz(N1);
    15791579      K=K+list(K0);
    1580       NN=NN*N;
     1580      N1=N1*N0;
    15811581    }
    15821582
     
    15851585    {
    15861586      K0=K[j];
    1587       K[j]=interred(reduce(K[j],std(K1+module(N*K[j+1]))));
     1587      K[j]=interred(reduce(K[j],std(K1+module(N0*K[j+1]))));
    15881588      K1=K0;
    15891589    }
     
    15981598        {
    15991599          U=module(u)+U;
    1600           u=N*u;
     1600          u=N0*u;
    16011601        }
    16021602      }
Note: See TracChangeset for help on using the changeset viewer.