You may want to look at https://code.google.com/p/sympy/issues/detail?id=3560 and some of the ideas for a unified solve object. Already you have the issue that you are returning a parameter, but there is no easy way to access that parameter (and what happens if t is one of the variables?).
Aaron Meurer On Tue, Jun 18, 2013 at 1:39 PM, Thilina Rathnayake <[email protected]> wrote: > Hi everyone, > > Before continuing further with the Diophantine module development (PR #2168) > I thought it would be better for me to get other people's views on the > representation > of solutions returned by diop_solve(). > > The main routine of the module is diop_solve(), which takes a Diophantine > equation > as an argument and returns the solution of the equation. Currently the > solution is > returned as a dictionary. Ex: > >> >>>diop_solve(4*x + 6*y - 4) >> {x: 6*t - 2, y: -4*t + 2} >> >>>diop_solve(3*x - 5*y + 7*z -5) >> {x: -25*t - 14*z + 10, y: -15*t - 7*z + 5, z: z} > > > Everything works fine here because the solutions are parametric. > > But when I was trying to solve quadratic Diophantine equation ( this has the > form > Ax**2 + Bxy + Cy**2 + Dx + Ey + F), they involve solutions which are not > parametric. > For example, the equation 2*x*y + 5*x + 56*y + 7 = 0 (which is a special > case of the > quadratic equation) has 8 solution pairs (x, y). (-27, 64), (-29, -69), > (-21, 7) and five more. > > To represent these in a dictionary which has the above form, we have to > split the solution > pair and put it in to two lists which are keyed under x and y in the dict. > if the user want > to retrieve a solution pair he would have to find the x value and the y > value of the solution > separately. Returned value would look like, > >> {x: [-27, -29, -21, ...], y: [64, -69, 7, ...]} > > > Is this a good way to cope with this situation? I personally feel that it is > not natural to > split a solution pair and enable the access of it's elements separately. > > I would like to know what the others have to say on this. > > Regards, > Thilina > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
