On Wed, 27 Jul 2005 at 10:15:25 -0400, Quantum Mechanic wrote:
> 1) Not strict and warnings clean.
> 2) perl -c on 
>      if( $puzmap[$bestpos] & 1 == 0 )
> gives:
>      "Possible precedence problem on bitwise & operator at
> sudoku_ip.pl line ..."

Hmm... it's warning-clean on my 5.8.4 - what version are you using?
I turned on "use warnings 'all'" and "use strict", and all that came out
were some undeclared variables.

> The intended precedence seems to be 
>     if( ( $puzmap[$bestpos] & 1 ) == 0 )
> but this gives me:
>     "Whoops - bestpos is a given square at..."
> Changing the precedence to 
>     if( $puzmap[$bestpos] & ( 1 == 0 )
... which is always false, of course.

The code intended is:
      if( $puzmap[$bestpos] & 1 )

Wasn't much good as a diagnostic, was it? :-)

I've uploaded a revised version (1.3). This also runs faster, since I
inlined the single call to "countones", following a quick DProf run.

To be found in
    http://homepage.ntlworld.com/phillipps/sodsolve

Ian

Reply via email to