From: Joao C. <jc...@fe...> - 2003-03-01 03:34:16
|
On Friday 28 February 2003 21:12, Maurice LeBrun wrote: > Jo=E3o Cardoso writes: > > On Friday 28 February 2003 19:51, Alan W. Irwin wrote: > > | On Thu, 27 Feb 2003, Maurice LeBrun wrote: > > | > These are fine with me personally, yes even with_double. Althou= gh > > | > in that case you may trip up some people who are used to the old > > | > behavior. > > | > > | OK. I left with-double=3Dno. > > > > I don't think that Maurice really meant to keep with-double=3Dno. Af= ter > > all, when we change the API the consequences are much worse, and tha= t > > don't inhibits us from doing it. > > And we have the configure summary, that clearly states the float/dou= ble > > status. > > Also, with the new nn/csa/qhull libraries, the better is to use doub= le > > by default. > > So, I vote for with-double=3Dyes. > > I didn't actually say I objected; what I wrote was: > > These are fine with me personally, yes even with_double. Although in > > that case you may trip up some people who are used to the old behavio= r. > > So the latter is just a warning that this is yet another change that ma= y > cause some transition problems for some people. Change is always ok if > there is a large enough benefit.. is that the case here? It's easy eno= ugh > to specify --with-double[=3Dyes]. Are there other benefits to be gaine= d, > other than working with the nn/csa/qhull libraries? No. But lets see the other point of view. If users don't specify double, they= will=20 loose the best 50% of plgriddata(). And I belive that the majority of use= rs=20 use doubles, and so the default should be for them. But this is just a default. We could warn users against using the default= !?!. To sumarise the facts: 1-plgriddata() has 3 native methods that will use either float or doubles= =2E 2-The 3 other csa/nn/qhul methods are clearly best in most circumstances = but=20 require doubles. 3-csa is a single file that depends on nothing and that we can "sed" to s= uit=20 our taste (this is an just an hypothesis). 4-nn/qhull are responsible for the best 2 methods. Qhull must exist in the user system for nn to work. Qhull is not generally available in most systems. Qhull can be compiled for floats, but it not recommended. It is not practical to change nn to accept floats. 5-Making plgriddata() convert its data from float to doubles is against w= hat=20 the user specified at configure time. 6-Most people who uses floats are likely to be using fortran with legacy = code.=20 plgriddata() is not for them. Given all point 4 above limitations regarding Qhull, most users will not = use=20 the plgriddata() related capabilities (but they will feel curious, I hope= =2E=20 Lets watch the Qhull download statistics when we announce plplot) Currently users are warned: plabort("plgriddata(): you must have Qhull to use GRID_NNI."); I can also add plabort("plgriddata(): you must use doubles to use GRID_NNI."); If the user wants to use those techniques he will ponder and rebuild plpl= ot. So, making float the default is not that bad. With a proper Announcement,= =20 users will be warned from the very beginning and will configure according= ly.=20 (But with a proper Announcement we could also say that doubles are now th= e=20 default.) Given all the above, I still think that doubles should be the default. Pity we are not MS. We could make "configure" to send us the configure su= mmary=20 so we would collect statistics ;-) > > Either way it won't affect me, as I always install both float & double > versions. > > > Maurice, some time ago you argued that we should not drop float supp= ort. > > Could you please "argue" again? Sourceforge mailing lists don't have= a > > search facility, what makes difficult to find something we know is > > there. > > If your code uses large floating point arrays and you're developing on = a > personal machine the 50% memory reduction gained (and some cpu time gai= ned) > by using (float *) rather than (double *) can be very significant. Yes, 50% is a lot, specially in my salary :) Joao |