<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
<MAN>
  <LANGUAGE>eng</LANGUAGE>
  <TITLE>fullrf</TITLE>
  <TYPE>Scilab Function</TYPE>
  <DATE>April 1993</DATE>
  <SHORT_DESCRIPTION name="fullrf"> full rank factorization</SHORT_DESCRIPTION>
  <CALLING_SEQUENCE>
    <CALLING_SEQUENCE_ITEM>[Q,M,rk]=fullrf(A,[tol])  </CALLING_SEQUENCE_ITEM>
  </CALLING_SEQUENCE>
  <PARAM>
    <PARAM_INDENT>
      <PARAM_ITEM>
        <PARAM_NAME>A</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: real or complex matrix</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>tol</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: real number (threshold for rank determination)</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>Q,M</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: real or complex matrix</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>rk</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: integer (rank of <VERB>A</VERB>)</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
    </PARAM_INDENT>
  </PARAM>
  <DESCRIPTION>
    <P>
    Full rank factorization : <VERB>fullrf</VERB> returns <VERB>Q</VERB> and <VERB>M</VERB> such
    that <VERB>A = Q*M</VERB>
    with range(<VERB>Q</VERB>)=range(<VERB>A</VERB>) and ker(<VERB>M</VERB>)=ker(<VERB>A</VERB>),
    <VERB>Q</VERB> full column rank , <VERB>M</VERB> full row rank,
    <VERB>rk = rank(A) = #columns(Q) = #rows(M)</VERB>.</P>
    <P><VERB>tol</VERB> is an optional real parameter (default value is <VERB>sqrt(%eps)</VERB>).
    The rank <VERB>rk</VERB> of <VERB>A</VERB> is defined as the number of singular values
    larger than <VERB>norm(A)*tol</VERB>.</P>
    <P>
    If A is symmetric, <VERB>fullrf</VERB> returns <VERB>M=Q'</VERB>.</P>
  </DESCRIPTION>
  <EXAMPLE>
<![CDATA[
A=rand(5,2)*rand(2,5);
[Q,M]=fullrf(A);
norm(Q*M-A,1)
[X,d]=rowcomp(A);Y=X';
svd([A,Y(:,1:d),Q])        //span(Q) = span(A) = span(Y(:,1:2))
 ]]>
  </EXAMPLE>
  <SEE_ALSO>
    <SEE_ALSO_ITEM>
      <LINK>svd</LINK>
    </SEE_ALSO_ITEM>
    <SEE_ALSO_ITEM>
      <LINK>qr</LINK>
    </SEE_ALSO_ITEM>
    <SEE_ALSO_ITEM>
      <LINK>fullrfk</LINK>
    </SEE_ALSO_ITEM>
    <SEE_ALSO_ITEM>
      <LINK>rowcomp</LINK>
    </SEE_ALSO_ITEM>
    <SEE_ALSO_ITEM>
      <LINK>colcomp</LINK>
    </SEE_ALSO_ITEM>
  </SEE_ALSO>
  <AUTHOR>F.D.;   </AUTHOR>
</MAN>
