Hi morl,
That's a very interesting puzzle. It illustrates very well the combined power of 2 techniques (beyond the "basic" whips): partial sums and g-whips.
Using only whips (or g-whips), the puzzle is in W8 (or gW8).
First note that:
- surface sums applied to the upper right sub-puzzle allow to deduce r5c7 = 8 and to solve it straightforwardly (indeed with singles only)
- surface sums applied to the lower left sub-puzzle allow to deduce r5c3 = 3 and to solve it straightforwardly (indeed in W2)
(first black row/column is numbered 1; black cells are shown as "B".)
This leads to a partial solution (first black row and column not displayed):
. . . B B 6 8
. . . . B 9 6
B B . . B 4 9
B 3 . . . 8 B
4 2 B . . B B
8 4 B . . . .
6 7 B B . . .
Injecting this partial solution into the whole puzzle now allows to solve it in W6 or gW4. I'll give only the gW4 solution:
- Code: Select all
- biv-chain[2]: vr1c2{n59 n68} - r2c2{n5 n6} ==> r3c2 ≠ 6
 cell-to-horiz-ctr  ==> hr3c1 ≠ 3467
 biv-chain[2]: vr1c2{n68 n59} - r2c2{n6 n5} ==> r3c2 ≠ 5
 cell-to-horiz-ctr  ==> hr3c1 ≠ 2567
 biv-chain[2]: vr6c7{n15 n24} - r7c7{n5 n4} ==> r8c7 ≠ 4
 biv-chain[2]: vr6c7{n24 n15} - r7c7{n4 n5} ==> r8c7 ≠ 5
 biv-chain[2]: vr6c8{n49 n58} - r8c8{n4 n5} ==> r7c8 ≠ 5
 biv-chain[2]: vr6c8{n58 n49} - r8c8{n5 n4} ==> r7c8 ≠ 4
 biv-chain[2]: hr5c2{n23789 n34589} - r5c4{n2 n4} ==> r5c5 ≠ 4
 biv-chain[2]: hr5c2{n23789 n34589} - r5c4{n2 n4} ==> r5c6 ≠ 4
 biv-chain[2]: hr5c2{n34589 n23789} - r5c4{n4 n2} ==> r5c5 ≠ 2
 cell-to-verti-ctr  ==> vr2c5 ≠ 12368
 biv-chain[2]: hr5c2{n34589 n23789} - r5c4{n4 n2} ==> r5c6 ≠ 2
 cell-to-verti-ctr  ==> vr4c6 ≠ 2468
 biv-chain[2]: hr7c4{n4689 n5679} - r7c7{n4 n5} ==> r7c5 ≠ 5
 biv-chain[2]: hr7c4{n4689 n5679} - r7c7{n4 n5} ==> r7c6 ≠ 5
 biv-chain[2]: hr7c4{n5679 n4689} - r7c7{n5 n4} ==> r7c5 ≠ 4
 biv-chain[2]: hr7c4{n5679 n4689} - r7c7{n5 n4} ==> r7c6 ≠ 4
 biv-chain[2]: hr8c5{n125 n134} - r8c8{n5 n4} ==> r8c6 ≠ 4
 biv-chain[2]: hr8c5{n134 n125} - r8c8{n4 n5} ==> r8c6 ≠ 5
 whip[2]: r2c2{n6 n5} - hr2c1{n136 .} ==> r2c3 ≠ 6
 whip[2]: r2c2{n5 n6} - hr2c1{n145 .} ==> r2c3 ≠ 5
 cell-to-verti-ctr  ==> vr1c3 ≠ 56
 ctr-to-verti-sector  ==> r3c3 ≠ 5
 ctr-to-verti-sector  ==> r3c3 ≠ 6
 whip[2]: r3c3{n9 n8} - r3c2{n8 .} ==> hr3c1 ≠ 1568
 whip[2]: vr1c3{n47 n29} - r2c3{n3 .} ==> r3c3 ≠ 2
 whip[2]: vr1c3{n47 n38} - r2c3{n2 .} ==> r3c3 ≠ 3
 whip[2]: r3c3{n8 n9} - r3c2{n9 .} ==> hr3c1 ≠ 2369
 whip[2]: vr1c3{n38 n47} - r2c3{n2 .} ==> r3c3 ≠ 4
 whip[2]: r3c3{n9 n8} - r3c2{n8 .} ==> hr3c1 ≠ 2468
 whip[2]: r3c3{n9 n8} - r3c2{n8 .} ==> hr3c1 ≠ 3458
 whip[2]: r3c3{n8 n9} - r3c2{n9 .} ==> hr3c1 ≠ 1469
 ctr-to-horiz-sector  ==> r3c5 ≠ 6
 whip[2]: r3c3{n8 n9} - r3c2{n9 .} ==> hr3c1 ≠ 2459
 ctr-to-horiz-sector  ==> r3c5 ≠ 5
 whip[2]: hr2c1{n235 n145} - r2c3{n2 .} ==> r2c4 ≠ 4
 whip[2]: vr2c5{n23456 n12359} - r7c5{n6 .} ==> r5c5 ≠ 9
 biv-chain[2]: r5c5{n7 n5} - hr5c2{n23789 n34589} ==> r5c6 ≠ 7
 cell-to-verti-ctr  ==> vr4c6 ≠ 3467
 cell-to-verti-ctr  ==> vr4c6 ≠ 1478
 cell-to-verti-ctr  ==> vr4c6 ≠ 2378
 biv-chain[2]: hr5c2{n23789 n34589} - r5c5{n7 n5} ==> r5c6 ≠ 5
 naked-single ==> r5c6 = 9
 cell-to-verti-ctr  ==> vr4c6 ≠ 2459
 ctr-to-verti-sector  ==> r6c6 ≠ 5
 whip[2]: hr6c4{n34 n25} - r6c6{n6 .} ==> r6c5 ≠ 2
 whip[2]: vr2c5{n23456 n12359} - r7c5{n6 .} ==> r3c5 ≠ 9
 whip[2]: vr2c5{n23456 n12458} - r7c5{n6 .} ==> r3c5 ≠ 8
 g-whip[2]: r7c6{n6 n578} - vr4c6{n2369 .} ==> r6c6 ≠ 6
 whip[2]: hr6c4{n34 n16} - r6c6{n4 .} ==> r6c5 ≠ 1
 whip[3]: r5c5{n7 n5} - vr2c5{n12467 n13457} - r7c5{n6 .} ==> r3c5 ≠ 7
 whip[3]: r5c5{n5 n7} - vr2c5{n23456 n13457} - r7c5{n6 .} ==> r6c5 ≠ 5
 cell-to-horiz-ctr  ==> hr6c4 ≠ 25
 ctr-to-horiz-sector  ==> r6c6 ≠ 2
 g-whip[4]: r7c5{n6 n1789} - vr2c5{n23456 n12467} - r7c5{n9 n7} - r5c5{n7 .} ==> r6c5 ≠ 6
 cell-to-horiz-ctr  ==> hr6c4 ≠ 16
 naked-single ==> hr6c4 = 34
 cell-to-verti-ctr  ==> vr4c6 ≠ 1289
 ctr-to-verti-sector  ==> r7c6 ≠ 8
 whip[2]: r6c6{n3 n4} - vr4c6{n1379 .} ==> r8c6 ≠ 3
 horiz-sector-to-ctr  ==> hr8c5 ≠ 134
 naked-single ==> hr8c5 = 125
 naked-single ==> r8c8 = 5
 naked-single ==> vr6c8 = 58
 naked-single ==> r7c8 = 8
 naked-single ==> hr7c4 = 4689
 naked-single ==> r7c7 = 4
 naked-single ==> r7c6 = 6
 naked-single ==> r7c5 = 9
 naked-single ==> vr2c5 = 12359
 naked-single ==> r6c5 = 3
 naked-single ==> r6c6 = 4
 naked-single ==> r5c5 = 5
 naked-single ==> hr5c2 = 34589
 naked-single ==> r5c4 = 4
 naked-single ==> vr4c6 = 1469
 naked-single ==> r8c6 = 1
 naked-single ==> r8c7 = 2
 naked-single ==> vr6c7 = 24
 horiz-sector-to-ctr  ==> hr4c3 ≠ 14
 naked-single ==> hr4c3 = 23
 naked-single ==> r4c5 = 2
 naked-single ==> r4c4 = 3
 naked-single ==> r3c5 = 1
 naked-single ==> r3c4 = 2
 naked-single ==> r2c4 = 1
 naked-single ==> hr3c1 = 1289
 ctr-to-horiz-sector  ==> r2c3 ≠ 2
 cell-to-verti-ctr  ==> vr1c3 ≠ 29
 ctr-to-verti-sector  ==> r3c3 ≠ 9
 naked-single ==> r3c3 = 8
 naked-single ==> r3c2 = 9
 naked-single ==> vr1c2 = 59
 naked-single ==> r2c2 = 5
 naked-single ==> hr2c1 = 145
 naked-single ==> r2c3 = 4
 
 --------
 -541--68
 -9821-96
 ---32-49
 --34598-
 -42-34--
 -84-9648
 -67--125
 
 
