Skip to content

Commit f4c42bb

Browse files
committed
simplify svd tests using stretcher()
1 parent 21756b3 commit f4c42bb

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

t/matrixops.t

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -274,45 +274,35 @@ my $svd_in = pdl([3,1,2,-1],[-1,3,0,2],[-2,3,0,0],[1,3,-1,2]);
274274
#2x2;
275275
my $this_svd_in = $svd_in->slice("0:1","0:1");
276276
my ($u,$s,$v) = svd($this_svd_in);
277-
my $ess = zeroes($this_svd_in->dim(0),$this_svd_in->dim(0));
278-
$ess->diagonal(0,1).=$s;
279-
is_pdl $this_svd_in, ($u x $ess x $v->transpose), "svd 2x2";
277+
is_pdl $this_svd_in, ($u x stretcher($s) x $v->transpose), "svd 2x2";
280278
}
281279
282280
{
283281
#3x3;
284282
my $this_svd_in = $svd_in->slice("0:2","0:2");
285283
my ($u,$s,$v) = svd($this_svd_in);
286-
my $ess = zeroes($this_svd_in->dim(0),$this_svd_in->dim(0));
287-
$ess->diagonal(0,1).=$s;
288-
is_pdl $this_svd_in, $u x $ess x $v->transpose, "svd 3x3";
284+
is_pdl $this_svd_in, $u x stretcher($s) x $v->transpose, "svd 3x3";
289285
}
290286
291287
{
292288
#4x4;
293289
my $this_svd_in = $svd_in;
294290
my ($u,$s,$v) = svd($this_svd_in);
295-
my $ess =zeroes($this_svd_in->dim(0),$this_svd_in->dim(0));
296-
$ess->diagonal(0,1).=$s;
297-
is_pdl $this_svd_in,($u x $ess x $v->transpose),"svd 4x4";
291+
is_pdl $this_svd_in,($u x stretcher($s) x $v->transpose),"svd 4x4";
298292
}
299293
300294
{
301295
#3x2
302296
my $this_svd_in = $svd_in->slice("0:1","0:2");
303297
my ($u,$s,$v) = svd($this_svd_in);
304-
my $ess = zeroes($this_svd_in->dim(0),$this_svd_in->dim(0));
305-
$ess->slice("$_","$_").=$s->slice("$_") foreach (0,1); #generic diagonal
306-
is_pdl $this_svd_in, $u x $ess x $v->transpose, "svd 3x2";
298+
is_pdl $this_svd_in, $u x stretcher($s) x $v->transpose, "svd 3x2";
307299
}
308300
309301
{
310302
#2x3
311303
my $this_svd_in = $svd_in->slice("0:2","0:1");
312304
my ($u,$s,$v) = svd($this_svd_in->transpose);
313-
my $ess = zeroes($this_svd_in->dim(1),$this_svd_in->dim(1));
314-
$ess->slice("$_","$_").=$s->slice("$_") foreach (0..$this_svd_in->dim(1)-1); #generic diagonal
315-
is_pdl $this_svd_in, $v x $ess x $u->transpose, "svd 2x3";
305+
is_pdl $this_svd_in, $v x stretcher($s) x $u->transpose, "svd 2x3";
316306
}
317307
318308
}

0 commit comments

Comments
 (0)