def to_double(g):
    r"""Cast this graph to use float64 (double-precision) for any
    floating-point edge and node feature data.

    A shallow copy is returned so that the original graph is not modified.
    Feature tensors that are not floating-point will not be modified.

    Returns
    -------
    DGLGraph
        Clone of graph with the feature data converted to float64.
    """
    ret = copy.copy(g)
    ret._edge_frames = [frame.double() for frame in ret._edge_frames]
    ret._node_frames = [frame.double() for frame in ret._node_frames]
    return ret
Cast this graph to use float64 (double-precision) for any
    floating-point edge and node feature data.

    A shallow copy is returned so that the original graph is not modified.
    Feature tensors that are not floating-point will not be modified.

    Returns
    -------
    DGLGraph
        Clone of graph with the feature data converted to float64.
    
python/dgl/transforms/functional.py