|  | @@ -135,7 +135,9 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
 | 
	
		
			
				|  |  |              //println!("TABLE HIT!");
 | 
	
		
			
				|  |  |              match e.entry_type {
 | 
	
		
			
				|  |  |                  EntryType::Value => { return (e.value, false); },
 | 
	
		
			
				|  |  | -                EntryType::LowerBound => { if e.value > alpha { return (e.value, false) } },
 | 
	
		
			
				|  |  | +                //EntryType::LowerBound => { if e.value > alpha { return (e.value, false) } },
 | 
	
		
			
				|  |  | +                EntryType::LowerBound => { if e.value > alpha { alpha = e.value; } },
 | 
	
		
			
				|  |  | +                //EntryType::UpperBound => { if e.value >= beta { return (beta, false); } },
 | 
	
		
			
				|  |  |                  EntryType::UpperBound => { if e.value >= beta { return (beta, false); } },
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -212,7 +214,7 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if val >= beta {
 | 
	
		
			
				|  |  |              game.undo_move(undo);
 | 
	
		
			
				|  |  | -            hash.cache(game, CacheEntry::new_beta(depth, beta));
 | 
	
		
			
				|  |  | +            hash.cache(game, CacheEntry::new_lower(depth, val));
 | 
	
		
			
				|  |  |              //println!("but ret {}: {}", depth, beta);
 | 
	
		
			
				|  |  |              return (beta, false);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -228,7 +230,7 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
 | 
	
		
			
				|  |  |          hash.cache(game, CacheEntry::new_value(depth, alpha));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  | -        hash.cache(game, CacheEntry::new_alpha(depth, alpha));
 | 
	
		
			
				|  |  | +        hash.cache(game, CacheEntry::new_upper(depth, alpha));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      //info!("best alpha {}", best);
 | 
	
		
			
				|  |  |      return (alpha, false);
 |