Remembering that ctr-to-sector and cell-to-ctr rules are obvious and that a biv-chain[2] or a whip[2] is also obvious because it works in a single sector, the resolution path can be summarized as follows (I keep the g-whip[2] for illustration, although it also works in a single sector):
- Code: Select all
- g-whip[2]: r7c6{n6 n578} - vr4c6{n2369 .} ==> r6c6 ≠ 6
 whip[3]: r5c5{n7 n5} - vr2c5{n12467 n13457} - r7c5{n6 .} ==> r3c5 ≠ 7
 whip[3]: r5c5{n5 n7} - vr2c5{n23456 n13457} - r7c5{n6 .} ==> r6c5 ≠ 5
 g-whip[4]: r7c5{n6 n1789} - vr2c5{n23456 n12467} - r7c5{n9 n7} - r5c5{n7 .} ==> r6c5 ≠ 6
 
 Solution:
 --------
 -541--68
 -9821-96
 ---32-49
 --34598-
 -42-34--
 -84-9648
 -67--125
 
Final remarks: 
- if we use only the upper right surface sum, the classification remains W8 and gW8. Only the lower left sum is really useful to reduce complexity
- for notations and definitions of whips, g-whips, other patterns, W and gW classifications, see my book "Pattern Based Constraint Satisfaction and Logic Puzzles".