diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2023-12-06 21:30:01 -0600 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2023-12-06 21:30:01 -0600 |
| commit | a680409b85fa25f5870077a40fbd02efd172ae57 (patch) | |
| tree | 53912a0e23e8ac391ec989e13f047deb0812635f | |
| parent | 9b371a52a2c965059c1e31c82ef4a9e432ab6527 (diff) | |
| download | perlweeklychallenge-club-a680409b85fa25f5870077a40fbd02efd172ae57.tar.gz perlweeklychallenge-club-a680409b85fa25f5870077a40fbd02efd172ae57.tar.bz2 perlweeklychallenge-club-a680409b85fa25f5870077a40fbd02efd172ae57.zip | |
Correct mistake found by CY Fung
| -rwxr-xr-x | challenge-246/wlmb/perl/ch-2b.pl | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/challenge-246/wlmb/perl/ch-2b.pl b/challenge-246/wlmb/perl/ch-2b.pl index d67c1daebf..ff706f1a4a 100755 --- a/challenge-246/wlmb/perl/ch-2b.pl +++ b/challenge-246/wlmb/perl/ch-2b.pl @@ -30,19 +30,7 @@ sub is_linear_2(@x){ } if($D->slice([1,0,0])->approx(0)){ # singular matrix return unless $V->slice([1,0,0])->inner($rhs)->approx(0); - my $coeff=$V->slice([0,0,0])->inner($rhs)/$D->slice([0,0,0]); - my $sol_K=$coeff*$V->slice([0,0,0]); - my $sol_A=$V->slice([1,0,0]); - my $q1=$sol_A->slice([1,0,0]); - # if($q1->approx(0)){...} # I believe it doesn't happenUnneeded - my $z0=-$sol_K->slice([1,0,0])/$q1; - my $dz=1/$sol_A->slice([1,0,0]); - my $sol_q0=$sol_K+$z0*$sol_A; - my $arbitrary_max_q=10; # try to find some integer solution - $_->approx($_->rint)->all && return $_ - for map {$sol_q0+$_*$sol_A} - sort {abs($a)<abs($b)||$a<$b} (-$arbitrary_max_q..$arbitrary_max_q); - return undef, 1; # Uncertain failure + return pdl(0, $x[1]/$x[0]); } my $d_inv=zeroes(2,2); # not singular $d_inv->diagonal(0,1).=1/$D; |
