forked from ltfat/ltfat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_nonsepdgt_mesh.m
97 lines (73 loc) · 3.26 KB
/
test_nonsepdgt_mesh.m
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
ar=1:1:20;
Mr=1:1:20;
Lmodr=1:20; %[1 3 10 100 143];
lt1r=0:10;
lt2r=1:15;
test_failed=0;
for lt2=lt2r
lt2
for lt1=lt1r
if lt1>=lt2
continue;
end;
if gcd(lt1,lt2)>1
continue
end;
for M=Mr
for a=ar
if a>=M
continue;
end;
for Lmod=Lmodr
L=dgtlength(1,a,M,[lt1,lt2])*Lmod;
lt=[lt1,lt2];
[s0,s1,br] = shearfind(L,a,M,lt);
f=tester_crand(L,1);
g=tester_crand(L,1);
if 0
gd = gabdual(g,a,M,'lt',lt);
gd_shear = gabdual(g,a,M,'lt',lt,'nsalg',2);
res=norm(gd-gd_shear)/norm(g);
[test_failed,fail]=ltfatdiditfail(res,test_failed);
stext=sprintf(['DUAL SHEAR L:%3i a:%3i M:%3i lt1:%2i lt2:%2i %0.5g ' ...
'%s'], L,a,M,lt(1),lt(2),res,fail);
disp(stext)
if numel(fail)>0
error('Failed test');
end;
end;
if 1
cc = comp_nonsepdgt_multi(f,g,a,M,lt);
cc_shear = comp_nonsepdgt_shear(f,g,a,M,s0,s1,br);
res = norm(cc(:)-cc_shear(:))/norm(cc(:));
[test_failed,fail]=ltfatdiditfail(res,test_failed);
stext=sprintf(['DGT SHEAR L:%3i a:%3i M:%3i lt1:%2i lt2:%2i %0.5g ' ...
'%s'], L,a,M,lt(1),lt(2),res,fail);
disp(stext)
if numel(fail)>0
error('Failed test');
end;
end;
if 0
r=comp_idgt(cc_shear,gd,a,lt,0,1);
res=norm(f-r,'fro')/norm(f,'fro');
[test_failed,fail]=ltfatdiditfail(res,test_failed);
stext=sprintf(['REC SHEAR L:%3i a:%3i M:%3i lt1:%2i lt2:%2i %0.5g ' ...
'%s'], L,a,M,lt(1),lt(2),res,fail);
disp(stext)
if numel(fail)>0
error('Failed test');
end;
end;
if 0
s0test=(L==noshearlength(L,a,M,lt));
s0inv=(s0==0);
if s0inv~=s0test
[L,a,M,s0==0, s0test]
end;
end;
end;
end;
end;
end;
end;