parameters: (op, grad)
return_statement: return (array_ops.reshape(math_ops.reduce_sum(math_ops.real(grad), rx), sx),
            array_ops.reshape(math_ops.reduce_sum(math_ops.imag(grad), ry), sy))
docstring: Returns the real and imaginary components of 'grad', respectively.
docstring_summary: Returns the real and imaginary components of 'grad', respectively.
docstring_tokens: Returns the real and imaginary components of grad respectively .
function: def _ComplexGrad(op, grad):
    """Returns the real and imaginary components of 'grad', respectively."""
    x = op.inputs[0]
    y = op.inputs[1]
    sx = array_ops.shape(x)
    sy = array_ops.shape(y)
    rx, ry = gen_array_ops._broadcast_gradient_args(sx, sy)
    return (array_ops.reshape(math_ops.reduce_sum(math_ops.real(grad), rx), sx),
            array_ops.reshape(math_ops.reduce_sum(math_ops.imag(grad), ry), sy))
function_tokens: def _ComplexGrad ( op , grad ) : x = op . inputs [ 0 ] y = op . inputs [ 1 ] sx = array_ops . shape ( x ) sy = array_ops . shape ( y ) rx , ry = gen_array_ops . _broadcast_gradient_args ( sx , sy ) return ( array_ops . reshape ( math_ops . reduce_sum ( math_ops . real ( grad ) , rx ) , sx ) , array_ops . reshape ( math_ops . reduce_sum ( math_ops . imag ( grad ) , ry ) , sy ) )