File: cs_demo1.m

package info (click to toggle)
ufsparse 1.2-7
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 27,536 kB
  • ctags: 5,848
  • sloc: ansic: 89,328; makefile: 4,721; fortran: 1,991; csh: 207; sed: 162; awk: 33; java: 30; sh: 8
file content (43 lines) | stat: -rw-r--r-- 1,162 bytes parent folder | download
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
%CS_DEMO1: MATLAB version of the CSparse/Demo/cs_demo1.c program.
% Uses both MATLAB functions and CSparse mexFunctions, and compares the two
% results.  This demo also plots the results, which the C version does not do.

load ../../Matrix/t1
T = t1

A  = sparse     (T(:,1)+1, T(:,2)+1, T(:,3))
A2 = cs_triplet (T(:,1)+1, T(:,2)+1, T(:,3))
fprintf ('A difference: %g\n', norm (A-A2,1)) ;

% CSparse/Demo/cs_demo1.c also clears the triplet matrix T at this point:
% clear T 

clf
subplot (2,2,1) ; cspy (A) ; title ('A', 'FontSize', 16) ;

AT = A'
AT2 = cs_transpose (A)
fprintf ('AT difference: %g\n', norm (AT-AT2,1)) ;

subplot (2,2,2) ; cspy (AT) ; title ('A''', 'FontSize', 16) ;

n = size (A,2) ;
I = speye (n) ;

C = A*AT ;
C2 = cs_multiply (A, AT)
fprintf ('C difference: %g\n', norm (C-C2,1)) ;

subplot (2,2,3) ; cspy (C) ; title ('C=A*A''', 'FontSize', 16) ;

cnorm = norm (C,1) ;

D = C + I*cnorm
D2 = cs_add (C, I, 1, cnorm)
fprintf ('D difference: %g\n', norm (D-D2,1)) ;

subplot (2,2,4) ; cspy (D) ; title ('D=C+I*norm(C,1)', 'FontSize', 16) ;

% CSparse/Demo/cs_demo1.c clears all matrices at this point:
% clear A AT C D I
% clear A2 AT2 C2 D2