Exemple de sortie écran :
 Copy/Past into the octave windows 
 A=[
-1.00,+4.00,+1.00,-4.00,+9.00;
+7.00,+1.00,-8.00,+9.00,+3.00;
-4.00,-4.00,+3.00,-5.00,-4.00;
+4.00,-2.00,+1.00,+2.00,+1.00]
pinv(A)
 Press return to continue. 
 ------------------------------------ 
 PseudoInverse = V * invS_T * U_T 
 -7.5145e-03 -1.6588e-02 -3.9953e-02 +1.4664e-01 
 -5.3097e-02 -1.2708e-01 -2.6301e-01 -9.8928e-02 
 -4.8950e-02 -1.7403e-01 -1.8433e-01 +1.4597e-01 
 -6.8113e-02 -3.5897e-02 -1.2879e-01 +1.0458e-02 
 +1.0904e-01 +5.8018e-02 +7.5698e-02 +4.8691e-02 
 Ide = A * PseudoInverse 
 +1.000000 +0.000000 -0.000000 +0.000000 
 +0.000000 +1.000000 -0.000000 +0.000000 
 -0.000000 -0.000000 +1.000000 +0.000000 
 -0.000000 -0.000000 -0.000000 +1.000000 
 Press return to continue
 Press X to stop

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/addappendix.sh+annexer.sh

add_appendix.sh.
addappendix.sh doit être converti en add_appendix.sh
VERSION=220216
TEXTDOMAIN=add_appendix
TEXTDOMAINDIR="~/Add_appendix/share/locale"
export TEXTDOMAINDIR
. gettext.sh
 if test -z $1
 then 
 echo $"No parameter. < add_appendix | annexer > [ <full url of wiki-book> | ? ]"
 exit -1
 fi
 if [ "$1" = "?" ]
 then 
 echo $"Syntax: < add_appendix | annexer > [ <full url of wiki-book> | ? ] [ -v ] [ -pb | -pc ]"
 exit 0
 fi
 echo $0 | grep add_appendix > command.txt
 if test -s command.txt 
 then 
 Workdir=~/Add_appendix
 rm command.txt > /dev/null
 echo $0 | grep annexer > command.txt
 elif test -s command.txt
 then 
 Workdir=~/Annexer
 rm command.txt > /dev/null
 else 
 echo $"Working directory is not found. Exit from script."
 exit -1
 fi
 if test -d $Workdir/books
 then 
 echo $"Working directory found: $Workdir"
 echo $"script version: $VERSION"
 else
 echo $"$Workdir/books is not found"
 echo $"$Workdir/books creation" 
 install -d $Workdir/books 
 fi
 if test -e $Workdir/vars/installdir.var
 then 
 echo $"OK installdir.var exist"
 else
 install -d $Workdir/books $Workdir/vars
 fi
 echo "Workdir=$Workdir" > $Workdir/vars/installdir.var
 if test -d $Workdir/bin 
 then
 echo "$Workdir/bin exist then Installdir=$Workdir"
 Installdir=$Workdir
 echo "Installdir=$Workdir" » $Workdir/vars/installdir.var
 Bindir=$Workdir/bin
 echo "Bindir=$Bindir" » $Workdir/vars/installdir.var
 Booksdir=$Workdir/books
 echo "Booksdir=$Workdir/books" » $Workdir/vars/installdir.var
 Datasdir=$Workdir/datas
 echo "Datasdir=$Workdir/datas" » $Workdir/vars/installdir.var
 Libdir=$Workdir/lib
 echo "Libdir=$Workdir/lib" » $Workdir/vars/installdir.var
 Sharedir=$Workdir/share
 echo "Sharedir=$Workdir/share" » $Workdir/vars/installdir.var
 Srcdir=$Workdir/src
 echo "Srcdir=$Workdir/src" » $Workdir/vars/installdir.var
 Testdir=$Workdir/tests
 echo "Testsdir=$Workdir/tests" » $Workdir/vars/installdir.var
 Varsdir=$Workdir/vars
 echo "Varsdir=$Workdir/vars" » $Workdir/vars/installdir.var
 else
 echo "$Workdir/bin does not exist then Installdir=/usr/local"
 Installdir=/usr/local
 echo "Installdir=/usr/local" » $Workdir/vars/installdir.var
 Bindir=/usr/local/bin
 echo "Bindir=$Bindir" » $Workdir/vars/installdir.var
 Booksdir=$Workdir/books
 echo "Booksdir=$Workdir/books" » $Workdir/vars/installdir.var
 Datasdir=/usr/local/datas
 echo "Datasdir=/usr/local/datas" » $Workdir/vars/installdir.var
 Libdir=/usr/local/lib
 echo "Libdir=/usr/local/lib" » $Workdir/vars/installdir.var
 Sharedir=/usr/local/share
 echo "$Sharedir=/usr/local/share" » $Workdir/vars/installdir.var
 Srcdir=/usr/local/src/Add_appendix
 echo "Srcdir=/usr/local/src/Add_appendix" » $Workdir/vars/installdir.var
 Varsdir=$Workdir/vars
 echo "Varsdir=$Workdir/vars" » $Workdir/vars/installdir.var
 fi
 # source $HOME/Add_appendix/vars/installdir.var
 rm -f *.txt > /dev/null
 echo $1 | grep -e "wikibooks.org" > wikibooks-site.txt
 echo -n "wikibooks-site.txt: "
 cat wikibooks-site.txt
 echo
 if test -s wikibooks-site.txt
 then 
 echo $"OK to continue with book site validation"
 rm -f wikibooks-site.txt
 else 
 echo $"First parameter entry is not a wikibooks site"
 exit -1
 fi 
 rm -f valid-book-site.txt > /dev/null
 echo $1 | grep "Collection\|Compilation\|Content\|Contenu\|Sommaire\|Summary" > valid-book-site.txt
 if test -s valid-book-site.txt
 then 
 echo $"OK to continue with pre-annex"
 rm -f valid-book-site.txt
 else 
 echo $"First parameter entry is not a valid book site"
 exit -1
 fi
 if [ "$2" = "-v" ] || [ "$3" = "-v" ]
 then Verbose="true"
 else 
 Verbose=$"false"
 echo $"Verbose mode = $Verbose"
 fi
 if test -d $Workdir/temp/Report-silent-mode 
 then echo "$Workdir/temp/Report-silent-mode exist" > /dev/null
 else install -d $Workdir/temp/Report-silent-mode; fi
 echo
 echo
 echo $"*** Continue with pre-annex ***"
 if [ $Verbose = "true" ]
 then 
 echo $"Verbose mode = true ? :$Verbose"
 $Bindir/pre-annex $1 $2 $3
 else
 echo $"Verbose mode = false ? $Verbose"
 $Bindir/pre-annex $1 > $Workdir/temp/Report-silent-mode/pre-annex-cmd.txt
 fi 
 if [ $TEXTDOMAIN != "add_appendix" ]
 then TEXTDOMAIN=add_appendix
 fi
 Return=$?
 if [ $Return -gt '0' ]
 then
 echo "$(gettext ' Error in shell module pre-annex in silent mode. See $Workdir/temp/Report-silent-mode/pre-annex-cmd.txt ')"
 exit 1
 fi
 echo; echo; echo "*** Continue with annex and sub-annex scripts ***"
 source $Libdir/annex.lib
 findbook $1
 echo "Bookname : $Bookname"
 if [ "$Verbose" = "true" ]
 then 
 $Bindir/annex $Bookname $2 $3
 else
 $Bindir/annex $Bookname $2 $3 > $Workdir/temp/Report-silent-mode/annex-cmd.txt
 fi 
 if [ $TEXTDOMAIN != "add_appendix" ]
 then TEXTDOMAIN=add_appendix
 fi
 Return=$?
 if [ $Return -gt '0' ]
 then
 echo "$(gettext ' Error in shell module annex in silent mode. See $Workdir/temp/Report-silent-mode/annex-cmd.txt ')"
 exit 1
 fi
