87c87
<         
---
>     
92c92,93
<         
---
>     
>     #@profile
107c108,109
<         guy._hintcount = self._hintcount - counthintsinnum(self._hints.store[badgatesq])
---
>         for badsq in badsqs:
>             guy._hintcount -= counthintsinnum(self._hints.store[badsq])
111,112c113
<         
< 
---
>     
128,129c129
<         self.rehash()        
<         
---
>         self.rehash()
131,133c131,132
<     def copy_minus_gate(self, badgatesq, board):
<         '''noworking attempt to improve the speed of making subrooms based on current state.
<         it randomly invisibly crashes. '''
---
>     def copy_minus_gatesq(self, badgatesq, board):
>         '''working attempt to improve the speed of making subrooms based on current state.'''
136d134
<         list_fields = 'rows adjacent_gsqs req_gatesqs opt_gatesqs'.split()
138d135
<         #import ipdb;ipdb.set_trace()
149,150c146,147
<         if len(guy.gates) != len(guy.gatesqs):
<             import ipdb;ipdb.set_trace()
---
>         #if len(guy.gates) != len(guy.gatesqs):
>             #import ipdb;ipdb.set_trace()
158,162c155
<         guy._hintcount = guy.counthints_roominit()  #this is kept accurate
<         #fields = dir(guy)
<         #guy.set_timelimit( source = 'override')
<         #guy.setup_key()
<         #res = get_all_sols(guy, board)
---
>         guy._hintcount = self._hintcount - counthintsinnum(self._hints.store[badgatesq])
168,171d160
<         if not guy.gates:
<             import ipdb;ipdb.set_trace()
<         if len(guy.gates) != guy.gsq_ct:
<             import ipdb;ipdb.set_trace()
173a163
>         
214c204
<                     row = '\t'.join([str(self.req_ct), str(self.opt_ct), str(self.all_ct), str(self._hintcount), '%0.08f' % (self.solve_took)])
---
>                     row = '\t'.join([str(len(self.req_gatesqs)), str(len(rm.opt_gatesqs)), str(self.all_ct), str(self._hintcount), '%0.08f' % (self.solve_took)])
239,241c229,232
<         from room_solver import devotions
<         if self.temp_key not in devotions:
<             devotions[self.temp_key] = []
---
>         if config.save_devotions:
>             from room_solver import devotions
>             if self.temp_key not in devotions:
>                 devotions[self.temp_key] = []
262,266c253
<         
<         
<         #NOTE: fixed this w/new frozenset stuff.
<         #key=(tuple([(hh[0], tuple(sorted(list(hh[1])))) for hh in sorted(self._hints.items())]), profilekey_can, profilekey_must, gate_names)
<         
---
> 
275,281c262
<         #key2 = frozenset((frozenset(list(self._hints.store.items())), profilekey_can, profilekey_must, frozenset(self.gates)))
<         #import ipdb;ipdb.set_trace()
<         #this is pretty nasty.  would need to check if this is actually value, really.
<         
<         #import ipdb;ipdb.set_trace()
<         #TODO: make the cache keys easier to look up with new _hints holding nums.
<         #print(key2)
---
> 
379c360
<                 next_attempt = 0.01
---
>                 next_attempt = config.initial_static_timelimit
388c369
<             if next_attempt != 0.01:
---
>             if next_attempt != config.initial_static_timelimit:
402,403c383,384
<                 next_attempt *= 16
<                 self.timedesc += '*=16 supercharge'
---
>                 next_attempt *= 2
>                 self.timedesc += '*=2 supercharge'
434a416
>     #@profile
480,482d461
<         self.gsq_ct=len(self.gates)
<         self.req_ct=len(self.req_gatesqs)
<         self.opt_ct=len(self.opt_gatesqs)
483a463,464
> 
>     
489,496c470,477
<         self.adjacent_gsqs=[] #this is still apparently supported (for pararooms) but untested 2015+
<         for gsq in self.req_gatesqs:
<             if gsq in self.adjacent_gsqs:
<                 continue
<             flo=flow_in_set(set(self.req_gatesqs), gsq)
<             if len(flo)>1:
<                 self.adjacent_gsqs.extend(flo)
<         self.complexity = self.all_ct * (1.5 **self.opt_ct) * 1.3 ** self.req_ct
---
>         #self.adjacent_gsqs=[] #this is still apparently supported (for pararooms) but untested 2015+
>         #for gsq in self.req_gatesqs:
>             #if gsq in self.adjacent_gsqs:
>                 #continue
>             #flo=flow_in_set(set(self.req_gatesqs), gsq)
>             #if len(flo)>1:
>                 #self.adjacent_gsqs.extend(flo)
>         self.complexity = self.all_ct * (1.5 **len(self.opt_gatesqs)) * 1.3 ** len(self.req_gatesqs)
572a554,555
>     keystore = {}
>     
574,578c557,563
<         #self.key=str(sorted(self.sqs))+str(sorted(self.gates))
<         key = set()
<         key.update(self.sqs)
<         key.update(self.gates)
<         self.key = frozenset(key)
---
>         #key = self.sqs.union(self.gates)
>         #if key not in self.keystore:
>             #self.keystore[key] = key
>         #self.key = self.keystore[key]
>         self.key=str(sorted(self.sqs))+str(sorted(self.gates))
>         #if oldkey != self.key:
>             #import ipdb;ipdb.set_trace()
604d588
<         #if config.monitor_rm_sols and self.hashid.startswith(config.monitor_rm_sols):import ipdb;ipdb.set_trace()
612,613d595
<             if board.static:
<                 self.solved = True
704d685
<     
707a689,690
>         #if not self.isopen(pos):
>             #import ipdb;ipdb.set_trace()
712a696,697
>         #if self.isopen(pos):
>             #import ipdb;ipdb.set_trace()
733a719,720
>             #if not self.isopen(pos):
>                 #import ipdb;ipdb.set_trace()
742a730,731
>             #if self.isopen(pos):
>                 #import ipdb;ipdb.set_trace()
1124c1113
<         size='%03dsq %02d/%02d dif:%.0e'%(self.all_ct, self.req_ct, self.opt_ct, difficulty(self))
---
>         size='%03dsq %02d/%02d dif:%.0e'%(self.all_ct, len(self.req_gatesqs), len(self.opt_gatesqs), difficulty(self))
