1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) XXXX-2008 - INRIA
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
*
-->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="spcompack">
<info>
<pubdate>$LastChangedDate$</pubdate>
</info>
<refnamediv>
<refname>spcompack</refname>
<refpurpose> converts a compressed adjacency representation</refpurpose>
</refnamediv>
<refsection>
<title>Parameters</title>
<variablelist>
<varlistentry>
<term>xadj</term>
<listitem>
<para> integer vector of length (n+1).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>xlindx</term>
<listitem>
<para> integer vector of length n+1 (pointers).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>lindx</term>
<listitem>
<para> integer vector</para>
</listitem>
</varlistentry>
<varlistentry>
<term>adjncy</term>
<listitem>
<para> integer vector</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<programlisting role = ""><![CDATA[
Utility fonction spcompak is used to convert a compressed adjacency
representation into standard adjacency representation.
]]></programlisting>
</refsection>
<refsection>
<title>Examples</title>
<programlisting role="example"><![CDATA[
// A is the sparse matrix:
A=[1,0,0,0,0,0,0;
0,1,0,0,0,0,0;
0,0,1,0,0,0,0;
0,0,1,1,0,0,0;
0,0,1,1,1,0,0;
0,0,1,1,0,1,0;
0,0,1,1,0,1,1];
A=sparse(A);
//For this matrix, the standard adjacency representation is given by:
xadj=[1,2,3,8,12,13,15,16];
adjncy=[1, 2, 3,4,5,6,7, 4,5,6,7, 5, 6,7, 7];
//(see sp2adj).
// increments in vector xadj give the number of non zero entries in each column
// ie there is 2-1=1 entry in the column 1
// there is 3-2=1 entry in the column 2
// there are 8-3=5 entries in the column 3
// 12-8=4 4
//etc
//The row index of these entries is given by the adjncy vector
// for instance,
// adjncy (3:7)=adjncy(xadj(3):xadj(4)-1)=[3,4,5,6,7]
// says that the 5=xadj(4)-xadj(3) entries in column 3 have row
// indices 3,4,5,6,7.
//In the compact representation, the repeated sequences in adjncy
//are eliminated.
//Here in adjncy the sequences 4,5,6,7 and 7 are eliminated.
//The standard structure (xadj,adjncy) takes the compressed form (lindx,xlindx)
lindx=[1, 2, 3,4,5,6,7, 5, 6,7];
xlindx=[1,2,3,8,9,11];
//(Columns 4 and 7 of A are eliminated).
//A can be reconstructed from (xadj,xlindx,lindx).
[xadj,adjncy,anz]= sp2adj(A);
adjncy-spcompack(xadj,xlindx,lindx)
]]></programlisting>
</refsection>
<refsection>
<title>See Also</title>
<simplelist type="inline">
<member>
<link linkend="sp2adj">sp2adj</link>
</member>
<member>
<link linkend="adj2sp">adj2sp</link>
</member>
<member>
<link linkend="spget">spget</link>
</member>
</simplelist>
</refsection>
</refentry>
|