{"action":"created","issue":{"url":"https://api.github.com/repos/tensorics/tensorics-core/issues/36","repository_url":"https://api.github.com/repos/tensorics/tensorics-core","labels_url":"https://api.github.com/repos/tensorics/tensorics-core/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/tensorics/tensorics-core/issues/36/comments","events_url":"https://api.github.com/repos/tensorics/tensorics-core/issues/36/events","html_url":"https://github.com/tensorics/tensorics-core/issues/36","id":386571026,"node_id":"MDU6SXNzdWUzODY1NzEwMjY=","number":36,"title":"Provide limited support for tensors of typed dimensions","user":{"login":"kaifox","id":986001,"node_id":"MDQ6VXNlcjk4NjAwMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/986001?v=4","gravatar_id":"","url":"https://api.github.com/users/kaifox","html_url":"https://github.com/kaifox","followers_url":"https://api.github.com/users/kaifox/followers","following_url":"https://api.github.com/users/kaifox/following{/other_user}","gists_url":"https://api.github.com/users/kaifox/gists{/gist_id}","starred_url":"https://api.github.com/users/kaifox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaifox/subscriptions","organizations_url":"https://api.github.com/users/kaifox/orgs","repos_url":"https://api.github.com/users/kaifox/repos","events_url":"https://api.github.com/users/kaifox/events{/privacy}","received_events_url":"https://api.github.com/users/kaifox/received_events","type":"User","site_admin":false},"labels":[{"id":280164295,"node_id":"MDU6TGFiZWwyODAxNjQyOTU=","url":"https://api.github.com/repos/tensorics/tensorics-core/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-12-02T15:40:42Z","updated_at":"2018-12-02T22:30:19Z","closed_at":null,"author_association":"MEMBER","body":"As noted recently by Andrea, one limiting factor, which might bring fear to new users, is the fact that dimensions are never typed and that also the number of dimensions is never known when using a tensor ....\r\n\r\nIn early designs such things were tried, but always led to horrible \"generic\" monsters, so it was decided to give this up at that time....\r\n\r\nHowever, since now a core functionality is well established and proves to be useful.... probably it is time to rethink this approach and add limited 'typed tensors' sugar on top of the existing.... \r\n\r\nFor sure we should follow an approach, where all the utility methods always only act on Tensors<V> (only the value is typed). Otherwise, we will have an explosion of methods .... However, we could potentially have e.g. typed tensors (and builders) up to a limited number of dimensions..."},"comment":{"url":"https://api.github.com/repos/tensorics/tensorics-core/issues/comments/443548386","html_url":"https://github.com/tensorics/tensorics-core/issues/36#issuecomment-443548386","issue_url":"https://api.github.com/repos/tensorics/tensorics-core/issues/36","id":443548386,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MzU0ODM4Ng==","user":{"login":"kaifox","id":986001,"node_id":"MDQ6VXNlcjk4NjAwMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/986001?v=4","gravatar_id":"","url":"https://api.github.com/users/kaifox","html_url":"https://github.com/kaifox","followers_url":"https://api.github.com/users/kaifox/followers","following_url":"https://api.github.com/users/kaifox/following{/other_user}","gists_url":"https://api.github.com/users/kaifox/gists{/gist_id}","starred_url":"https://api.github.com/users/kaifox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaifox/subscriptions","organizations_url":"https://api.github.com/users/kaifox/orgs","repos_url":"https://api.github.com/users/kaifox/repos","events_url":"https://api.github.com/users/kaifox/events{/privacy}","received_events_url":"https://api.github.com/users/kaifox/received_events","type":"User","site_admin":false},"created_at":"2018-12-02T22:30:19Z","updated_at":"2018-12-02T22:30:19Z","author_association":"MEMBER","body":"I agree... The Ordering is artificial in this case ... However, one could accept this I think, by explicitely documenting this feature ... Indeed the two tensors you mention are equivalent (to be checked by the way .. I doubt that the equality holds at the moment).\r\n\r\nBTW: I just tried and indeed, the following still works with the proposed implementation:\r\n```\r\nTensor2D<C1, C2, V> tensor = ...// instantiation omitted\r\n\r\nV value1 = tensor.get(c1, c2); // obvious; calls get(C1, C2)\r\n\r\nV value2 = tensor.get(c2, c1); // this still works! Calls get(Object ... coordinates)\r\n```\r\n, because the Tensor1D inherits from Tensor ... and still provides the get(Object... coordinates) method.... I think its not that bad ;-)\r\n\r\nCompiletime annotation processing is nice ... but always comes with the (in my opinion) big drawback that you need particular arguments for your compiler (and each ide...).... I finally always refrained from libraries requiring this .... so I fear that others do also ....\r\n... but to be considered ...\r\n\r\nAnother problem, not mentioned yet in this thread, is one which was there all the time, but becomes much more prominent if we provide this typed coordinates, is this one (I dedicated a separate issueto it): #38 .\r\nIndeed, I think this has to be solved together, otherwise things get unhandy ... but on the other hand, I think it opens things for future extensions....\r\n\r\n"}}
{"actor":{"display_login":"kaifox"}}