ubergeekism/utils.py
2014-04-03 22:16:00 +02:00

52 lines
1.1 KiB
Python

import sys
import math
def x( point ):
return point[0]
def y( point ):
return point[1]
def LOG( *args ):
"""Print something on stderr and flush"""
for msg in args:
sys.stderr.write( str(msg) )
sys.stderr.write(" ")
sys.stderr.flush()
def LOGN( *args ):
"""Print something on stdeer, with a trailing new line, and flush"""
LOG( *args )
LOG("\n")
def adjacency_from_set( segments ):
graph = {}
for start,end in segments:
graph[start] = graph.get( start, [] )
graph[start].append( end )
graph[end] = graph.get( end, [] )
graph[end].append( start )
return graph
def vertices_from_set( segments ):
vertices = set()
for start,end in segments:
vertices.add(start)
vertices.add(end)
return vertices
def tour(lst):
# consecutive pairs in lst + last-to-first element
for a,b in zip(lst, lst[1:] + [lst[0]]):
yield (a,b)
def euclidian_distance( ci, cj, graph = None):
return math.sqrt( float(ci[0] - cj[0])**2 + float(ci[1] - cj[1])**2 )