Dear Sergey, the way numbers are managed depend on the particular solver used. In your email there's a generic reference to ECLiPSe and this isn't sufficient. The only clue you gave is the use of integer constraints. So I supposed you're talking about the "IC" solver. In this case you could read the documentation below: http://eclipseclp.org/doc/libman/libman017.html and http://eclipseclp.org/doc/libman/libman019.html In general, despite the particular solver you are referring to, I think that RTFM it's a good starting point. Have a nice reading, Matteo. ________________________________ Da: Sergey Dymchenko <kit1980@gmail.com> A: Matteo Bellotto <matteob8@yahoo.it> Cc: "eclipse-clp-users@lists.sf.net" <eclipse-clp-users@lists.sf.net> Inviato: Martedě 13 Marzo 2012 14:03 Oggetto: Re: [eclipse-clp-users] Large integers and delayed goals Hi Matteo, My question was more about how ECLiPSe works with large integers, not about this particular problem. And it's clear that if we constrain our variables to be at most 100 we will not get rounding errors. Sergey. On Tue, Mar 13, 2012 at 2:31 PM, Matteo Bellotto <matteob8@yahoo.it> wrote: > Hi Sergey, > using your code I obtained the same, wrong, result. > I've sligtly modified your code, defining explicitly the domain of the > variables, and this update has improved the search, i.e. I didn't get any > "wrong answer". > Here there the modified code: > > :-lib(ic). > test(Result):- > Result=[A,B,C,D], > Result:: 1..100, > > A #> 0, B #> 0, C #> 0, D #> 0, > A #=< B, B #=< C, C #=< D, > A*A*A*A + B*B*B*B + C*C*C*C #= D*D*D*D, > labeling([A, B, C, D]). > > ?- test(R). > No (22.43s cpu) > > Please note that, increasing the domains bounds, the search will take a > (really) longer time. > > Bye, > Matteo. > > Da: Sergey Dymchenko <kit1980@gmail.com> > A: eclipse-clp-users@lists.sourceforge.net > Inviato: Venerdě 9 Marzo 2012 18:24 > Oggetto: [eclipse-clp-users] Large integers and delayed goals > > Hi, > > I want to find positive natural numbers A, B, C, D, such that A^4 + > B^4 + C^4 = D^4. > My program do this: > > A #> 0, B #> 0, C #> 0, D #> 0, > A #=< B, B #=< C, C #=< D, > A*A*A*A + B*B*B*B + C*C*C*C #= D*D*D*D, > labeling([A, B, C, D]) > > But I get incorrect result [1, 1, 9742, 9742] with 10 delayed goals. > As far as I understand, the system finds that the result is imprecise, > but correct enough because 9742^4 is a large number. > Probably floating arithmetic is used, not big integers... > Is there a way to force precise arithmetic for large integers? > > Sergey. > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > ECLiPSe-CLP-Users mailing list > ECLiPSe-CLP-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users > > > > ------------------------------------------------------------------------------ > Keep Your Developer Skills Current with LearnDevNow! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-d2d > _______________________________________________ > ECLiPSe-CLP-Users mailing list > ECLiPSe-CLP-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users >Received on Wed Mar 14 2012 - 07:45:40 CET
This archive was generated by hypermail 2.2.0 : Thu Mar 15 2012 - 06:15:49 CET