# defining function for graph (help needed)

I need help defining a function that does the following (I'm very new to Python/Sage).

I need a function called ihara(G) where G is any graph input by the user.

I need the function ihara(G) to return the Z resulting from all the calculations below:

D = G.to_directed()
L = D.line_graph()
L.delete_edges([((x,y,None), (y,x,None)) for x,y in G.edges( labels=None)])
L.delete_edges([((x,y,None), (y,x,None)) for y,x in G.edges( labels=None)])

IM = identity_matrix(QQ,D.size())

var('u')
X = IM-u*T
Z = X.det()


Could anybody help me with this? or at least get me started in the right direction...

edit retag close merge delete

Is what you want the same as

sage: g=graphs.CycleGraph(5)
sage: g.ihara_zeta_function_inverse()


?

Sort by » oldest newest most voted To declare a function you can just follow this scheme

def function_name(<arguments>):
"Optional documentation string."
<Python/Sage instructions, could be multiple lines of code>
return <variable/expression>


In your case, I guess you'd like to receive G as an argument, so it could be of the form

def ihara( G ):
return Z


For more details on functions you can consult this webpage.

more