@@ -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;
275275my $this_svd_in = $svd_in ->slice("0:1","0:1");
276276my ($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;
284282my $this_svd_in = $svd_in ->slice("0:2","0:2");
285283my ($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;
293289my $this_svd_in = $svd_in ;
294290my ($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
302296my $this_svd_in = $svd_in ->slice("0:1","0:2");
303297my ($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
311303my $this_svd_in = $svd_in ->slice("0:2","0:1");
312304my ($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