File: fullrfk.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (23 lines) | stat: -rw-r--r-- 575 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function [Bk,Ck]=fullrfk(A,k)
// This macro computes the full rank factorization of A^k i.e.
// Bk*Ck=A^k where Bk is full column rank and Ck full row rank.
// One has Range(Bk)=Range(A^k) and ker(Ck)=ker(A^k).
// For k=1 fullrfk is the same as fullrf.
// F.D (1990)
//!
// Copyright INRIA
[lhs,rhs]=argn(0);
if rhs==1,
    k=1;end
[n,n]=size(A);
//k=0
if k==0,
   Bk=eye(n,n);Ck=Bk;return;end
//k=1
if k==1,
   [Bk,Ck]=fullrf(A);return;end
[Bk,Ck]=fullrf(A);B=Bk;C=Ck;
for l=2:k
  [B,C,dim]=fullrf(C*B);
  Bk=Bk*B;Ck=C*Ck;     // Bk*Ck = A^k  (Full rank factorization)
end;