Documentation

(http://projects.skewed.de/graph-tool/doc/search_module.html#graph_tool.search.astar_search)

says that both 'zero' and 'infinity' parameters type should be int or float.

To me this is wrong, their type should be the one used to represent costs.

A confirmation of that is that I used to work with 2.2.17 version. While

moving to 2.2.24, I encounter a bug that has been introduced in 2.2.18

version (commit 016d8244a24b3dba812ce2bb305e2e1f09e85154)

In my application, 'cost_map' and 'dist_map' are both created with

graph.new_vertex_property("object")

'zero' and 'infinity' are two specific Cost() instances, which is a type

with a __init__ function that don't take any other argument than the regular

'self' one). The call to astart_search is like this:

gt.astar_search (g=MyGraph, source=MyGraph.vertex(0), weight =

MyGraph.new_edge_property("object"),

visitor=MyVisitor, dist_map =

MyGraph.new_vertex_property("object"),

cost_map = MyGraph.new_vertex_property("object"),

pred_map = MyGraph.new_vertex_property("int"),

zero = CostZero, infinity = CostInfinity, implicit

= true)

While it used to work with 2.2.17, now my application crashes in

search/__init__.py, at the beginning of the astart_function, more precisely

the instruction in the following "try" section:

try:

zero = _python_type(dist_map.value_type())(zero)

except OverflowError:

zero = (weight.a.max() + 1) * g.num_vertices()

zero = _python_type(dist_map.value_type())(zero)

I don't get why we try here to convert 'zero' (and right after this,

'infinity') whereas it already has the correct type. What did I miss?