Re: Rescale

*To*: mathgroup at smc.vnet.net*Subject*: [mg65451] Re: Rescale*From*: "Ray Koopman" <koopman at sfu.ca>*Date*: Sun, 2 Apr 2006 05:00:11 -0400 (EDT)*References*: <e0llug$79h$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Bill Rowe wrote: > On 3/31/06 at 6:09 AM, koopman at sfu.ca (Ray Koopman) wrote: > >> InputForm@{#,Rescale@#}&@Sort@Table[Random[],{3}] > >> {{0.1495146427525807, 0.9032356867418898, 0.9803938132050517}, >> {2.7755575615628914*^-17, 0.9071367664432557, 1.0000000000000002}} > >> What is Rescale doing, that it does not always give N@0 and N@1 for >> the first and last elements? > > I would *guess* it is doing exactly as advertised using floating > point arithmetic and what you are seeing for some inputs is due to > the usual vagaries of floating point arithmetic. {u = {0.1495146427525807, 0.9032356867418898, 0.9803938132050517}, v = Rescale@u, w = (u-First@u)/(Last@u-First@u), v-w} //InputForm {{0.1495146427525807, 0.9032356867418898, 0.9803938132050517}, {2.7755575615628914*^-17, 0.9071367664432557, 1.0000000000000002}, {0., 0.9071367664432558, 1.}, {2.7755575615628914*^-17, -1.1102230246251565*^-16, 2.220446049250313*^-16}} Rescale must be doing something extra, to make v and w differ.