1 <?xml version="1.0" encoding="UTF-8"?>
4 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
5 * Copyright (C) XXXX-2008 - INRIA
7 * This file must be used under the terms of the CeCILL.
8 * This source file is licensed as described in the file COPYING, which
9 * you should have received as part of this distribution. The terms
10 * are also available at
11 * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
15 <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" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="spcompack">
19 <refname>spcompack</refname>
21 <refpurpose>圧縮隣接表現に変換する</refpurpose>
37 <para>長さ (n+1)の整数ベクトル.</para>
49 <para>長さ n+1の整数ベクトル(ポインタ).</para>
87 <programlisting role=""><![CDATA[
88 ユーティリティ関数spcompakは圧縮隣接形式を
98 <programlisting role="example"><![CDATA[
99 // A is the sparse matrix:
108 //この行列の場合,標準隣接形式は以下のように定義されます:
109 xadj=[1,2,3,8,12,13,15,16];
110 adjncy=[1, 2, 3,4,5,6,7, 4,5,6,7, 5, 6,7, 7];
112 // ベクトル xadjの増分は,各列の非ゼロ要素の数を指定します.
113 // すなわち,列1には 2-1=1個のエントリが存在
114 // 列2には 3-2=1個のエントリが存在
115 // 列3には 8-3=5個のエントリが存在
116 // 列3には 12-8=4個のエントリが存在
118 // これらのエントリの行インデックスは隣接ベクトルにより例えば
120 // adjncy (3:7)=adjncy(xadj(3):xadj(4)-1)=[3,4,5,6,7]
121 // これは, 列3の5=xadj(4)-xadj(3)個のエントリのインデックスを
122 // 3,4,5,6,7 としたことを意味します.
123 // 圧縮表現では,隣接する重複するシーケンスは消去されます.
124 // ここで,隣接表現では並び 4,5,6,7および7が消去されます.
125 // 標準構造(xadj,adjncy)は圧縮形式(lindx,xlindx)を受け付けます
126 lindx=[1, 2, 3,4,5,6,7, 5, 6,7];
127 xlindx=[1,2,3,8,9,11];
128 //(Aの列 4 および 7は消去されます).
129 //Aは(xadj,xlindx,lindx)により再構築できます.
130 [xadj,adjncy,anz]= sp2adj(A);
131 adjncy-spcompack(xadj,xlindx,lindx)
136 <refsection role="see also">
140 <simplelist type="inline">
144 <link linkend="sp2adj">sp2adj</link>
150 <link linkend="adj2sp">adj2sp</link>
156 <link linkend="spget">spget</link>