mce_qcmdpc: decrease decoding failure rate
The `online' modification of unsatisfied eqn counts caused increased rate of decoding failures (verified experimentally). Use the variant that doesn't modify the counts until next round.
This commit is contained in:
		
							parent
							
								
									035fef4882
								
							
						
					
					
						commit
						d8f358e8ed
					
				|  | @ -240,7 +240,7 @@ int privkey::decrypt (const bvector & in_orig, bvector & out, bvector & errors) | ||||||
| 	 * FFT would be a cool candidate. | 	 * FFT would be a cool candidate. | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| 	vector<unsigned> unsat; | 	vector<unsigned> unsat, round_unsat; | ||||||
| 	unsat.resize (cs, 0); | 	unsat.resize (cs, 0); | ||||||
| 
 | 
 | ||||||
| 	for (uint blk = 0; blk < blocks; ++blk) | 	for (uint blk = 0; blk < blocks; ++blk) | ||||||
|  | @ -263,8 +263,10 @@ int privkey::decrypt (const bvector & in_orig, bvector & out, bvector & errors) | ||||||
| 		uint threshold = 0; | 		uint threshold = 0; | ||||||
| 		if (max_unsat > delta) threshold = max_unsat - delta; | 		if (max_unsat > delta) threshold = max_unsat - delta; | ||||||
| 
 | 
 | ||||||
|  | 		round_unsat = unsat; | ||||||
|  | 
 | ||||||
| 		for (uint bit = 0; bit < cs; ++bit) { | 		for (uint bit = 0; bit < cs; ++bit) { | ||||||
| 			if (unsat[bit] <= threshold) continue; | 			if (round_unsat[bit] <= threshold) continue; | ||||||
| 
 | 
 | ||||||
| 			/*
 | 			/*
 | ||||||
| 			 * heavy trickery starts here, we carefully | 			 * heavy trickery starts here, we carefully | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue