{"action":"created","comment":{"url":"https://api.github.com/repos/gap-system/gap/pulls/comments/123463216","pull_request_review_id":45667398,"id":123463216,"diff_hunk":"@@ -431,6 +431,34 @@ DeclareOperation( \"ImmutableMatrix\",[IsObject,IsMatrix]);\n \n #############################################################################\n ##\n+#F  ImmutableVector( <field>, <vector>[, <change>] ) . convert into \"best\" representation\n+##\n+##  <#GAPDoc Label=\"ImmutableVector\">\n+##  <ManSection>\n+##  <Oper Name=\"ImmutableVector\" Arg='field, vector[, change]'/>\n+##\n+##  <Description>\n+##  returns an immutable vector equal to <A>vector</A> which is in the optimal\n+##  (concerning space and runtime) representation for vectors defined over\n+##  <A>field</A>. This means that vectors obtained by several calls of\n+##  <Ref Oper=\"ImmutableVector\"/> for the same <A>field</A> are compatible\n+##  for fast arithmetic without need for field conversion.\n+##  <P/>\n+##  The input vector <A>vector</A> might change the representation,\n+##  however the result of <Ref Oper=\"ImmutableVector\"/> is not necessarily\n+##  <E>identical</E> to <A>vector</A> if a conversion is not possible.\n+##  <P/>\n+##  If <A>change</A> is <K>true</K>, then <A>vector</A> may be changed to\n+##  become immutable; otherwise it is copied first.","path":"hpcgap/lib/vecmat.gd","position":31,"original_position":22,"commit_id":"96d12458cc1679c86d928db224a2a974526a2b9c","original_commit_id":"0649883988e23c35093f557d120dfb91db72197e","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars1.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"body":"(Indeed, I explicitly work around `CopyToVectorRep` potentially returning `fail` -- and this behavior of `CopyToVectorRep` makes it really annoying to use, and is the main reason why I am adding `ImmutableVector` instead of just porting `CopyToVectorRep` to plain GAP.","created_at":"2017-06-22T09:34:03Z","updated_at":"2017-06-22T09:34:03Z","html_url":"https://github.com/gap-system/gap/pull/1409#discussion_r123463216","pull_request_url":"https://api.github.com/repos/gap-system/gap/pulls/1409","_links":{"self":{"href":"https://api.github.com/repos/gap-system/gap/pulls/comments/123463216"},"html":{"href":"https://github.com/gap-system/gap/pull/1409#discussion_r123463216"},"pull_request":{"href":"https://api.github.com/repos/gap-system/gap/pulls/1409"}}},"pull_request":{"url":"https://api.github.com/repos/gap-system/gap/pulls/1409","id":124763110,"html_url":"https://github.com/gap-system/gap/pull/1409","diff_url":"https://github.com/gap-system/gap/pull/1409.diff","patch_url":"https://github.com/gap-system/gap/pull/1409.patch","issue_url":"https://api.github.com/repos/gap-system/gap/issues/1409","number":1409,"state":"open","locked":false,"title":"Add ImmutableVector plus more HPC-GAP library merging","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars1.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"body":"This PR adds a new operation`ImmutableVector`, as sibling to the existing `ImmutableMatrix`. It also changes parts of the library to use it (typically instead of `ConvertToVectorRep`).\r\n\r\nFor MatrixObj, we will probably want to slightly adjust the filters of this operation (just as I assumed we'd want to adjust `ImmutableMatrix`), but that can be done as part of the MatrixObj branch.\r\n\r\nOne major advantage of this API is that it can be used efficiently from HPC code, too, so this PR also manages to unify a bunch of files in the GAP library.","created_at":"2017-06-08T23:12:02Z","updated_at":"2017-06-22T09:34:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5dfdc976cab41cfa43371f861c25957aa9ea279d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"frankluebeck","id":6473002,"avatar_url":"https://avatars3.githubusercontent.com/u/6473002?v=3","gravatar_id":"","url":"https://api.github.com/users/frankluebeck","html_url":"https://github.com/frankluebeck","followers_url":"https://api.github.com/users/frankluebeck/followers","following_url":"https://api.github.com/users/frankluebeck/following{/other_user}","gists_url":"https://api.github.com/users/frankluebeck/gists{/gist_id}","starred_url":"https://api.github.com/users/frankluebeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frankluebeck/subscriptions","organizations_url":"https://api.github.com/users/frankluebeck/orgs","repos_url":"https://api.github.com/users/frankluebeck/repos","events_url":"https://api.github.com/users/frankluebeck/events{/privacy}","received_events_url":"https://api.github.com/users/frankluebeck/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/gap-system/gap/pulls/1409/commits","review_comments_url":"https://api.github.com/repos/gap-system/gap/pulls/1409/comments","review_comment_url":"https://api.github.com/repos/gap-system/gap/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gap-system/gap/issues/1409/comments","statuses_url":"https://api.github.com/repos/gap-system/gap/statuses/96d12458cc1679c86d928db224a2a974526a2b9c","head":{"label":"fingolfin:mh/ImmutableVector","ref":"mh/ImmutableVector","sha":"96d12458cc1679c86d928db224a2a974526a2b9c","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars1.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"repo":{"id":31670364,"name":"gap","full_name":"fingolfin/gap","owner":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars1.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fingolfin/gap","description":"GAP - Groups, Algorithms, Programming - a System for Computational Discrete Algebra","fork":true,"url":"https://api.github.com/repos/fingolfin/gap","forks_url":"https://api.github.com/repos/fingolfin/gap/forks","keys_url":"https://api.github.com/repos/fingolfin/gap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fingolfin/gap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fingolfin/gap/teams","hooks_url":"https://api.github.com/repos/fingolfin/gap/hooks","issue_events_url":"https://api.github.com/repos/fingolfin/gap/issues/events{/number}","events_url":"https://api.github.com/repos/fingolfin/gap/events","assignees_url":"https://api.github.com/repos/fingolfin/gap/assignees{/user}","branches_url":"https://api.github.com/repos/fingolfin/gap/branches{/branch}","tags_url":"https://api.github.com/repos/fingolfin/gap/tags","blobs_url":"https://api.github.com/repos/fingolfin/gap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fingolfin/gap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fingolfin/gap/git/refs{/sha}","trees_url":"https://api.github.com/repos/fingolfin/gap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fingolfin/gap/statuses/{sha}","languages_url":"https://api.github.com/repos/fingolfin/gap/languages","stargazers_url":"https://api.github.com/repos/fingolfin/gap/stargazers","contributors_url":"https://api.github.com/repos/fingolfin/gap/contributors","subscribers_url":"https://api.github.com/repos/fingolfin/gap/subscribers","subscription_url":"https://api.github.com/repos/fingolfin/gap/subscription","commits_url":"https://api.github.com/repos/fingolfin/gap/commits{/sha}","git_commits_url":"https://api.github.com/repos/fingolfin/gap/git/commits{/sha}","comments_url":"https://api.github.com/repos/fingolfin/gap/comments{/number}","issue_comment_url":"https://api.github.com/repos/fingolfin/gap/issues/comments{/number}","contents_url":"https://api.github.com/repos/fingolfin/gap/contents/{+path}","compare_url":"https://api.github.com/repos/fingolfin/gap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fingolfin/gap/merges","archive_url":"https://api.github.com/repos/fingolfin/gap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fingolfin/gap/downloads","issues_url":"https://api.github.com/repos/fingolfin/gap/issues{/number}","pulls_url":"https://api.github.com/repos/fingolfin/gap/pulls{/number}","milestones_url":"https://api.github.com/repos/fingolfin/gap/milestones{/number}","notifications_url":"https://api.github.com/repos/fingolfin/gap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fingolfin/gap/labels{/name}","releases_url":"https://api.github.com/repos/fingolfin/gap/releases{/id}","deployments_url":"https://api.github.com/repos/fingolfin/gap/deployments","created_at":"2015-03-04T17:35:23Z","updated_at":"2016-10-25T12:37:56Z","pushed_at":"2017-06-22T08:41:55Z","git_url":"git://github.com/fingolfin/gap.git","ssh_url":"git@github.com:fingolfin/gap.git","clone_url":"https://github.com/fingolfin/gap.git","svn_url":"https://github.com/fingolfin/gap","homepage":"http://www.gap-system.org","size":383289,"stargazers_count":0,"watchers_count":0,"language":"GAP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":32,"forks":0,"open_issues":32,"watchers":0,"default_branch":"hpc-merge"}},"base":{"label":"gap-system:master","ref":"master","sha":"9145578b5313b7c031319cc47592f0cadf932fce","user":{"login":"gap-system","id":5344223,"avatar_url":"https://avatars1.githubusercontent.com/u/5344223?v=3","gravatar_id":"","url":"https://api.github.com/users/gap-system","html_url":"https://github.com/gap-system","followers_url":"https://api.github.com/users/gap-system/followers","following_url":"https://api.github.com/users/gap-system/following{/other_user}","gists_url":"https://api.github.com/users/gap-system/gists{/gist_id}","starred_url":"https://api.github.com/users/gap-system/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gap-system/subscriptions","organizations_url":"https://api.github.com/users/gap-system/orgs","repos_url":"https://api.github.com/users/gap-system/repos","events_url":"https://api.github.com/users/gap-system/events{/privacy}","received_events_url":"https://api.github.com/users/gap-system/received_events","type":"Organization","site_admin":false},"repo":{"id":31270208,"name":"gap","full_name":"gap-system/gap","owner":{"login":"gap-system","id":5344223,"avatar_url":"https://avatars1.githubusercontent.com/u/5344223?v=3","gravatar_id":"","url":"https://api.github.com/users/gap-system","html_url":"https://github.com/gap-system","followers_url":"https://api.github.com/users/gap-system/followers","following_url":"https://api.github.com/users/gap-system/following{/other_user}","gists_url":"https://api.github.com/users/gap-system/gists{/gist_id}","starred_url":"https://api.github.com/users/gap-system/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gap-system/subscriptions","organizations_url":"https://api.github.com/users/gap-system/orgs","repos_url":"https://api.github.com/users/gap-system/repos","events_url":"https://api.github.com/users/gap-system/events{/privacy}","received_events_url":"https://api.github.com/users/gap-system/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gap-system/gap","description":"Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra","fork":false,"url":"https://api.github.com/repos/gap-system/gap","forks_url":"https://api.github.com/repos/gap-system/gap/forks","keys_url":"https://api.github.com/repos/gap-system/gap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gap-system/gap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gap-system/gap/teams","hooks_url":"https://api.github.com/repos/gap-system/gap/hooks","issue_events_url":"https://api.github.com/repos/gap-system/gap/issues/events{/number}","events_url":"https://api.github.com/repos/gap-system/gap/events","assignees_url":"https://api.github.com/repos/gap-system/gap/assignees{/user}","branches_url":"https://api.github.com/repos/gap-system/gap/branches{/branch}","tags_url":"https://api.github.com/repos/gap-system/gap/tags","blobs_url":"https://api.github.com/repos/gap-system/gap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gap-system/gap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gap-system/gap/git/refs{/sha}","trees_url":"https://api.github.com/repos/gap-system/gap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gap-system/gap/statuses/{sha}","languages_url":"https://api.github.com/repos/gap-system/gap/languages","stargazers_url":"https://api.github.com/repos/gap-system/gap/stargazers","contributors_url":"https://api.github.com/repos/gap-system/gap/contributors","subscribers_url":"https://api.github.com/repos/gap-system/gap/subscribers","subscription_url":"https://api.github.com/repos/gap-system/gap/subscription","commits_url":"https://api.github.com/repos/gap-system/gap/commits{/sha}","git_commits_url":"https://api.github.com/repos/gap-system/gap/git/commits{/sha}","comments_url":"https://api.github.com/repos/gap-system/gap/comments{/number}","issue_comment_url":"https://api.github.com/repos/gap-system/gap/issues/comments{/number}","contents_url":"https://api.github.com/repos/gap-system/gap/contents/{+path}","compare_url":"https://api.github.com/repos/gap-system/gap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gap-system/gap/merges","archive_url":"https://api.github.com/repos/gap-system/gap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gap-system/gap/downloads","issues_url":"https://api.github.com/repos/gap-system/gap/issues{/number}","pulls_url":"https://api.github.com/repos/gap-system/gap/pulls{/number}","milestones_url":"https://api.github.com/repos/gap-system/gap/milestones{/number}","notifications_url":"https://api.github.com/repos/gap-system/gap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gap-system/gap/labels{/name}","releases_url":"https://api.github.com/repos/gap-system/gap/releases{/id}","deployments_url":"https://api.github.com/repos/gap-system/gap/deployments","created_at":"2015-02-24T16:47:50Z","updated_at":"2017-06-20T23:02:33Z","pushed_at":"2017-06-22T08:54:13Z","git_url":"git://github.com/gap-system/gap.git","ssh_url":"git@github.com:gap-system/gap.git","clone_url":"https://github.com/gap-system/gap.git","svn_url":"https://github.com/gap-system/gap","homepage":"https://www.gap-system.org","size":395388,"stargazers_count":132,"watchers_count":132,"language":"GAP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":57,"mirror_url":null,"open_issues_count":268,"forks":57,"open_issues":268,"watchers":132,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gap-system/gap/pulls/1409"},"html":{"href":"https://github.com/gap-system/gap/pull/1409"},"issue":{"href":"https://api.github.com/repos/gap-system/gap/issues/1409"},"comments":{"href":"https://api.github.com/repos/gap-system/gap/issues/1409/comments"},"review_comments":{"href":"https://api.github.com/repos/gap-system/gap/pulls/1409/comments"},"review_comment":{"href":"https://api.github.com/repos/gap-system/gap/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gap-system/gap/pulls/1409/commits"},"statuses":{"href":"https://api.github.com/repos/gap-system/gap/statuses/96d12458cc1679c86d928db224a2a974526a2b9c"}}}}
{"actor":{"display_login":"fingolfin"}}