<- minpoly.tex



%%  LyX  1.2  created  this  file.    For  more  info,  see  http://www.lyx.org/.
%%  Do  not  edit  unless  you  really  know  what  you  are  doing.
\documentclass[12pt,english]{book}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
\usepackage{float}
\usepackage{amssymb}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  LyX  specific  LaTeX  commands.
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
\floatstyle{ruled}
\newfloat{algorithm}{htbp}{loa}
\floatname{algorithm}{Algorithm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Textclass  specific  LaTeX  commands.
  \usepackage{amsmath}

  \usepackage{amsthm}
  \theoremstyle{plain}
  \newtheorem{thm}{Theorem}[section]
%%    \numberwithin{equation}{section}  %%  Comment  out  for  sequentially-numbered
%%    \numberwithin{figure}{section}  %%  Comment  out  for  sequentially-numbered

  \usepackage{url}
  \usepackage{html}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  User  specified  LaTeX  commands.
\usepackage{float}
\floatname{algorithm}{Alg.}
\usepackage{algorithmic}

\usepackage{babel}
\makeatother
\begin{document}

\newcommand{\pow}{\:  \widehat{\:  }\,  }
%
\begin{algorithm}
    \begin{algorithmic}[1] 

      \DEF  {    minpoly    }  {            $\left(pA,\,  x\right)$    }     

    \LOCAL    $localA,\,  An,\,  systab,\,  m,\,  n,\,  s,\,  c,\,  clast,\,  r,\,  t,\,  i,\,  t1$

    \IF  {    $not\,  type\left(pA,\,  'matrix'\right)$    } 

    \STATE    $localA:=evalm\left(pA\right)$  ; 

    \ELSE

    \STATE    $localA:=pA$  ; 

    \ENDIF

    \IF  {    $not\,  type\left(localA,\,  'matrix'\left(anything,\,  'square'\right)\right)$
  } 

    \STATE  \ERROR        \char`\"{}expecting  square  matrix\char`\"{}   

    \ELSIF  {    $nargs\neq  2\,  or\,  not\,  type\left(x,\,  'name'\right)$
  } 

    \STATE  \ERROR        \char`\"{}wrong  number  or  type  of  arguments\char`\"{}
 

    \ENDIF

    \STATE    $n:=linalg['rowdim']\left(localA\right)$  ; 

    \STATE    $An:=array\left(1..n,\,  1..n,\,  'identity'\right)$  ; 

    \STATE    $systab[1]:=consysrow\left(An,\,  n,\,  1\right)$  ; 

    \FOR  {      $r$      \FROM      $2$    \TO      $n+1$  WHILE  $nonzero\left(systab[r-1],\,  n\right)$
  } 

    \STATE    $An:=map\left(n\,  or\,  mal,\,  multiply\left(An,\,  localA\right)\right)$


    \STATE    $systab[r]:=consysrow\left(An,\,  n,\,  r\right)$  ; 

    \STATE    $clast:=1$  ; 

    \FOR  {      $s$    \TO      $r-1$    } 

    \FOR  {      $c$      \FROM      $clast$    \TO      $n\pow  2$  WHILE  $systab[s][c]=0\,  or\,  systab[r][c]\neq  0$
  } 

    \IF  {    $systab[r][c]\neq  0$    } 

    \IF  {    $systab[s][c]=0$    } 

    \STATE    $t:=eval\left(systab[s]\right)$  ; 

    \STATE    $systab[s]:=eval\left(systab[r]\right)$  ; 

    \STATE    $systab[r]:=eval\left(t\right)$  ; 

    \STATE    $clast:=c$  ; 

    \STATE  \BREAK                 

    \ELSE

    \STATE    $m:=n\,  or\,  mal\left(systab[r][c]/systab[s][c]\right)$


    \STATE    $systab[r][c]:=0$  ; 

    \FOR  {      $i$      \FROM      $c+1$    \TO      $n\pow  2+n+1$    } 

    \STATE    $systab[r][i]:=n\,  or\,  mal\left(systab[r][i]-m*systab[s][i]\right)$
;   

    \ENDFOR 

    \STATE    $clast:=c$  ; 

    \STATE  \BREAK               

    \ENDIF

    \ENDIF 

    \ENDFOR   

    \ENDFOR   

    \ENDFOR 

    \STATE    $t1:=sum\left('systab[r-1][i+n\pow  2+1]*x\pow  i',\,  'i'=0..n\right)$


    \STATE    $t1:=subs\left('localA'=localA,\,  t1\right)$  ; 

    \IF  {    $has\left(t1,\,  'localA'\right)$    } 

    \STATE  \ERROR        \char`\"{}unnamed  matrix  with  undefined  elements\char`\"{} 

    \ELSE

    \STATE    $t1$  ; 

    \ENDIF 

    \end{algorithmic} 

\caption{leg  }
\end{algorithm}
%
\begin{algorithm}
    \begin{algorithmic}[1] 

      \DEF  {    nonzero    }  {      $\left(row,\,  n\right)$    }     

    \LOCAL    $i$

    \FOR  {      $i$    \TO      $n\pow  2$    } 

    \IF  {    $row[i]\neq  0$    } 

    \STATE  \RETURN      $\left(true\right)$

    \ENDIF 

    \ENDFOR 

    \STATE    $false$  ;   

    \end{algorithmic} 

\caption{leg  }
\end{algorithm}
%
\begin{algorithm}
    \begin{algorithmic}[1] 

      \DEF  {    consysrow    }  {      $\left(A,\,  n,\,  r\right)$    }     

    \LOCAL    $T,\,  i,\,  j$

    \FOR  {      $i$    \TO      $n$    } 

    \FOR  {      $j$    \TO      $n$    } 

    \STATE    $T[n*\left(i-1\right)+j]:=A[i,\,  j]$  ;   

    \ENDFOR   

    \ENDFOR 

    \FOR  {      $i$      \FROM      $n\pow  2+1$    \TO      $n\pow  2+n+1$    } 

    \STATE    $T[i]:=0$  ;   

    \ENDFOR 

    \STATE    $T[n\pow  2+r]:=1$  ; 

    \STATE    $op\left(T\right)$  ;   

    \end{algorithmic} 

\caption{leg  }
\end{algorithm}

\end{document}


<-  

mise en page
douillet@ensait.fr
2007/03/05 16h46