{"action":"created","issue":{"url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/69","repository_url":"https://api.github.com/repos/wbhart/Nemo.jl","labels_url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/69/labels{/name}","comments_url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/69/comments","events_url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/69/events","html_url":"https://github.com/wbhart/Nemo.jl/issues/69","id":196043327,"number":69,"title":"Compatibility with MultivariatePolynomials","user":{"login":"blegat","id":1048205,"avatar_url":"https://avatars.githubusercontent.com/u/1048205?v=3","gravatar_id":"","url":"https://api.github.com/users/blegat","html_url":"https://github.com/blegat","followers_url":"https://api.github.com/users/blegat/followers","following_url":"https://api.github.com/users/blegat/following{/other_user}","gists_url":"https://api.github.com/users/blegat/gists{/gist_id}","starred_url":"https://api.github.com/users/blegat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blegat/subscriptions","organizations_url":"https://api.github.com/users/blegat/orgs","repos_url":"https://api.github.com/users/blegat/repos","events_url":"https://api.github.com/users/blegat/events{/privacy}","received_events_url":"https://api.github.com/users/blegat/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-12-16T11:55:06Z","updated_at":"2016-12-16T15:22:44Z","closed_at":null,"body":"We have created a package [MultivariatePolynomials](https://github.com/blegat/MultivariatePolynomials.jl) for efficient operations with multivariate polynomials.\r\nIt seems to be rather complementary to Nemo since it is designed for handling coefficients of any type (no assumption at all is made on the coefficient type) while Nemo is designed for very efficient implementation of specific types.\r\nYour type `GenPoly` seems very similar to our type `VecPolynomial`.\r\nIt would be very beneficial if there was a sort of compatibility between Nemo and MultivariatePolynomials.\r\n\r\nFor instance, if Nemo was split in 2 packages: one defining all the abstract types and one defining the efficient implementations with all the library dependencies then MultivariatePolynomials could use these abstract types and share the `GenPoly` type without needing to add all the library dependencies.\r\n\r\nOne issue though is that you define `GenPoly{T <: RingElem}` where MultivariatePolynomials lets `T` be anything... One way to fix this is to add the `RingElem` type in Julia Base and use it as a parent for all types of the ecosystem that fits ^^"},"comment":{"url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/comments/267617388","html_url":"https://github.com/wbhart/Nemo.jl/issues/69#issuecomment-267617388","issue_url":"https://api.github.com/repos/wbhart/Nemo.jl/issues/69","id":267617388,"user":{"login":"blegat","id":1048205,"avatar_url":"https://avatars.githubusercontent.com/u/1048205?v=3","gravatar_id":"","url":"https://api.github.com/users/blegat","html_url":"https://github.com/blegat","followers_url":"https://api.github.com/users/blegat/followers","following_url":"https://api.github.com/users/blegat/following{/other_user}","gists_url":"https://api.github.com/users/blegat/gists{/gist_id}","starred_url":"https://api.github.com/users/blegat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blegat/subscriptions","organizations_url":"https://api.github.com/users/blegat/orgs","repos_url":"https://api.github.com/users/blegat/repos","events_url":"https://api.github.com/users/blegat/events{/privacy}","received_events_url":"https://api.github.com/users/blegat/received_events","type":"User","site_admin":false},"created_at":"2016-12-16T15:22:44Z","updated_at":"2016-12-16T15:22:44Z","body":"Thanks a lot for this complementary information, it helps to see what the long terms plans of Nemo.\r\nTo answer your question, the type of the parameters is currently not assumed to be commutative (for example, you could have `VecPolynomial{Matrix{Int}}`) even if I have not tested that so much. However, the variables are assumed to be commutative (`x*y*x = x^2*y`).\r\nThe purpose of `MultivariatePolynomials` is more to give a very userfriendly interface for creating polynomials by multiplying, adding, substracting, ... variables defined using the `@polyvar` macro. The type of the coefficients is automatically determined using promotion.\r\nThe goal would be that when the user wants to do something more involved (such as groebner basis computation), then MultivariatePolynomials would hands over to Nemo :-P\r\nFor this goal, it is good to see that Nemo also provide generic implementation for common operations (e.g. in [generic/MPoly.jl](https://github.com/wbhart/Nemo.jl/blob/mpoly/src/generic/MPoly.jl)).\r\n\r\nThe issue with commutativity that makes the algorithm so different is the commutativity of the coefficients (e.g. `Matrix{Int}`) or the commutativity of the variables ?"}}
{"actor":{"display_login":"blegat"}}