{"action":"created","comment":{"url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/comments/261691613","pull_request_review_id":209698855,"id":261691613,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI2MTY5MTYxMw==","diff_hunk":"@@ -0,0 +1,345 @@\n+import Base: isempty\n+\n+export Translation,\n+       an_element,\n+       constraints_list\n+\n+\"\"\"\n+    Translation{N<:Real, VN<:AbstractVector{N}, S<:LazySet{N}} <: LazySet{N}\n+\n+Type that represents a lazy translation.\n+\n+The translation of set `X` along vector `v` is the map: \n+\n+```math\n+x ↦ x + v,\\\\qquad x ∈ X\n+```\n+\n+A translation is a special case of an affine map ``A x + b, x ∈ X`` where the\n+linear map ``A`` is the identity matrix and the translation vector ``b = v``.\n+\n+### Fields\n+\n+- `X` -- convex set\n+- `v` -- vector that defines the translation\n+\n+### Example\n+\n+```jldoctest translation\n+julia> X = BallInf([2.0, 2.0, 2.0], 1.0);\n+\n+julia> v = [1.0, 0.0, 0.0]; # translation along dimension 1\n+\n+julia> tr = Translation(X, v);\n+\n+julia> typeof(tr)\n+Translation{Float64,Array{Float64,1},BallInf{Float64}}\n+\n+julia> tr.X\n+BallInf{Float64}([2.0, 2.0, 2.0], 1.0)\n+\n+julia> tr.v\n+3-element Array{Float64,1}:\n+ 1.0\n+ 0.0\n+ 0.0\n+```\n+The sum operator `+` is overloaded to create translations:\n+\n+```jldoctest translation\n+julia> X + v == Translation(X, v)\n+true\n+```\n+And so does the Minkowski sum operator, `⊕`:\n+\n+```jldoctest translation\n+julia> X ⊕ v == Translation(X, v)\n+true\n+```\n+\n+The translation of a translation is performed immediately:\n+\n+```jldoctest translation\n+julia> tr = (X+v)+v\n+Translation{Float64,Array{Float64,1},BallInf{Float64}}(BallInf{Float64}([2.0, 2.0, 2.0], 1.0), [2.0, 0.0, 0.0])\n+\n+julia> tr.v\n+3-element Array{Float64,1}:\n+ 2.0\n+ 0.0\n+ 0.0\n+```\n+\n+The dimension of a translation is obtained with the `dim` function:\n+\n+```jldoctest translation\n+julia> dim(tr)\n+3\n+```\n+\n+For the support vector (resp. support function) along vector `d`, use `σ` and\n+`ρ` respectively:\n+\n+```jldoctest translation\n+julia> σ([1.0, 0.0, 0.0], tr)\n+3-element Array{Float64,1}:\n+ 5.0\n+ 3.0\n+ 3.0\n+\n+julia> ρ([1.0, 0.0, 0.0], tr)\n+5.0\n+```\n+See the docstring of each of these functions for details.\n+\n+The `an_element` function is useful to obtain an element of a translation:\n+\n+```jldoctest translation\n+julia> e = an_element(tr)\n+3-element Array{Float64,1}:\n+ 4.0\n+ 2.0\n+ 2.0\n+```\n+\n+The lazy linear map of a translation is again a translation, since the following\n+simplification rule applies: ``M * (X⊕v) = (M*X) ⊕ (M*v)``:\n+\n+```jldoctest translation\n+julia> Q = Matrix(2.0I, 3, 3) * tr;\n+\n+julia> Q isa Translation && Q.v == 2 * tr.v\n+true\n+```\n+\n+Use the `isempty` method to query if the translation is empty; it falls back\n+to the `isempty` method of the wrapped set:\n+\n+```jldoctest translation\n+julia> isempty(tr)\n+false\n+```\n+\n+The list of constraints of the translation of a polyhedron (in general, a set\n+whose `constraints_list` is available) can be computed from a lazy translation:\n+\n+```jldoctest translation\n+julia> constraints_list(tr)\n+6-element Array{HalfSpace{Float64},1}:\n+ HalfSpace{Float64}([1.0, 0.0, 0.0], 5.0)\n+ HalfSpace{Float64}([0.0, 1.0, 0.0], 3.0)\n+ HalfSpace{Float64}([0.0, 0.0, 1.0], 3.0)\n+ HalfSpace{Float64}([-1.0, -0.0, -0.0], -3.0)\n+ HalfSpace{Float64}([-0.0, -1.0, -0.0], -1.0)\n+ HalfSpace{Float64}([-0.0, -0.0, -1.0], -1.0)\n+```\n+\"\"\"\n+struct Translation{N<:Real, VN<:AbstractVector{N}, S<:LazySet{N}} <: LazySet{N}\n+    X::S\n+    v::VN\n+\n+    # default constructor with dimension check\n+    function Translation(X::S, v::VN) where {N, VN<:AbstractVector{N}, S<:LazySet{N}}\n+        @assert dim(X) == length(v) \"cannot create a translation of a set of dimension $(dim(X)) \" *\n+                                    \"along a vector of length $(length(v))\" \n+        return new{N, VN, S}(X, v)\n+    end\n+end\n+\n+@static if VERSION < v\"0.7-\"\n+    @eval begin\n+        # convenience constructor without type parameter\n+        Translation(X::S, v::VN) where {N<:Real, VN<:AbstractVector{N}, S<:LazySet{N}} =\n+            Translation{N, VN, S}(X, v)\n+    end\n+end\n+\n+# constructor from a Translation: perform the translation immediately\n+Translation(tr::Translation{N}, v::AbstractVector{N}) where {N<:Real} =\n+    Translation(tr.X, tr.v + v)\n+\n+\"\"\"\n+    +(X::LazySet, v::AbstractVector)\n+\n+Convenience constructor for a translation.\n+\n+### Input\n+\n+- `X` -- convex set\n+- `v` -- vector\n+\n+### Output\n+\n+The symbolic translation of ``X`` along vector ``v``.\n+\"\"\"\n++(X::LazySet, v::AbstractVector) = Translation(X, v)\n+\n+\"\"\"\n+    ⊕(X::LazySet, v::AbstractVector)\n+\n+Unicode alias constructor ⊕ (`oplus`) for the lazy translation operator.\n+\"\"\"\n+⊕(X::LazySet, v::AbstractVector) = Translation(X, v)\n+\n+# ============================ \n+# LazySet interface functions\n+# ============================\n+\n+\"\"\"\n+    dim(tr::Translation)::Int\n+\n+Return the dimension of a translation.\n+\n+### Input\n+\n+- `tr` -- translation\n+\n+### Output\n+\n+The dimension of a translation.\n+\"\"\"\n+function dim(tr::Translation)::Int\n+    return length(tr.v)\n+end\n+\n+\n+\"\"\"\n+    σ(d::AbstractVector{N}, tr::Translation{N}) where {N<:Real}\n+\n+Return the support vector of a translation.\n+\n+### Input\n+\n+- `d`  -- direction\n+- `tr` -- translation\n+\n+### Output\n+\n+The support vector in the given direction.\n+If the direction has norm zero, the result depends on the wrapped set.\n+\"\"\"\n+function σ(d::AbstractVector{N}, tr::Translation{N}) where {N<:Real}\n+    return tr.v + σ(d, tr.X)\n+end\n+\n+\"\"\"\n+    ρ(d::AbstractVector{N}, tr::Translation{N}) where {N<:Real}\n+\n+Return the support function of a translation.\n+\n+### Input\n+\n+- `d`  -- direction\n+- `tr` -- translation\n+\n+### Output\n+\n+The support function in the given direction.\n+\"\"\"\n+function ρ(d::AbstractVector{N}, tr::Translation{N}) where {N<:Real}\n+    return dot(d, tr.v) + ρ(d, tr.X)\n+end\n+\n+\"\"\"\n+    LinearMap(M::AbstractMatrix{N}, tr::Translation{N}) where {N<:Real}\n+\n+Return the lazy linear map of a translation.\n+\n+### Input\n+\n+- `M`  -- matrix\n+- `tr` -- translation\n+\n+### Output\n+\n+The translation defined by the linear map.\n+\n+### Notes\n+\n+This method defines the simplification rule: ``M * (X⊕v) = (M*X) ⊕ (M*v)``,\n+returning a new translation.\n+\"\"\"\n+function LinearMap(M::AbstractMatrix{N}, tr::Translation{N}) where {N<:Real}\n+    return Translation(M * tr.X, M * tr.v)\n+end\n+\n+\"\"\"\n+    an_element(tr::Translation)\n+\n+Return some element of a translation.\n+\n+### Input\n+\n+- `tr` -- translation\n+\n+### Output\n+\n+An element in the translation.\n+\n+### Notes\n+\n+This function first asks for `an_element` function of the wrapped set, then\n+translates this element according to the given translation vector. \n+\"\"\"\n+function an_element(tr::Translation)\n+    return an_element(tr.X) + tr.v\n+end\n+\n+\"\"\"\n+    isempty(tr::Translation)::Bool\n+\n+Return if a translation is empty or not.\n+\n+### Input\n+\n+- `tr` -- translation\n+\n+### Output\n+\n+`true` iff the wrapped set is empty.\n+\"\"\"\n+function isempty(tr::Translation)::Bool\n+    return isempty(tr.X)","path":"src/Translation.jl","position":302,"original_position":302,"commit_id":"e4da9d0a330adb98609f5705383b2f4e1e54daa5","original_commit_id":"e4da9d0a330adb98609f5705383b2f4e1e54daa5","user":{"login":"mforets","id":12424594,"node_id":"MDQ6VXNlcjEyNDI0NTk0","avatar_url":"https://avatars3.githubusercontent.com/u/12424594?v=4","gravatar_id":"","url":"https://api.github.com/users/mforets","html_url":"https://github.com/mforets","followers_url":"https://api.github.com/users/mforets/followers","following_url":"https://api.github.com/users/mforets/following{/other_user}","gists_url":"https://api.github.com/users/mforets/gists{/gist_id}","starred_url":"https://api.github.com/users/mforets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mforets/subscriptions","organizations_url":"https://api.github.com/users/mforets/orgs","repos_url":"https://api.github.com/users/mforets/repos","events_url":"https://api.github.com/users/mforets/events{/privacy}","received_events_url":"https://api.github.com/users/mforets/received_events","type":"User","site_admin":false},"body":"Wait, is it correct? If `tr.X` is empty but the translation is not the zero vector, we get a singleton. Then:\r\n\r\n```julia\r\nfunction isempty(tr::Translation)::Bool\r\n     return isempty(tr.X) && isempty(tr.v)\r\nend\r\n```\r\nBut i don't think that we can create a translation with an empty vector, so `isempty` should be return `false` in all cases?","created_at":"2019-03-01T17:31:41Z","updated_at":"2019-03-01T17:31:41Z","html_url":"https://github.com/JuliaReach/LazySets.jl/pull/1173#discussion_r261691613","pull_request_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/comments/261691613"},"html":{"href":"https://github.com/JuliaReach/LazySets.jl/pull/1173#discussion_r261691613"},"pull_request":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173"}}},"pull_request":{"url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173","id":256807395,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU2ODA3Mzk1","html_url":"https://github.com/JuliaReach/LazySets.jl/pull/1173","diff_url":"https://github.com/JuliaReach/LazySets.jl/pull/1173.diff","patch_url":"https://github.com/JuliaReach/LazySets.jl/pull/1173.patch","issue_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/1173","number":1173,"state":"open","locked":false,"title":"#882 - Add lazy Translation","user":{"login":"mforets","id":12424594,"node_id":"MDQ6VXNlcjEyNDI0NTk0","avatar_url":"https://avatars3.githubusercontent.com/u/12424594?v=4","gravatar_id":"","url":"https://api.github.com/users/mforets","html_url":"https://github.com/mforets","followers_url":"https://api.github.com/users/mforets/followers","following_url":"https://api.github.com/users/mforets/following{/other_user}","gists_url":"https://api.github.com/users/mforets/gists{/gist_id}","starred_url":"https://api.github.com/users/mforets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mforets/subscriptions","organizations_url":"https://api.github.com/users/mforets/orgs","repos_url":"https://api.github.com/users/mforets/repos","events_url":"https://api.github.com/users/mforets/events{/privacy}","received_events_url":"https://api.github.com/users/mforets/received_events","type":"User","site_admin":false},"body":"Closes #882.","created_at":"2019-02-27T19:21:56Z","updated_at":"2019-03-01T17:31:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a187578ff65bb1d4d8a7ae43c07770584db6bf01","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173/commits","review_comments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173/comments","review_comment_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/1173/comments","statuses_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/statuses/e4da9d0a330adb98609f5705383b2f4e1e54daa5","head":{"label":"JuliaReach:mforets/882","ref":"mforets/882","sha":"e4da9d0a330adb98609f5705383b2f4e1e54daa5","user":{"login":"JuliaReach","id":33028082,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzMDI4MDgy","avatar_url":"https://avatars3.githubusercontent.com/u/33028082?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaReach","html_url":"https://github.com/JuliaReach","followers_url":"https://api.github.com/users/JuliaReach/followers","following_url":"https://api.github.com/users/JuliaReach/following{/other_user}","gists_url":"https://api.github.com/users/JuliaReach/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaReach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaReach/subscriptions","organizations_url":"https://api.github.com/users/JuliaReach/orgs","repos_url":"https://api.github.com/users/JuliaReach/repos","events_url":"https://api.github.com/users/JuliaReach/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaReach/received_events","type":"Organization","site_admin":false},"repo":{"id":105701832,"node_id":"MDEwOlJlcG9zaXRvcnkxMDU3MDE4MzI=","name":"LazySets.jl","full_name":"JuliaReach/LazySets.jl","private":false,"owner":{"login":"JuliaReach","id":33028082,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzMDI4MDgy","avatar_url":"https://avatars3.githubusercontent.com/u/33028082?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaReach","html_url":"https://github.com/JuliaReach","followers_url":"https://api.github.com/users/JuliaReach/followers","following_url":"https://api.github.com/users/JuliaReach/following{/other_user}","gists_url":"https://api.github.com/users/JuliaReach/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaReach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaReach/subscriptions","organizations_url":"https://api.github.com/users/JuliaReach/orgs","repos_url":"https://api.github.com/users/JuliaReach/repos","events_url":"https://api.github.com/users/JuliaReach/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaReach/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/JuliaReach/LazySets.jl","description":"A Julia package for calculus with convex sets","fork":false,"url":"https://api.github.com/repos/JuliaReach/LazySets.jl","forks_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/forks","keys_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/teams","hooks_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/hooks","issue_events_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/events{/number}","events_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/events","assignees_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/assignees{/user}","branches_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/branches{/branch}","tags_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/tags","blobs_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/refs{/sha}","trees_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/statuses/{sha}","languages_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/languages","stargazers_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/stargazers","contributors_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/contributors","subscribers_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/subscribers","subscription_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/subscription","commits_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/commits{/sha}","git_commits_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/commits{/sha}","comments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/comments{/number}","issue_comment_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/comments{/number}","contents_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/contents/{+path}","compare_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/merges","archive_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/downloads","issues_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues{/number}","pulls_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls{/number}","milestones_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/milestones{/number}","notifications_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/labels{/name}","releases_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/releases{/id}","deployments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/deployments","created_at":"2017-10-03T20:50:18Z","updated_at":"2019-03-01T14:51:32Z","pushed_at":"2019-03-01T17:09:38Z","git_url":"git://github.com/JuliaReach/LazySets.jl.git","ssh_url":"git@github.com:JuliaReach/LazySets.jl.git","clone_url":"https://github.com/JuliaReach/LazySets.jl.git","svn_url":"https://github.com/JuliaReach/LazySets.jl","homepage":"","size":28190,"stargazers_count":37,"watchers_count":37,"language":"Julia","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"archived":false,"open_issues_count":260,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":7,"open_issues":260,"watchers":37,"default_branch":"master"}},"base":{"label":"JuliaReach:master","ref":"master","sha":"de7b2b02f9039dccbf3fb2f2b0057ea75ecd7d72","user":{"login":"JuliaReach","id":33028082,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzMDI4MDgy","avatar_url":"https://avatars3.githubusercontent.com/u/33028082?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaReach","html_url":"https://github.com/JuliaReach","followers_url":"https://api.github.com/users/JuliaReach/followers","following_url":"https://api.github.com/users/JuliaReach/following{/other_user}","gists_url":"https://api.github.com/users/JuliaReach/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaReach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaReach/subscriptions","organizations_url":"https://api.github.com/users/JuliaReach/orgs","repos_url":"https://api.github.com/users/JuliaReach/repos","events_url":"https://api.github.com/users/JuliaReach/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaReach/received_events","type":"Organization","site_admin":false},"repo":{"id":105701832,"node_id":"MDEwOlJlcG9zaXRvcnkxMDU3MDE4MzI=","name":"LazySets.jl","full_name":"JuliaReach/LazySets.jl","private":false,"owner":{"login":"JuliaReach","id":33028082,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzMDI4MDgy","avatar_url":"https://avatars3.githubusercontent.com/u/33028082?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaReach","html_url":"https://github.com/JuliaReach","followers_url":"https://api.github.com/users/JuliaReach/followers","following_url":"https://api.github.com/users/JuliaReach/following{/other_user}","gists_url":"https://api.github.com/users/JuliaReach/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaReach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaReach/subscriptions","organizations_url":"https://api.github.com/users/JuliaReach/orgs","repos_url":"https://api.github.com/users/JuliaReach/repos","events_url":"https://api.github.com/users/JuliaReach/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaReach/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/JuliaReach/LazySets.jl","description":"A Julia package for calculus with convex sets","fork":false,"url":"https://api.github.com/repos/JuliaReach/LazySets.jl","forks_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/forks","keys_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/teams","hooks_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/hooks","issue_events_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/events{/number}","events_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/events","assignees_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/assignees{/user}","branches_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/branches{/branch}","tags_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/tags","blobs_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/refs{/sha}","trees_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/statuses/{sha}","languages_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/languages","stargazers_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/stargazers","contributors_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/contributors","subscribers_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/subscribers","subscription_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/subscription","commits_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/commits{/sha}","git_commits_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/git/commits{/sha}","comments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/comments{/number}","issue_comment_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/comments{/number}","contents_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/contents/{+path}","compare_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/merges","archive_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/downloads","issues_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues{/number}","pulls_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls{/number}","milestones_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/milestones{/number}","notifications_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/labels{/name}","releases_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/releases{/id}","deployments_url":"https://api.github.com/repos/JuliaReach/LazySets.jl/deployments","created_at":"2017-10-03T20:50:18Z","updated_at":"2019-03-01T14:51:32Z","pushed_at":"2019-03-01T17:09:38Z","git_url":"git://github.com/JuliaReach/LazySets.jl.git","ssh_url":"git@github.com:JuliaReach/LazySets.jl.git","clone_url":"https://github.com/JuliaReach/LazySets.jl.git","svn_url":"https://github.com/JuliaReach/LazySets.jl","homepage":"","size":28190,"stargazers_count":37,"watchers_count":37,"language":"Julia","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"archived":false,"open_issues_count":260,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":7,"open_issues":260,"watchers":37,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173"},"html":{"href":"https://github.com/JuliaReach/LazySets.jl/pull/1173"},"issue":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/1173"},"comments":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/issues/1173/comments"},"review_comments":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173/comments"},"review_comment":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/pulls/1173/commits"},"statuses":{"href":"https://api.github.com/repos/JuliaReach/LazySets.jl/statuses/e4da9d0a330adb98609f5705383b2f4e1e54daa5"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"mforets"}}