{"action":"opened","issue":{"url":"https://api.github.com/repos/sympy/sympy/issues/14456","repository_url":"https://api.github.com/repos/sympy/sympy","labels_url":"https://api.github.com/repos/sympy/sympy/issues/14456/labels{/name}","comments_url":"https://api.github.com/repos/sympy/sympy/issues/14456/comments","events_url":"https://api.github.com/repos/sympy/sympy/issues/14456/events","html_url":"https://github.com/sympy/sympy/issues/14456","id":304005867,"number":14456,"title":"Limits at complex infinity are sometimes interpreted as limits at oo or -oo","user":{"login":"normalhuman","id":13082030,"avatar_url":"https://avatars1.githubusercontent.com/u/13082030?v=4","gravatar_id":"","url":"https://api.github.com/users/normalhuman","html_url":"https://github.com/normalhuman","followers_url":"https://api.github.com/users/normalhuman/followers","following_url":"https://api.github.com/users/normalhuman/following{/other_user}","gists_url":"https://api.github.com/users/normalhuman/gists{/gist_id}","starred_url":"https://api.github.com/users/normalhuman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normalhuman/subscriptions","organizations_url":"https://api.github.com/users/normalhuman/orgs","repos_url":"https://api.github.com/users/normalhuman/repos","events_url":"https://api.github.com/users/normalhuman/events{/privacy}","received_events_url":"https://api.github.com/users/normalhuman/received_events","type":"User","site_admin":false},"labels":[{"id":780320387,"url":"https://api.github.com/repos/sympy/sympy/labels/limits","name":"limits","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-03-09T22:52:19Z","updated_at":"2018-03-09T22:52:19Z","closed_at":null,"author_association":"MEMBER","body":"```\r\n>>> var('z')\r\n>>> limit(z**2/(z+1), z, zoo)\r\noo    # this is the limit at oo, not at zoo \r\n>>> limit(exp(z), z, zoo)\r\n0      # this is the limit at -oo, not at zoo\r\n```\r\n\r\nThe former behavior comes from [\"all ok\" branch](https://github.com/sympy/sympy/blob/master/sympy/series/limits.py#L193), which groups zoo with oo.\r\n```\r\n                    if z0 is S.NegativeInfinity:\r\n                        inve = e.subs(z, -1/u)\r\n                    else:    # both oo and zoo go here\r\n                        inve = e.subs(z, 1/u)\r\n```\r\nThe latter comes from [heuristics](https://github.com/sympy/sympy/blob/master/sympy/series/limits.py#L73), which groups zoo with -oo.  \r\n```\r\n    if abs(z0) is S.Infinity:\r\n        rv = limit(e.subs(z, 1/z), z, S.Zero, \"+\" if z0 is S.Infinity else \"-\")\r\n```\r\n\r\nPossible solutions: \r\n\r\n1. Limit at zoo raises NotImplementedError\r\n2. Limit at zoo is evaluated as a parametric limit, [as suggested here](https://github.com/sympy/sympy/issues/8341#issuecomment-371641653)."}}
{"actor":{"display_login":"normalhuman"}}