def p_output(self, regions, vie, inputinfo): '''Output correction terms''' if regions: # non-empty (i.e. not unknot with no crossings) quad = regions_to_quad(regions) print quad quadform = NDQF(quad) struct = quadform.group.struct() print struct corr = quadform.correction_terms(self.use_multi.get()) else: # unknot with no crossings quad = 'N/A (unknot with no crossings)' corr = '0' # only 1 spin structure struct = '1' self.show_graph.set(0) # no graph to show if self.condense.get(): OutputWindow(self.master, corr, struct, quad, inputinfo, showhom=self.show_hom.get(), condense=True) else: OutputWindow(self.master, corr, struct, quad, inputinfo, \ showhom=self.show_hom.get(), showquad=self.show_quad.get(), \ showgraph=self.show_graph.get(), regions=regions) if self.show_shaded.get(): ShadedLinkWindow(self.master, regions, vie[0], vie[1], vie[2], inputinfo) # open window to show shaded link if self.show_link.get(): if inputinfo != 'PLink data not saved': # can only do if saved editor = plink.LinkEditor() editor.load(inputinfo)
def k_output(self, regions, vie, inputinfo): quad = regions_to_quad(regions) print quad quadform = NDQF(quad) corr = quadform.correction_terms(self.use_multi.get()) struct = quadform.group.struct() if self.condense.get(): self.output = OutputWindow(self.master, corr, struct, quad, inputinfo, showhom=self.show_hom.get(), condense=True) else: self.output = OutputWindow(self.master, corr, struct, quad, inputinfo, showhom=self.show_hom.get(), showquad=self.show_quad.get(), showgraph=self.show_graph.get(), regions=regions) if self.show_shaded.get(): ShadedLinkWindow(self.master, regions, vie[0], vie[1], vie[2], inputinfo, flip=True) # opens window to show shaded link # flips coordinates so drawn right side up (Tkinter y-axis reversed) if self.show_link.get(): if not self.archive_num: # loaded file # attempt to use filename to load original link # e.g. '6x-1-1.txt' or '6x-1-1' will work # parsing on '/' will probably not work on Windows archive_num = self.filename.split('/')[-1].split('.txt')[0] if valid_archive_form(archive_num): browser_link(archive_num) # else ignore and do nothing else: browser_link(self.archive_num) # open browser to original link
def main(loading_type, loading_data=None, use_multi=False): ''' Return Heegaard Floer correction terms. loading_type - 'k' for Knotilus, 'p' for PLink, 's' for Seifert loading_data - Knotilus archive number, filename, Seifert data multi - use multiprocessing or not ''' print '\n%s' %loading_data if loading_type == 'p': # PLink if loading_data: print 'Loading PLink' data = load_plink(loading_data) else: print 'Loading new PLink' data = load_plink() all_data = make_objects(data[0],data[1],data[2],data[3],data[4],data[5]) regions = all_data[3] elif loading_type == '': # Knotilus download print 'Downloading from Knotilus' regions = load(loading_data, False, False)[3] elif loading_type == 'k': # Knotilus download and save print 'Downloading and saving from Knotilus' regions = load(loading_data, False, True)[3] elif loading_type == 'kf': # Knotilus load file print 'Loading Knotilus file' regions = load(loading_data, True, False)[3] elif loading_type == 's': print 'Seifert data' else: usage() # compute correction terms if loading_type != 's': if regions: # non-empty (i.e. not unknot with no crossings) nodes = [NodeClass(i) for i in range(len(regions))] tree = edges_regions(nodes,regions) max_subtree = maximal_subtree(tree, nodes) minus = minus_maximal_subtree(tree, max_subtree) quad = quad_form(tree, minus, nodes) print quad quadform = NDQF(quad) corr = quadform.correction_terms(use_multi) else: # unknot with no crossings print 'quadratic form N/A (unknot with no crossings)' print 'H_1(Y) ~ 1' print '0' # corrterms - only 1 spin structure else: # Seifert corr = seifert_corr(loading_data, use_multi) print corr return
def close(self): '''Close and output correction terms.''' if not self.gui: print 'Nothing to close' return if self.num_nodes == 0: tkMessageBox.showerror('No nodes', 'No graph drawn. Closing editor.') self.top.destroy() return self.save() quad = g_quad(self.graph, self.nodes) quadform = NDQF(quad) corr = quadform.correction_terms(self.use_multi.get()) struct = quadform.group.struct() self.top.destroy() #self.master.quit() if not self.show_weighted.get(): plt.close('all') OutputWindow(self.master, corr, struct, quad, self.info, condense=self.condense.get(), showquad=self.show_quad.get(), showhom=self.show_hom.get())