exit 0
annexer.sh.
VERSION=220304
TEXTDOMAIN=annexer
TEXTDOMAINDIR="/usr/share/locale"
export TEXTDOMAINDIR
if test -e $HOME/Annexer/bin/add_appendix; then $HOME/Annexer/bin/add_appendix $1 $2 $3
elif test -e /usr/local/bin/add_appendix; then /usr/local/bin/add_appendix $1 $2 $3
else echo $"the script add_appendix is not found: in Annexer/bin nor in /usr/local/bin, exit"; exit -1
fi

Mathc matrices/c12fn16
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : ccn3g.c */
void fun(int r,int c)
double **A = r_mR(i_mR(r,c),9.);
double **Pinv = i_mR(c,r); 
double **Ide = i_mR(r,r); 
 clrscrn();
 printf(" Copy/Past into the octave windows \n\n\n");
 p_Octave_mR(A,"A",P2);
 printf("pinv(A)\n\n\n");
 stop();
 clrscrn();
 printf(" PseudoInverse = V * invS_T * U_T ");
 pseudo_Cn_uv_mR(A,Pinv,FACTOR_E); 
 pE_mR(Pinv,S12,P4,C10);
 printf(" Ide = A * PseudoInverse ");
 mul_mR(A,Pinv,Ide); 
 p_mR(Ide,S10,P6,C10); 
 f_mR(A); 
 f_mR(Pinv); 
 f_mR(Ide); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C3);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 Copy/Past into the octave windows 
 A=[
-1.00,-8.00,-4.00,+9.00,-5.00,+1.00,-5.00;
+5.00,+1.00,-1.00,-5.00,-8.00,-3.00,+6.00;
+9.00,+2.00,-7.00,+1.00,+9.00,-8.00,-3.00;
+2.00,+4.00,+9.00,+6.00,-4.00,-6.00,+4.00]
pinv(A)
 Press return to continue. 
 ------------------------------------ 
 PseudoInverse = V * invS_T * U_T 
 +7.9922e-03 +3.4755e-02 +3.4716e-02 +7.5562e-03 
 -3.7185e-02 -9.7819e-03 +4.9965e-03 +1.8615e-02 
 -2.3415e-02 -2.9148e-02 -2.3232e-02 +4.4843e-02 
 +4.1020e-02 -3.0994e-02 +9.8942e-03 +4.2575e-02 
 -3.3286e-02 -5.4933e-02 +2.4241e-02 -6.2882e-03 
 -5.6207e-03 -1.4141e-02 -3.2386e-02 -3.1389e-02 
 -1.7374e-02 +2.8334e-02 -9.2607e-03 +9.4748e-03 
 Ide = A * PseudoInverse 
 +1.000000 -0.000000 +0.000000 -0.000000 
 -0.000000 +1.000000 -0.000000 -0.000000 
 -0.000000 +0.000000 +1.000000 +0.000000 
 +0.000000 -0.000000 -0.000000 +1.000000 
 Press return to continue
 Press X to stop