Prim Drift Good Bad news
|
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
|
10-25-2006 14:42
I know this issue has been around for a while but have not seen any good data on it. Just people complaining about it with no real good info. Well here is the good info.
A sim restart/ crash causes prim drift. I set up a few script to monitor this for the past couple days one that tells me when a sim comes back online and how long it was off line for and many other that just compair a prims position every min and when it changes it emails me. Wouldn't you know I have not gotten an email sent by them until the sim came back online. And this is what I got back today.
BEGIN TRANSMISSION ======================================= Object-Name: Server Down TIme Region: Aglia (258304, 261120) Local-Position: (88, 46, 300)
Down time 2006-10-25T18:18:31.512699Z - 13848 ======================================= Object-Name: Brick House Region: Aglia (258304, 261120) Local-Position: (48, 72, 44)
Drift=, -0.000023, 0.000000, 0.000011, Position=, 48.000496, 72.002495, 44.500134 ======================================= Object-Name: The Gadget Shop at Aglia Valley Store, edges Region: Aglia (258304, 261120) Local-Position: (78, 47, 45)
Drift=, -0.000023, 0.000008, 0.000042, Position=, 78.000839, 47.250587, 45.000248 ======================================= Object-Name: The Gadget Shop at Aglia Valley Store, walls Region: Aglia (258304, 261120) Local-Position: (77, 47, 44)
Drift=, 0.000046, 0.000015, 0.000000, Position=, 77.993233, 47.250187, 44.979393 ======================================= END OF LINE
the important stuff here is the Drift amount the worse being 0.000046. which is something you can't see in the edit fields but after several sim crashes, updates, rollovers this will start to add up. I am at a loss here. Is it really that hard to back data up? could you imagin if a Bank had this problem maybe they do? Is it that hard to store a number like 0.000001 then restore it back? I was expecting a little drift but 0.000046? and I wonder if this coensides with the whole llSetRot causeing prims drift as well, granted it is not as much but with many SetRot it is bad. Very Bad. like meters a days. So this mean everythime you set a Prims rotation it is also resending the Position as well. That seem messed up.
I will keep on this, and not let up on the issue. It will be fixed! Now that we know where the problem lies. This would explain why wall in the Morris Sandbox are so badly missaligned. I bet those sims in the welcome area crash alot. This is all going into one long lengthy Bug report.
|
Seifert Surface
Mathematician
Join date: 14 Jun 2005
Posts: 912
|
10-25-2006 14:56
Good sleuthing Gear  Can you get it to do the same with rotation and scale data? And maybe on child prims within a linkset as well as entire objects? I've had rotations drift but never scales...but it would be good to get some quantitative data.
_____________________
-Seifert Surface 2G!tGLf 2nLt9cG
|
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
|
10-25-2006 15:35
I'll get on it. oh what fun. I have never seen an objects scale or ratation drift but I could monitor that as well. Then there is the question do Attachments drift as well? Tails, wings, ear or what ever might rotate. Or do single prim object drift or only linksets. But can't monitor attachments since the root position is the AV positions.
I thank Lex Neva, for the theory which gave me somewhere to start.
|
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
|
10-26-2006 11:52
Oh jeez, that's exactly what I feared. My guess: the float data in the simstate is written as a base-ten decimal number, probably something like this: fprintf(simstatefile, "%f,%f,%f", pos.x, pos.y, pos.z);
rather than writing the actual bytes for the float to the file. The reason one would do this is if there was no assurance that the floating point number would be read from the file on the same machine/architecture as it was written. Say... if there were multiple types of hardware in the cluster, I'll call them "hardware classes"... sound familiar?  The most annoying part is that the printf %a specifier is built exactly for this process: precisely passing floating point numbers between two programs. It writes the textual representation of the floating point number in scientific notation, with hexadecimal digits before and after the decimal point, and with an exponent base 2 at the end. Very similar to how floating point numbers are stored internally. I would hope that LL would use this, if they're not just writing the floats flat out as bytes, but if they were, there'd be no drift. Now I'm considering going and checking on all of my beautifully aligned prims to see if they've drifted. Anything aligned to an even integer should never drift, if my theory is correct. However, that may not take into account that grid-snapping may not be as exact as we'd like it to be, something I've begun to suspect lately as I occasionally set the grid units to 0.1, press shift-X on a bunch of prims, and see their positions vary by as much as 0.004 from the nearest increment of 0.1. Once we gather enough information on this, we need to file a bug-report, and we also need to sit down with a dev.
|
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
|
10-26-2006 11:58
Something interesting: your scripts are storing floating point numbers as well. The script's memory buffer is being serialized, somehow. The only difference here is that they are being stored flat out as bytes in simstate file, or at least one would assume so. Probably the script-state format has its endianness specified, and it's converted to the machine's local endianness on load. If floating point storage formats differ in any way other than endianness, that conversion is probably taken care of on load, too, but that's unlikely as floating point formats don't differ nearly as much as they used to.
That said, I think we can trust that if you're seeing different values for position, your test should be accurate.
What is important to note, though, is that simply storing your object's position and rotation in the description as I've been doing may not be good enough. That's still a conversion to base-10, and it's lossy. It's more than enough to give you the three decimal points of precision that we're nominally allowed to enter in the edit window, but we've seen that llGetPos() returns far more precision than that, so maybe that's not good enough. One solution would be to drop a script into every prim, which would get the position and rotation and store them internally in a global variable. Then have the script turn itself off using llSetScriptState (so as not to needlessly bog down the sim with another active script), and if you want to reposition the prims back where they "belong", use "set all scripts to running in selection" and then issue some kind of command.
|
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
|
10-28-2006 12:49
So far this is what I have found.
With a standard freshly rezzed box place at any position, unlinked, and any orientation, will not drift after a sim Reset.
Now adding a shear to a box can cause drift after a reset. The thing to notice here is with a sheared box the Center of Mass and Geometric center is not the Same.
Linking two boxes that are both placed at non float positon so that the gemometric center is at a non float postion also will not drift.
Also child objects will not drift relative to the the parent. Other words the whole linked set drifts as a whole.
It is as if the server is not storing the root postion of a linked set but maybe storing the Center of Mass or Geometric Center then rezzing group again on system start up. So there is some rounding error when calculation these. Why are they no just storing the actually object position? This may also explain why an object that is sheared also drifts since its Geometic Center and Center of Mass are not the same as the object position. It this a limit of the Havok engine?
Other things I did not find was, any size or rotation drift from the simulator resets. So there is no problem storing the float data then restoring it back. The Problems seems to lie on how they are getting the object position or more like calculating the objects postion. wether it be a stand alone object or the root. becasue a child does not drift from the parent.
Even with child and parent positions starting out at non float postisions and having a shear to parent and/or child will also have a chance at drifting depending on the objects shear.
Drifting is not a 100% percent garantee but can be >50% when using linked objects or object that do not have teh same Center of Mass as Geometric Center. When an object does drift it does drift by the same amount each time on every sim reset.
In conclusion I'm lost as to what is going on when the sim state is being saved.
|
Seifert Surface
Mathematician
Join date: 14 Jun 2005
Posts: 912
|
10-28-2006 14:19
I think I can confirm these... I had thought that child prims were moving, but I just checked my stuff and they don't seem to have shifted  I guess this means that Starax's sculptures are safe. Ok, so it sounds like its a root/geometric center error, can we get a Linden look at this? There are other weird drift issues, but the crash and restart one sounds like it shouldn't be too hard to track down...
_____________________
-Seifert Surface 2G!tGLf 2nLt9cG
|
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
|
10-29-2006 20:52
even after more testing. I have found prims drift is not always the same. Espically for larger builds. resert1: Object1  os=, 0.000000, -0.000015, 0.000004 Object2  os=, 0.000000, 0.000031, -0.000013 Object3  os=, 0.000000, -0.000015, 0.000004 Object4  os=, 0.000000, -0.000015, 0.000004 reset2; Object1: Pos=, 0.000000, -0.000015, 0.000004 Object2: Pos=, 0.000000, -0.000015, -0.000013 Object3: Pos=, 0.000000, 0.000000, 0.000010 Object4: Pos=, -0.000031, -0.000015, 0.000002 resert3: Object1: Pos=, 0.000000, -0.000015, 0.000004 Object2: Pos=, 0.000000, -0.000015, 0.000004 Object3: Pos=, 0.000000, -0.000015, 0.000004 Object4: Pos=, 0.000000, -0.000015, 0.000010 reset4: Object1: Pos=, 0.000000, -0.000015, 0.000004 Object2: Pos=, 0.000000, 0.000031, -0.000013 Object3: Pos=, 0.000000, -0.000015, 0.000004 Object4: Pos=, 0.000000, -0.000015, 0.000004 so there goes the patterns i saw at first. and my largest drift after one reset to date was 0.000082 then it calmed down to 0.000076 per reset. Still after 14 resets you will see a 1mm drift. but these last few tests have got me scratching my head. This might have something to do with the llSetRot problem and how objects drift with that. Are there any Lindens out there that would like to shed some light on this. Have you looked at your builds recently LL? they are strating to look sloppy.
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
10-30-2006 06:46
Lex you are mirroring the conversation that Gearsawe and I had the other night in Beta. I had come to the same conclusion that the server restart and the rocking motion drift are the same creature and it is a problem of "translation". Didn't know enough about the backend code. But had made an observation that there is no way a linkset is stored in a form that we would recognise. I came up with an example of linkset "anyname" being stored in a binary form ;1010101010001001111. As for your suggestions on the scripts. Positions are stored in object description with 6 decimal place precision. This I had already done yesterday morning after 3 days of refining my rocking scripts.
default { touch_start(integer num_detected) { llSetText("Off", <0,0,0>,1); llSetScriptState("smooth rot loop", FALSE); llSetScriptState("check pos", FALSE); state on; } } state on{ touch_start(integer num_detected) { llSetText("Resetting", <0,0,0>,1); llMessageLinked(2, 0, "", NULL_KEY); vector pos = (vector)llGetObjectDesc(); llSetPos(pos); llSetRot(ZERO_ROTATION); llSleep(5.0); llSetText("", <0,0,0>, 0); llSetScriptState("smooth rot loop", TRUE); llSetScriptState("check pos", TRUE); state default; } }
default { link_message(integer sender_num, integer num, string str, key id){ vector pos = (vector)llGetObjectDesc(); llSetPos(pos); llSetRot(ZERO_ROTATION); } }
Doing it this way resulted in zero drift in 95% of the cases where I had had drift before using the same variables. But in two cases after tweaking and playing around I was able to get some repeatable drift again. In those two case, no amount of adjusting would get rid of the drift. Finally came to the conclusion that the server file on those two linksets had somehow become corrupted. Creating a duplicate with the exact same info and scripts resulted in no drift. But I do know that it has been incredibly frustrating working on this problem. I have spent 40+ hours banging my head against the drift problem and Gearsawe has put in as much or more time. As far as I can see there is no more usable data that we can glean without some Linden feedback on just how the data is translated and stored in the servers.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
10-30-2006 13:35
Okay it looks like there is a float conversion error somewhere. I created a simple 1/2 meter square box and put the following script inside: float posx; float increment = 1.0; //1.0 to 1.9
default { touch_start(integer num_detected) { state incr; } }
state incr{ state_entry() { vector pos = llGetPos(); if (pos.x <= 255 ){ posx = pos.x + increment; if (pos.x >= 127 && pos.x <= 128){ llOwnerSay((string)llGetPos()); } } else{ llOwnerSay((string)llGetPos()); state default; } vector newpos = <posx, pos.y, pos.z>; llSetPos(newpos); state loop; } } state loop{ state_entry(){ state incr; } }
In a nice empty sim and a start position of 0,40,28. At first I was riding the box and having it call out the numbers every increment. The numbers were showing a negative drift as the box moved towards 127 and then started rising again. After that I just stood on the ground and took readings at 127 meters and at the end with these results; 1.0 128.00000, 256.00000 1.1 127.59988, 255.20058 1.2 127.19987, 255.59955 1.3 127.40012, 256.10040 1.4 127.40009, 256.19955 1.5 127.50000, 256.50000 1.6 127.99992, 256.00040 1.7 127.49991, 256.69968 1.8 127.80009, 256.60030 1.9 127.30007, 256.49966 The results are repeatable every time to 5 decimal points. If my head didn't hurt right now I could probably even figure out what thier conversion factor is with these results. Should point out again that these readings are from a prim that is not linked to any other object or avatar.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
|
10-31-2006 09:42
Wow, that's pretty telling. For comparison, I think you should use a global variable, and have it start off with the x position value, and increment it in parallel with the actual position, just to see whether it's the floating point implementation itself that's to blame. Theoretically, since you're dealing with small integers, floating point variables should be able to represent them exactly. If that ends up being the case for the global, then something really fishy is going on inside SL.
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
10-31-2006 11:55
OK now, this is seriously screwed up. Instead of going along the x axis I am now going traveling along the z axis from 100 meters to 600 meters for a total of 500 meters. Wish I could show the output from giving the numbers every step. It forms a lopsided sine curve with the drift going down first and then rising. But even the final numbers are telling. I went ahead and put in a reference control number that is not tied into position and got what I expected. The results were exactly the same IF I started with a reference of 100. BUT if the reference was changed to other number the results were seriously skewed. It seems SL does not know how to perform grade school level math. g_reference = 100: [11:33] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 600.500122 steps * increment = 600.500000 difference = 0.000122 g_reference = 200: [11:44] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 700.497559 (This (- 100) should have been exactly the same!!!!!!!!!!!!!!) steps * increment = 600.500000 difference = 0.000122 g_reference = 0: [11:53] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 500.501923 steps * increment = 600.500000 difference = 0.000122 Again, just like last time, the results are repeatable down to 6 decimal places. Just in case it was a matter of the server not being able to keep up (which shouldn't be, given repeatable results) I tried it with a llSleep(1.0) one time and just waited. The outcome was the same. Here is the script if anyone wants to try it but a warning, it is laggy, running at over .3 ms. If you try it you should really try having it llSetText the numbers every step and watch them. float posz; float increment; //1.0 to 1.9 integer steps = 0; float g_reference = 100;
default { touch_start(integer num_detected) { llSetPos(<100.000000, 100.000000, 100.000000>); increment = (float)llGetObjectDesc(); state incr; } }
state incr{ state_entry() { vector pos = llGetPos(); steps = steps + 1; if (pos.z <= 600 ){ posz = pos.z + increment; g_reference = g_reference + increment; } else{ vector pos_end = llGetPos(); float answer = ((steps - 1) * increment) + 100; llOwnerSay("increment = " + (string)increment + "\n" + "steps = " + (string)steps + "\n" + (string)llGetPos() + "\n" + "Z = " + (string)pos_end.z + "\n" + "reference = " + (string)g_reference + "\n" + "steps * increment " + (string)answer + "\n" + "difference = " + (string)(pos_end.z - answer)); llResetScript(); } vector newpos = <pos.x, pos.y, posz>; llSetPos(newpos); state loop; } } state loop{ state_entry(){ state incr; } }
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:19
I've changed the setup one more time to get some more data. This time the script is setup up with a starting g_reference value and reference_increment is added to it each time. The output from this is sent to me using LLOwnerSay every 10 entries. I am going to be sending a message to Andrew Linden and Milo Linden to look at this thread and please comment as to what is going on. I feel strongly that what we can see in these results are the cause of prim drift. There is no reason that these numbers should come up any different from the results of using 1.0 or 0.5 but they are. And this is in it's mildest form. It is fairly easy to set up a link set that will drift from .00013 to .00046 after every sim restart. "Rocking" a linkset or in this case, moving the position just force the server to update without the need for a restart. Here is the script first and then I'll give the results: float posz; float increment; //1.0 to 1.9 integer steps = 0; float g_reference = 100; float reference_increment = .5; //list posz_list; list reference;
default { touch_start(integer num_detected) { llSetPos(<100.000000, 100.000000, 100.000000>); increment = (float)llGetObjectDesc(); state incr; } }
state incr{ state_entry() { vector pos = llGetPos(); steps = steps + 1; if (pos.z <= 600 ){ posz = pos.z + increment; g_reference = g_reference + reference_increment; reference += g_reference; //posz_list += pos.z; if (llGetListLength(reference) == 10){ llOwnerSay(llList2CSV(reference)); reference = []; } } else{ vector pos_end = llGetPos(); float answer = ((steps - 1) * increment) + 100; llOwnerSay("increment = " + (string)increment + "\n" + "steps = " + (string) steps + "\n" + (string)llGetPos() + "\n" + "Z = " + (string)pos_end.z + "\n" + "reference = " + (string)g_reference + "\n" + "steps * increment " + (string)answer + "\n" + "difference = " + (string)(pos_end.z - answer)); llResetScript(); } vector newpos = <pos.x, pos.y, posz>; llSetPos(newpos); state loop; } } state loop{ state_entry(){ state incr; } }
[8:02] Object: 100.500000, 101.000000, 101.500000, 102.000000, 102.500000, 103.000000, 103.500000, 104.000000, 104.500000, 105.000000 [8:02] Object: 105.500000, 106.000000, 106.500000, 107.000000, 107.500000, 108.000000, 108.500000, 109.000000, 109.500000, 110.000000 [8:02] Object: 110.500000, 111.000000, 111.500000, 112.000000, 112.500000, 113.000000, 113.500000, 114.000000, 114.500000, 115.000000 [8:02] Object: 115.500000, 116.000000, 116.500000, 117.000000, 117.500000, 118.000000, 118.500000, 119.000000, 119.500000, 120.000000 [8:02] Object: 120.500000, 121.000000, 121.500000, 122.000000, 122.500000, 123.000000, 123.500000, 124.000000, 124.500000, 125.000000 [8:02] Object: 125.500000, 126.000000, 126.500000, 127.000000, 127.500000, 128.000000, 128.500000, 129.000000, 129.500000, 130.000000 [8:02] Object: 130.500000, 131.000000, 131.500000, 132.000000, 132.500000, 133.000000, 133.500000, 134.000000, 134.500000, 135.000000 [8:02] Object: 135.500000, 136.000000, 136.500000, 137.000000, 137.500000, 138.000000, 138.500000, 139.000000, 139.500000, 140.000000 [8:02] Object: 140.500000, 141.000000, 141.500000, 142.000000, 142.500000, 143.000000, 143.500000, 144.000000, 144.500000, 145.000000 [8:02] Object: 145.500000, 146.000000, 146.500000, 147.000000, 147.500000, 148.000000, 148.500000, 149.000000, 149.500000, 150.000000 [8:02] Object: 150.500000, 151.000000, 151.500000, 152.000000, 152.500000, 153.000000, 153.500000, 154.000000, 154.500000, 155.000000 [8:02] Object: 155.500000, 156.000000, 156.500000, 157.000000, 157.500000, 158.000000, 158.500000, 159.000000, 159.500000, 160.000000 [8:02] Object: 160.500000, 161.000000, 161.500000, 162.000000, 162.500000, 163.000000, 163.500000, 164.000000, 164.500000, 165.000000 [8:02] Object: 165.500000, 166.000000, 166.500000, 167.000000, 167.500000, 168.000000, 168.500000, 169.000000, 169.500000, 170.000000 [8:02] Object: 170.500000, 171.000000, 171.500000, 172.000000, 172.500000, 173.000000, 173.500000, 174.000000, 174.500000, 175.000000 [8:02] Object: 175.500000, 176.000000, 176.500000, 177.000000, 177.500000, 178.000000, 178.500000, 179.000000, 179.500000, 180.000000 [8:03] Object: 180.500000, 181.000000, 181.500000, 182.000000, 182.500000, 183.000000, 183.500000, 184.000000, 184.500000, 185.000000 [8:03] Object: 185.500000, 186.000000, 186.500000, 187.000000, 187.500000, 188.000000, 188.500000, 189.000000, 189.500000, 190.000000 [8:03] Object: 190.500000, 191.000000, 191.500000, 192.000000, 192.500000, 193.000000, 193.500000, 194.000000, 194.500000, 195.000000 [8:03] Object: 195.500000, 196.000000, 196.500000, 197.000000, 197.500000, 198.000000, 198.500000, 199.000000, 199.500000, 200.000000 [8:03] Object: 200.500000, 201.000000, 201.500000, 202.000000, 202.500000, 203.000000, 203.500000, 204.000000, 204.500000, 205.000000 [8:03] Object: 205.500000, 206.000000, 206.500000, 207.000000, 207.500000, 208.000000, 208.500000, 209.000000, 209.500000, 210.000000 [8:03] Object: 210.500000, 211.000000, 211.500000, 212.000000, 212.500000, 213.000000, 213.500000, 214.000000, 214.500000, 215.000000 [8:03] Object: 215.500000, 216.000000, 216.500000, 217.000000, 217.500000, 218.000000, 218.500000, 219.000000, 219.500000, 220.000000 [8:03] Object: 220.500000, 221.000000, 221.500000, 222.000000, 222.500000, 223.000000, 223.500000, 224.000000, 224.500000, 225.000000 [8:03] Object: 225.500000, 226.000000, 226.500000, 227.000000, 227.500000, 228.000000, 228.500000, 229.000000, 229.500000, 230.000000 [8:03] Object: 230.500000, 231.000000, 231.500000, 232.000000, 232.500000, 233.000000, 233.500000, 234.000000, 234.500000, 235.000000 [8:03] Object: 235.500000, 236.000000, 236.500000, 237.000000, 237.500000, 238.000000, 238.500000, 239.000000, 239.500000, 240.000000 [8:03] Object: 240.500000, 241.000000, 241.500000, 242.000000, 242.500000, 243.000000, 243.500000, 244.000000, 244.500000, 245.000000 [8:03] Object: 245.500000, 246.000000, 246.500000, 247.000000, 247.500000, 248.000000, 248.500000, 249.000000, 249.500000, 250.000000 [8:03] Object: 250.500000, 251.000000, 251.500000, 252.000000, 252.500000, 253.000000, 253.500000, 254.000000, 254.500000, 255.000000 [8:03] Object: 255.500000, 256.000000, 256.500000, 257.000000, 257.500000, 258.000000, 258.500000, 259.000000, 259.500000, 260.000000 [8:03] Object: 260.500000, 261.000000, 261.500000, 262.000000, 262.500000, 263.000000, 263.500000, 264.000000, 264.500000, 265.000000 [8:03] Object: 265.500000, 266.000000, 266.500000, 267.000000, 267.500000, 268.000000, 268.500000, 269.000000, 269.500000, 270.000000 [8:03] Object: 270.500000, 271.000000, 271.500000, 272.000000, 272.500000, 273.000000, 273.500000, 274.000000, 274.500000, 275.000000 [8:03] Object: 275.500000, 276.000000, 276.500000, 277.000000, 277.500000, 278.000000, 278.500000, 279.000000, 279.500000, 280.000000 [8:03] Object: 280.500000, 281.000000, 281.500000, 282.000000, 282.500000, 283.000000, 283.500000, 284.000000, 284.500000, 285.000000 [8:03] Object: 285.500000, 286.000000, 286.500000, 287.000000, 287.500000, 288.000000, 288.500000, 289.000000, 289.500000, 290.000000 [8:03] Object: 290.500000, 291.000000, 291.500000, 292.000000, 292.500000, 293.000000, 293.500000, 294.000000, 294.500000, 295.000000 [8:03] Object: 295.500000, 296.000000, 296.500000, 297.000000, 297.500000, 298.000000, 298.500000, 299.000000, 299.500000, 300.000000 [8:03] Object: 300.500000, 301.000000, 301.500000, 302.000000, 302.500000, 303.000000, 303.500000, 304.000000, 304.500000, 305.000000 [8:03] Object: 305.500000, 306.000000, 306.500000, 307.000000, 307.500000, 308.000000, 308.500000, 309.000000, 309.500000, 310.000000 [8:03] Object: 310.500000, 311.000000, 311.500000, 312.000000, 312.500000, 313.000000, 313.500000, 314.000000, 314.500000, 315.000000 [8:04] Object: 315.500000, 316.000000, 316.500000, 317.000000, 317.500000, 318.000000, 318.500000, 319.000000, 319.500000, 320.000000 [8:04] Object: 320.500000, 321.000000, 321.500000, 322.000000, 322.500000, 323.000000, 323.500000, 324.000000, 324.500000, 325.000000 [8:04] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 327.500000 steps * increment 600.500000 difference = 0.00012
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:22
Exact same setup but using reference_increment = .1: [8:20] Object: 100.099998, 100.199997, 100.299995, 100.399994, 100.499992, 100.599991, 100.699989, 100.799988, 100.899986, 100.999985 [8:20] Object: 101.099983, 101.199982, 101.299980, 101.399979, 101.499977, 101.599976, 101.699974, 101.799973, 101.899971, 101.999969 [8:20] Object: 102.099968, 102.199966, 102.299965, 102.399963, 102.499962, 102.599960, 102.699959, 102.799957, 102.899956, 102.999954 [8:20] Object: 103.099953, 103.199951, 103.299950, 103.399948, 103.499947, 103.599945, 103.699944, 103.799942, 103.899940, 103.999939 [8:20] Object: 104.099937, 104.199936, 104.299934, 104.399933, 104.499931, 104.599930, 104.699928, 104.799927, 104.899925, 104.999924 [8:20] Object: 105.099922, 105.199921, 105.299919, 105.399918, 105.499916, 105.599915, 105.699913, 105.799911, 105.899910, 105.999908 [8:20] Object: 106.099907, 106.199905, 106.299904, 106.399902, 106.499901, 106.599899, 106.699898, 106.799896, 106.899895, 106.999893 [8:20] Object: 107.099892, 107.199890, 107.299889, 107.399887, 107.499886, 107.599884, 107.699883, 107.799881, 107.899879, 107.999878 [8:20] Object: 108.099876, 108.199875, 108.299873, 108.399872, 108.499870, 108.599869, 108.699867, 108.799866, 108.899864, 108.999863 [8:20] Object: 109.099861, 109.199860, 109.299858, 109.399857, 109.499855, 109.599854, 109.699852, 109.799850, 109.899849, 109.999847 [8:20] Object: 110.099846, 110.199844, 110.299843, 110.399841, 110.499840, 110.599838, 110.699837, 110.799835, 110.899834, 110.999832 [8:20] Object: 111.099831, 111.199829, 111.299828, 111.399826, 111.499825, 111.599823, 111.699821, 111.799820, 111.899818, 111.999817 [8:20] Object: 112.099815, 112.199814, 112.299812, 112.399811, 112.499809, 112.599808, 112.699806, 112.799805, 112.899803, 112.999802 [8:20] Object: 113.099800, 113.199799, 113.299797, 113.399796, 113.499794, 113.599792, 113.699791, 113.799789, 113.899788, 113.999786 [8:20] Object: 114.099785, 114.199783, 114.299782, 114.399780, 114.499779, 114.599777, 114.699776, 114.799774, 114.899773, 114.999771 [8:20] Object: 115.099770, 115.199768, 115.299767, 115.399765, 115.499763, 115.599762, 115.699760, 115.799759, 115.899757, 115.999756 [8:20] Object: 116.099754, 116.199753, 116.299751, 116.399750, 116.499748, 116.599747, 116.699745, 116.799744, 116.899742, 116.999741 [8:20] Object: 117.099739, 117.199738, 117.299736, 117.399734, 117.499733, 117.599731, 117.699730, 117.799728, 117.899727, 117.999725 [8:20] Object: 118.099724, 118.199722, 118.299721, 118.399719, 118.499718, 118.599716, 118.699715, 118.799713, 118.899712, 118.999710 [8:20] Object: 119.099709, 119.199707, 119.299706, 119.399704, 119.499702, 119.599701, 119.699699, 119.799698, 119.899696, 119.999695 [8:20] Object: 120.099693, 120.199692, 120.299690, 120.399689, 120.499687, 120.599686, 120.699684, 120.799683, 120.899681, 120.999680 [8:20] Object: 121.099678, 121.199677, 121.299675, 121.399673, 121.499672, 121.599670, 121.699669, 121.799667, 121.899666, 121.999664 [8:20] Object: 122.099663, 122.199661, 122.299660, 122.399658, 122.499657, 122.599655, 122.699654, 122.799652, 122.899651, 122.999649 [8:20] Object: 123.099648, 123.199646, 123.299644, 123.399643, 123.499641, 123.599640, 123.699638, 123.799637, 123.899635, 123.999634 [8:21] Object: 124.099632, 124.199631, 124.299629, 124.399628, 124.499626, 124.599625, 124.699623, 124.799622, 124.899620, 124.999619 [8:21] Object: 125.099617, 125.199615, 125.299614, 125.399612, 125.499611, 125.599609, 125.699608, 125.799606, 125.899605, 125.999603 [8:21] Object: 126.099602, 126.199600, 126.299599, 126.399597, 126.499596, 126.599594, 126.699593, 126.799591, 126.899590, 126.999588 [8:21] Object: 127.099586, 127.199585, 127.299583, 127.399582, 127.499580, 127.599579, 127.699577, 127.799576, 127.899574, 127.999573 [8:21] Object: 128.099579, 128.199585, 128.299591, 128.399597, 128.499603, 128.599609, 128.699615, 128.799622, 128.899628, 128.999634 [8:21] Object: 129.099640, 129.199646, 129.299652, 129.399658, 129.499664, 129.599670, 129.699677, 129.799683, 129.899689, 129.999695 [8:21] Object: 130.099701, 130.199707, 130.299713, 130.399719, 130.499725, 130.599731, 130.699738, 130.799744, 130.899750, 130.999756 [8:21] Object: 131.099762, 131.199768, 131.299774, 131.399780, 131.499786, 131.599792, 131.699799, 131.799805, 131.899811, 131.999817 [8:21] Object: 132.099823, 132.199829, 132.299835, 132.399841, 132.499847, 132.599854, 132.699860, 132.799866, 132.899872, 132.999878 [8:21] Object: 133.099884, 133.199890, 133.299896, 133.399902, 133.499908, 133.599915, 133.699921, 133.799927, 133.899933, 133.999939 [8:21] Object: 134.099945, 134.199951, 134.299957, 134.399963, 134.499969, 134.599976, 134.699982, 134.799988, 134.899994, 135.000000 [8:21] Object: 135.100006, 135.200012, 135.300018, 135.400024, 135.500031, 135.600037, 135.700043, 135.800049, 135.900055, 136.000061 [8:21] Object: 136.100067, 136.200073, 136.300079, 136.400085, 136.500092, 136.600098, 136.700104, 136.800110, 136.900116, 137.000122 [8:21] Object: 137.100128, 137.200134, 137.300140, 137.400146, 137.500153, 137.600159, 137.700165, 137.800171, 137.900177, 138.000183 [8:21] Object: 138.100189, 138.200195, 138.300201, 138.400208, 138.500214, 138.600220, 138.700226, 138.800232, 138.900238, 139.000244 [8:21] Object: 139.100250, 139.200256, 139.300262, 139.400269, 139.500275, 139.600281, 139.700287, 139.800293, 139.900299, 140.000305 [8:21] Object: 140.100311, 140.200317, 140.300323, 140.400330, 140.500336, 140.600342, 140.700348, 140.800354, 140.900360, 141.000366 [8:21] Object: 141.100372, 141.200378, 141.300385, 141.400391, 141.500397, 141.600403, 141.700409, 141.800415, 141.900421, 142.000427 [8:21] Object: 142.100433, 142.200439, 142.300446, 142.400452, 142.500458, 142.600464, 142.700470, 142.800476, 142.900482, 143.000488 [8:21] Object: 143.100494, 143.200500, 143.300507, 143.400513, 143.500519, 143.600525, 143.700531, 143.800537, 143.900543, 144.000549 [8:21] Object: 144.100555, 144.200562, 144.300568, 144.400574, 144.500580, 144.600586, 144.700592, 144.800598, 144.900604, 145.000610 [8:21] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 145.500641 steps * increment 600.500000 difference = 0.000122
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:25
Now using a starting g_reference = 0 & the same reference_increment = .1:
[8:23] Object: 0.100000, 0.200000, 0.300000, 0.400000, 0.500000, 0.600000, 0.700000, 0.800000, 0.900000, 1.000000 [8:23] Object: 1.100000, 1.200000, 1.300000, 1.400000, 1.500000, 1.600000, 1.700000, 1.800000, 1.900000, 2.000000 [8:23] Object: 2.100000, 2.200000, 2.300000, 2.400000, 2.500000, 2.600000, 2.700000, 2.799999, 2.899999, 2.999999 [8:23] Object: 3.099999, 3.199999, 3.299999, 3.399999, 3.499999, 3.599999, 3.699999, 3.799999, 3.899998, 3.999998 [8:23] Object: 4.099998, 4.199998, 4.299998, 4.399998, 4.499998, 4.599998, 4.699998, 4.799998, 4.899998, 4.999998 [8:23] Object: 5.099998, 5.199997, 5.299997, 5.399997, 5.499997, 5.599997, 5.699997, 5.799997, 5.899997, 5.999997 [8:23] Object: 6.099997, 6.199996, 6.299996, 6.399996, 6.499996, 6.599996, 6.699996, 6.799996, 6.899996, 6.999996 [8:23] Object: 7.099996, 7.199996, 7.299995, 7.399995, 7.499995, 7.599995, 7.699995, 7.799995, 7.899995, 7.999995 [8:23] Object: 8.099995, 8.199995, 8.299995, 8.399996, 8.499996, 8.599997, 8.699997, 8.799997, 8.899998, 8.999998 [8:23] Object: 9.099998, 9.199999, 9.299999, 9.400000, 9.500000, 9.600000, 9.700001, 9.800001, 9.900002, 10.000002 [8:24] Object: 10.100002, 10.200003, 10.300003, 10.400003, 10.500004, 10.600004, 10.700005, 10.800005, 10.900005, 11.000006 [8:24] Object: 11.100006, 11.200006, 11.300007, 11.400007, 11.500008, 11.600008, 11.700008, 11.800009, 11.900009, 12.000010 [8:24] Object: 12.100010, 12.200010, 12.300011, 12.400011, 12.500011, 12.600012, 12.700012, 12.800013, 12.900013, 13.000013 [8:24] Object: 13.100014, 13.200014, 13.300014, 13.400015, 13.500015, 13.600016, 13.700016, 13.800016, 13.900017, 14.000017 [8:24] Object: 14.100018, 14.200018, 14.300018, 14.400019, 14.500019, 14.600019, 14.700020, 14.800020, 14.900021, 15.000021 [8:24] Object: 15.100021, 15.200022, 15.300022, 15.400023, 15.500023, 15.600023, 15.700024, 15.800024, 15.900024, 16.000025 [8:24] Object: 16.100025, 16.200026, 16.300026, 16.400026, 16.500027, 16.600027, 16.700027, 16.800028, 16.900028, 17.000029 [8:24] Object: 17.100029, 17.200029, 17.300030, 17.400030, 17.500031, 17.600031, 17.700031, 17.800032, 17.900032, 18.000032 [8:24] Object: 18.100033, 18.200033, 18.300034, 18.400034, 18.500034, 18.600035, 18.700035, 18.800035, 18.900036, 19.000036 [8:24] Object: 19.100037, 19.200037, 19.300037, 19.400038, 19.500038, 19.600039, 19.700039, 19.800039, 19.900040, 20.000040 [8:24] Object: 20.100040, 20.200041, 20.300041, 20.400042, 20.500042, 20.600042, 20.700043, 20.800043, 20.900043, 21.000044 [8:24] Object: 21.100044, 21.200045, 21.300045, 21.400045, 21.500046, 21.600046, 21.700047, 21.800047, 21.900047, 22.000048 [8:24] Object: 22.100048, 22.200048, 22.300049, 22.400049, 22.500050, 22.600050, 22.700050, 22.800051, 22.900051, 23.000051 [8:24] Object: 23.100052, 23.200052, 23.300053, 23.400053, 23.500053, 23.600054, 23.700054, 23.800055, 23.900055, 24.000055 [8:24] Object: 24.100056, 24.200056, 24.300056, 24.400057, 24.500057, 24.600058, 24.700058, 24.800058, 24.900059, 25.000059 [8:24] Object: 25.100060, 25.200060, 25.300060, 25.400061, 25.500061, 25.600061, 25.700062, 25.800062, 25.900063, 26.000063 [8:24] Object: 26.100063, 26.200064, 26.300064, 26.400064, 26.500065, 26.600065, 26.700066, 26.800066, 26.900066, 27.000067 [8:24] Object: 27.100067, 27.200068, 27.300068, 27.400068, 27.500069, 27.600069, 27.700069, 27.800070, 27.900070, 28.000071 [8:24] Object: 28.100071, 28.200071, 28.300072, 28.400072, 28.500072, 28.600073, 28.700073, 28.800074, 28.900074, 29.000074 [8:24] Object: 29.100075, 29.200075, 29.300076, 29.400076, 29.500076, 29.600077, 29.700077, 29.800077, 29.900078, 30.000078 [8:24] Object: 30.100079, 30.200079, 30.300079, 30.400080, 30.500080, 30.600080, 30.700081, 30.800081, 30.900082, 31.000082 [8:24] Object: 31.100082, 31.200083, 31.300083, 31.400084, 31.500084, 31.600084, 31.700085, 31.800085, 31.900085, 32.000084 [8:24] Object: 32.100082, 32.200081, 32.300079, 32.400078, 32.500076, 32.600075, 32.700073, 32.800072, 32.900070, 33.000069 [8:24] Object: 33.100067, 33.200066, 33.300064, 33.400063, 33.500061, 33.600060, 33.700058, 33.800056, 33.900055, 34.000053 [8:24] Object: 34.100052, 34.200050, 34.300049, 34.400047, 34.500046, 34.600044, 34.700043, 34.800041, 34.900040, 35.000038 [8:24] Object: 35.100037, 35.200035, 35.300034, 35.400032, 35.500031, 35.600029, 35.700027, 35.800026, 35.900024, 36.000023 [8:24] Object: 36.100021, 36.200020, 36.300018, 36.400017, 36.500015, 36.600014, 36.700012, 36.800011, 36.900009, 37.000008 [8:25] Object: 37.100006, 37.200005, 37.300003, 37.400002, 37.500000, 37.599998, 37.699997, 37.799995, 37.899994, 37.999992 [8:25] Object: 38.099991, 38.199989, 38.299988, 38.399986, 38.499985, 38.599983, 38.699982, 38.799980, 38.899979, 38.999977 [8:25] Object: 39.099976, 39.199974, 39.299973, 39.399971, 39.499969, 39.599968, 39.699966, 39.799965, 39.899963, 39.999962 [8:25] Object: 40.099960, 40.199959, 40.299957, 40.399956, 40.499954, 40.599953, 40.699951, 40.799950, 40.899948, 40.999947 [8:25] Object: 41.099945, 41.199944, 41.299942, 41.399940, 41.499939, 41.599937, 41.699936, 41.799934, 41.899933, 41.999931 [8:25] Object: 42.099930, 42.199928, 42.299927, 42.399925, 42.499924, 42.599922, 42.699921, 42.799919, 42.899918, 42.999916 [8:25] Object: 43.099915, 43.199913, 43.299911, 43.399910, 43.499908, 43.599907, 43.699905, 43.799904, 43.899902, 43.999901 [8:25] Object: 44.099899, 44.199898, 44.299896, 44.399895, 44.499893, 44.599892, 44.699890, 44.799889, 44.899887, 44.999886 [8:25] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 45.499878 steps * increment 600.500000 difference = 0.000122
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:29
Now using 10 as the start and still .1 as the increment:
[8:26] Object: 10.100000, 10.200001, 10.300001, 10.400002, 10.500002, 10.600002, 10.700003, 10.800003, 10.900003, 11.000004 [8:26] Object: 11.100004, 11.200005, 11.300005, 11.400005, 11.500006, 11.600006, 11.700006, 11.800007, 11.900007, 12.000008 [8:27] Object: 12.100008, 12.200008, 12.300009, 12.400009, 12.500010, 12.600010, 12.700010, 12.800011, 12.900011, 13.000011 [8:27] Object: 13.100012, 13.200012, 13.300013, 13.400013, 13.500013, 13.600014, 13.700014, 13.800014, 13.900015, 14.000015 [8:27] Object: 14.100016, 14.200016, 14.300016, 14.400017, 14.500017, 14.600018, 14.700018, 14.800018, 14.900019, 15.000019 [8:27] Object: 15.100019, 15.200020, 15.300020, 15.400021, 15.500021, 15.600021, 15.700022, 15.800022, 15.900023, 16.000023 [8:27] Object: 16.100023, 16.200024, 16.300024, 16.400024, 16.500025, 16.600025, 16.700026, 16.800026, 16.900026, 17.000027 [8:27] Object: 17.100027, 17.200027, 17.300028, 17.400028, 17.500029, 17.600029, 17.700029, 17.800030, 17.900030, 18.000031 [8:27] Object: 18.100031, 18.200031, 18.300032, 18.400032, 18.500032, 18.600033, 18.700033, 18.800034, 18.900034, 19.000034 [8:27] Object: 19.100035, 19.200035, 19.300035, 19.400036, 19.500036, 19.600037, 19.700037, 19.800037, 19.900038, 20.000038 [8:27] Object: 20.100039, 20.200039, 20.300039, 20.400040, 20.500040, 20.600040, 20.700041, 20.800041, 20.900042, 21.000042 [8:27] Object: 21.100042, 21.200043, 21.300043, 21.400043, 21.500044, 21.600044, 21.700045, 21.800045, 21.900045, 22.000046 [8:27] Object: 22.100046, 22.200047, 22.300047, 22.400047, 22.500048, 22.600048, 22.700048, 22.800049, 22.900049, 23.000050 [8:27] Object: 23.100050, 23.200050, 23.300051, 23.400051, 23.500051, 23.600052, 23.700052, 23.800053, 23.900053, 24.000053 [8:27] Object: 24.100054, 24.200054, 24.300055, 24.400055, 24.500055, 24.600056, 24.700056, 24.800056, 24.900057, 25.000057 [8:27] Object: 25.100058, 25.200058, 25.300058, 25.400059, 25.500059, 25.600060, 25.700060, 25.800060, 25.900061, 26.000061 [8:27] Object: 26.100061, 26.200062, 26.300062, 26.400063, 26.500063, 26.600063, 26.700064, 26.800064, 26.900064, 27.000065 [8:27] Object: 27.100065, 27.200066, 27.300066, 27.400066, 27.500067, 27.600067, 27.700068, 27.800068, 27.900068, 28.000069 [8:27] Object: 28.100069, 28.200069, 28.300070, 28.400070, 28.500071, 28.600071, 28.700071, 28.800072, 28.900072, 29.000072 [8:27] Object: 29.100073, 29.200073, 29.300074, 29.400074, 29.500074, 29.600075, 29.700075, 29.800076, 29.900076, 30.000076 [8:27] Object: 30.100077, 30.200077, 30.300077, 30.400078, 30.500078, 30.600079, 30.700079, 30.800079, 30.900080, 31.000080 [8:27] Object: 31.100080, 31.200081, 31.300081, 31.400082, 31.500082, 31.600082, 31.700083, 31.800083, 31.900084, 32.000084 [8:27] Object: 32.100082, 32.200081, 32.300079, 32.400078, 32.500076, 32.600075, 32.700073, 32.800072, 32.900070, 33.000069 [8:27] Object: 33.100067, 33.200066, 33.300064, 33.400063, 33.500061, 33.600060, 33.700058, 33.800056, 33.900055, 34.000053 [8:27] Object: 34.100052, 34.200050, 34.300049, 34.400047, 34.500046, 34.600044, 34.700043, 34.800041, 34.900040, 35.000038 [8:27] Object: 35.100037, 35.200035, 35.300034, 35.400032, 35.500031, 35.600029, 35.700027, 35.800026, 35.900024, 36.000023 [8:27] Object: 36.100021, 36.200020, 36.300018, 36.400017, 36.500015, 36.600014, 36.700012, 36.800011, 36.900009, 37.000008 [8:27] Object: 37.100006, 37.200005, 37.300003, 37.400002, 37.500000, 37.599998, 37.699997, 37.799995, 37.899994, 37.999992 [8:28] Object: 38.099991, 38.199989, 38.299988, 38.399986, 38.499985, 38.599983, 38.699982, 38.799980, 38.899979, 38.999977 [8:28] Object: 39.099976, 39.199974, 39.299973, 39.399971, 39.499969, 39.599968, 39.699966, 39.799965, 39.899963, 39.999962 [8:28] Object: 40.099960, 40.199959, 40.299957, 40.399956, 40.499954, 40.599953, 40.699951, 40.799950, 40.899948, 40.999947 [8:28] Object: 41.099945, 41.199944, 41.299942, 41.399940, 41.499939, 41.599937, 41.699936, 41.799934, 41.899933, 41.999931 [8:28] Object: 42.099930, 42.199928, 42.299927, 42.399925, 42.499924, 42.599922, 42.699921, 42.799919, 42.899918, 42.999916 [8:28] Object: 43.099915, 43.199913, 43.299911, 43.399910, 43.499908, 43.599907, 43.699905, 43.799904, 43.899902, 43.999901 [8:28] Object: 44.099899, 44.199898, 44.299896, 44.399895, 44.499893, 44.599892, 44.699890, 44.799889, 44.899887, 44.999886 [8:28] Object: 45.099884, 45.199883, 45.299881, 45.399879, 45.499878, 45.599876, 45.699875, 45.799873, 45.899872, 45.999870 [8:28] Object: 46.099869, 46.199867, 46.299866, 46.399864, 46.499863, 46.599861, 46.699860, 46.799858, 46.899857, 46.999855 [8:28] Object: 47.099854, 47.199852, 47.299850, 47.399849, 47.499847, 47.599846, 47.699844, 47.799843, 47.899841, 47.999840 [8:28] Object: 48.099838, 48.199837, 48.299835, 48.399834, 48.499832, 48.599831, 48.699829, 48.799828, 48.899826, 48.999825 [8:28] Object: 49.099823, 49.199821, 49.299820, 49.399818, 49.499817, 49.599815, 49.699814, 49.799812, 49.899811, 49.999809 [8:28] Object: 50.099808, 50.199806, 50.299805, 50.399803, 50.499802, 50.599800, 50.699799, 50.799797, 50.899796, 50.999794 [8:28] Object: 51.099792, 51.199791, 51.299789, 51.399788, 51.499786, 51.599785, 51.699783, 51.799782, 51.899780, 51.999779 [8:28] Object: 52.099777, 52.199776, 52.299774, 52.399773, 52.499771, 52.599770, 52.699768, 52.799767, 52.899765, 52.999763 [8:28] Object: 53.099762, 53.199760, 53.299759, 53.399757, 53.499756, 53.599754, 53.699753, 53.799751, 53.899750, 53.999748 [8:28] Object: 54.099747, 54.199745, 54.299744, 54.399742, 54.499741, 54.599739, 54.699738, 54.799736, 54.899734, 54.999733 [8:28] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 55.499725 steps * increment 600.500000 difference = 0.000122
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:32
1000 as the start and .1 as the increment:
[8:30] Object: 1000.099976, 1000.199951, 1000.299927, 1000.399902, 1000.499878, 1000.599854, 1000.699829, 1000.799805, 1000.899780, 1000.999756 [8:30] Object: 1001.099731, 1001.199707, 1001.299683, 1001.399658, 1001.499634, 1001.599609, 1001.699585, 1001.799561, 1001.899536, 1001.999512 [8:30] Object: 1002.099487, 1002.199463, 1002.299438, 1002.399414, 1002.499390, 1002.599365, 1002.699341, 1002.799316, 1002.899292, 1002.999268 [8:30] Object: 1003.099243, 1003.199219, 1003.299194, 1003.399170, 1003.499146, 1003.599121, 1003.699097, 1003.799072, 1003.899048, 1003.999023 [8:30] Object: 1004.098999, 1004.198975, 1004.298950, 1004.398926, 1004.498901, 1004.598877, 1004.698853, 1004.798828, 1004.898804, 1004.998779 [8:30] Object: 1005.098755, 1005.198730, 1005.298706, 1005.398682, 1005.498657, 1005.598633, 1005.698608, 1005.798584, 1005.898560, 1005.998535 [8:30] Object: 1006.098511, 1006.198486, 1006.298462, 1006.398438, 1006.498413, 1006.598389, 1006.698364, 1006.798340, 1006.898315, 1006.998291 [8:30] Object: 1007.098267, 1007.198242, 1007.298218, 1007.398193, 1007.498169, 1007.598145, 1007.698120, 1007.798096, 1007.898071, 1007.998047 [8:30] Object: 1008.098022, 1008.197998, 1008.297974, 1008.397949, 1008.497925, 1008.597900, 1008.697876, 1008.797852, 1008.897827, 1008.997803 [8:30] Object: 1009.097778, 1009.197754, 1009.297729, 1009.397705, 1009.497681, 1009.597656, 1009.697632, 1009.797607, 1009.897583, 1009.997559 [8:30] Object: 1010.097534, 1010.197510, 1010.297485, 1010.397461, 1010.497437, 1010.597412, 1010.697388, 1010.797363, 1010.897339, 1010.997314 [8:30] Object: 1011.097290, 1011.197266, 1011.297241, 1011.397217, 1011.497192, 1011.597168, 1011.697144, 1011.797119, 1011.897095, 1011.997070 [8:30] Object: 1012.097046, 1012.197021, 1012.296997, 1012.396973, 1012.496948, 1012.596924, 1012.696899, 1012.796875, 1012.896851, 1012.996826 [8:30] Object: 1013.096802, 1013.196777, 1013.296753, 1013.396729, 1013.496704, 1013.596680, 1013.696655, 1013.796631, 1013.896606, 1013.996582 [8:31] Object: 1014.096558, 1014.196533, 1014.296509, 1014.396484, 1014.496460, 1014.596436, 1014.696411, 1014.796387, 1014.896362, 1014.996338 [8:31] Object: 1015.096313, 1015.196289, 1015.296265, 1015.396240, 1015.496216, 1015.596191, 1015.696167, 1015.796143, 1015.896118, 1015.996094 [8:31] Object: 1016.096069, 1016.196045, 1016.296021, 1016.395996, 1016.495972, 1016.595947, 1016.695923, 1016.795898, 1016.895874, 1016.995850 [8:31] Object: 1017.095825, 1017.195801, 1017.295776, 1017.395752, 1017.495728, 1017.595703, 1017.695679, 1017.795654, 1017.895630, 1017.995605 [8:31] Object: 1018.095581, 1018.195557, 1018.295532, 1018.395508, 1018.495483, 1018.595459, 1018.695435, 1018.795410, 1018.895386, 1018.995361 [8:31] Object: 1019.095337, 1019.195312, 1019.295288, 1019.395264, 1019.495239, 1019.595215, 1019.695190, 1019.795166, 1019.895142, 1019.995117 [8:31] Object: 1020.095093, 1020.195068, 1020.295044, 1020.395020, 1020.494995, 1020.594971, 1020.694946, 1020.794922, 1020.894897, 1020.994873 [8:31] Object: 1021.094849, 1021.194824, 1021.294800, 1021.394775, 1021.494751, 1021.594727, 1021.694702, 1021.794678, 1021.894653, 1021.994629 [8:31] Object: 1022.094604, 1022.194580, 1022.294556, 1022.394531, 1022.494507, 1022.594482, 1022.694458, 1022.794434, 1022.894409, 1022.994385 [8:31] Object: 1023.094360, 1023.194336, 1023.294312, 1023.394287, 1023.494263, 1023.594238, 1023.694214, 1023.794189, 1023.894165, 1023.994141 [8:31] Object: 1024.094116, 1024.194092, 1024.294067, 1024.394043, 1024.494019, 1024.593994, 1024.693970, 1024.793945, 1024.893921, 1024.993896 [8:31] Object: 1025.093872, 1025.193848, 1025.293823, 1025.393799, 1025.493774, 1025.593750, 1025.693726, 1025.793701, 1025.893677, 1025.993652 [8:31] Object: 1026.093628, 1026.193604, 1026.293579, 1026.393555, 1026.493530, 1026.593506, 1026.693481, 1026.793457, 1026.893433, 1026.993408 [8:31] Object: 1027.093384, 1027.193359, 1027.293335, 1027.393311, 1027.493286, 1027.593262, 1027.693237, 1027.793213, 1027.893188, 1027.993164 [8:31] Object: 1028.093140, 1028.193115, 1028.293091, 1028.393066, 1028.493042, 1028.593018, 1028.692993, 1028.792969, 1028.892944, 1028.992920 [8:31] Object: 1029.092896, 1029.192871, 1029.292847, 1029.392822, 1029.492798, 1029.592773, 1029.692749, 1029.792725, 1029.892700, 1029.992676 [8:31] Object: 1030.092651, 1030.192627, 1030.292603, 1030.392578, 1030.492554, 1030.592529, 1030.692505, 1030.792480, 1030.892456, 1030.992432 [8:31] Object: 1031.092407, 1031.192383, 1031.292358, 1031.392334, 1031.492310, 1031.592285, 1031.692261, 1031.792236, 1031.892212, 1031.992188 [8:31] Object: 1032.092163, 1032.192139, 1032.292114, 1032.392090, 1032.492065, 1032.592041, 1032.692017, 1032.791992, 1032.891968, 1032.991943 [8:31] Object: 1033.091919, 1033.191895, 1033.291870, 1033.391846, 1033.491821, 1033.591797, 1033.691772, 1033.791748, 1033.891724, 1033.991699 [8:31] Object: 1034.091675, 1034.191650, 1034.291626, 1034.391602, 1034.491577, 1034.591553, 1034.691528, 1034.791504, 1034.891479, 1034.991455 [8:31] Object: 1035.091431, 1035.191406, 1035.291382, 1035.391357, 1035.491333, 1035.591309, 1035.691284, 1035.791260, 1035.891235, 1035.991211 [8:31] Object: 1036.091187, 1036.191162, 1036.291138, 1036.391113, 1036.491089, 1036.591064, 1036.691040, 1036.791016, 1036.890991, 1036.990967 [8:31] Object: 1037.090942, 1037.190918, 1037.290894, 1037.390869, 1037.490845, 1037.590820, 1037.690796, 1037.790771, 1037.890747, 1037.990723 [8:31] Object: 1038.090698, 1038.190674, 1038.290649, 1038.390625, 1038.490601, 1038.590576, 1038.690552, 1038.790527, 1038.890503, 1038.990479 [8:31] Object: 1039.090454, 1039.190430, 1039.290405, 1039.390381, 1039.490356, 1039.590332, 1039.690308, 1039.790283, 1039.890259, 1039.990234 [8:31] Object: 1040.090210, 1040.190186, 1040.290161, 1040.390137, 1040.490112, 1040.590088, 1040.690063, 1040.790039, 1040.890015, 1040.989990 [8:32] Object: 1041.089966, 1041.189941, 1041.289917, 1041.389893, 1041.489868, 1041.589844, 1041.689819, 1041.789795, 1041.889771, 1041.989746 [8:32] Object: 1042.089722, 1042.189697, 1042.289673, 1042.389648, 1042.489624, 1042.589600, 1042.689575, 1042.789551, 1042.889526, 1042.989502 [8:32] Object: 1043.089478, 1043.189453, 1043.289429, 1043.389404, 1043.489380, 1043.589355, 1043.689331, 1043.789307, 1043.889282, 1043.989258 [8:32] Object: 1044.089233, 1044.189209, 1044.289185, 1044.389160, 1044.489136, 1044.589111, 1044.689087, 1044.789062, 1044.889038, 1044.989014 [8:32] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 1045.488892 steps * increment 600.500000 difference = 0.000122
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 08:38
and finally just to show how screwed up this is and to prove that it isn't simply a matter of "float error". This so called "float error" only shows up when working with any other float except for .0 or or a multiple of 5 (.5, 0.5, .005 etc). The conclusion is there is no such a thing as prim drift or "float error". The server is simply not doing the math correctly. Someone coded something wrong. The server has no problems at all working with the same starting increment of 1000 and adding .5 again:
[8:34] Object: 1000.500000, 1001.000000, 1001.500000, 1002.000000, 1002.500000, 1003.000000, 1003.500000, 1004.000000, 1004.500000, 1005.000000 [8:34] Object: 1005.500000, 1006.000000, 1006.500000, 1007.000000, 1007.500000, 1008.000000, 1008.500000, 1009.000000, 1009.500000, 1010.000000 [8:34] Object: 1010.500000, 1011.000000, 1011.500000, 1012.000000, 1012.500000, 1013.000000, 1013.500000, 1014.000000, 1014.500000, 1015.000000 [8:34] Object: 1015.500000, 1016.000000, 1016.500000, 1017.000000, 1017.500000, 1018.000000, 1018.500000, 1019.000000, 1019.500000, 1020.000000 [8:34] Object: 1020.500000, 1021.000000, 1021.500000, 1022.000000, 1022.500000, 1023.000000, 1023.500000, 1024.000000, 1024.500000, 1025.000000 [8:34] Object: 1025.500000, 1026.000000, 1026.500000, 1027.000000, 1027.500000, 1028.000000, 1028.500000, 1029.000000, 1029.500000, 1030.000000 [8:34] Object: 1030.500000, 1031.000000, 1031.500000, 1032.000000, 1032.500000, 1033.000000, 1033.500000, 1034.000000, 1034.500000, 1035.000000 [8:34] Object: 1035.500000, 1036.000000, 1036.500000, 1037.000000, 1037.500000, 1038.000000, 1038.500000, 1039.000000, 1039.500000, 1040.000000 [8:34] Object: 1040.500000, 1041.000000, 1041.500000, 1042.000000, 1042.500000, 1043.000000, 1043.500000, 1044.000000, 1044.500000, 1045.000000 [8:34] Object: 1045.500000, 1046.000000, 1046.500000, 1047.000000, 1047.500000, 1048.000000, 1048.500000, 1049.000000, 1049.500000, 1050.000000 [8:35] Object: 1050.500000, 1051.000000, 1051.500000, 1052.000000, 1052.500000, 1053.000000, 1053.500000, 1054.000000, 1054.500000, 1055.000000 [8:35] Object: 1055.500000, 1056.000000, 1056.500000, 1057.000000, 1057.500000, 1058.000000, 1058.500000, 1059.000000, 1059.500000, 1060.000000 [8:35] Object: 1060.500000, 1061.000000, 1061.500000, 1062.000000, 1062.500000, 1063.000000, 1063.500000, 1064.000000, 1064.500000, 1065.000000 [8:35] Object: 1065.500000, 1066.000000, 1066.500000, 1067.000000, 1067.500000, 1068.000000, 1068.500000, 1069.000000, 1069.500000, 1070.000000 [8:35] Object: 1070.500000, 1071.000000, 1071.500000, 1072.000000, 1072.500000, 1073.000000, 1073.500000, 1074.000000, 1074.500000, 1075.000000 [8:35] Object: 1075.500000, 1076.000000, 1076.500000, 1077.000000, 1077.500000, 1078.000000, 1078.500000, 1079.000000, 1079.500000, 1080.000000 [8:35] Object: 1080.500000, 1081.000000, 1081.500000, 1082.000000, 1082.500000, 1083.000000, 1083.500000, 1084.000000, 1084.500000, 1085.000000 [8:35] Object: 1085.500000, 1086.000000, 1086.500000, 1087.000000, 1087.500000, 1088.000000, 1088.500000, 1089.000000, 1089.500000, 1090.000000 [8:35] Object: 1090.500000, 1091.000000, 1091.500000, 1092.000000, 1092.500000, 1093.000000, 1093.500000, 1094.000000, 1094.500000, 1095.000000 [8:35] Object: 1095.500000, 1096.000000, 1096.500000, 1097.000000, 1097.500000, 1098.000000, 1098.500000, 1099.000000, 1099.500000, 1100.000000 [8:35] Object: 1100.500000, 1101.000000, 1101.500000, 1102.000000, 1102.500000, 1103.000000, 1103.500000, 1104.000000, 1104.500000, 1105.000000 [8:35] Object: 1105.500000, 1106.000000, 1106.500000, 1107.000000, 1107.500000, 1108.000000, 1108.500000, 1109.000000, 1109.500000, 1110.000000 [8:35] Object: 1110.500000, 1111.000000, 1111.500000, 1112.000000, 1112.500000, 1113.000000, 1113.500000, 1114.000000, 1114.500000, 1115.000000 [8:35] Object: 1115.500000, 1116.000000, 1116.500000, 1117.000000, 1117.500000, 1118.000000, 1118.500000, 1119.000000, 1119.500000, 1120.000000 [8:35] Object: 1120.500000, 1121.000000, 1121.500000, 1122.000000, 1122.500000, 1123.000000, 1123.500000, 1124.000000, 1124.500000, 1125.000000 [8:35] Object: 1125.500000, 1126.000000, 1126.500000, 1127.000000, 1127.500000, 1128.000000, 1128.500000, 1129.000000, 1129.500000, 1130.000000 [8:35] Object: 1130.500000, 1131.000000, 1131.500000, 1132.000000, 1132.500000, 1133.000000, 1133.500000, 1134.000000, 1134.500000, 1135.000000 [8:35] Object: 1135.500000, 1136.000000, 1136.500000, 1137.000000, 1137.500000, 1138.000000, 1138.500000, 1139.000000, 1139.500000, 1140.000000 [8:35] Object: 1140.500000, 1141.000000, 1141.500000, 1142.000000, 1142.500000, 1143.000000, 1143.500000, 1144.000000, 1144.500000, 1145.000000 [8:35] Object: 1145.500000, 1146.000000, 1146.500000, 1147.000000, 1147.500000, 1148.000000, 1148.500000, 1149.000000, 1149.500000, 1150.000000 [8:35] Object: 1150.500000, 1151.000000, 1151.500000, 1152.000000, 1152.500000, 1153.000000, 1153.500000, 1154.000000, 1154.500000, 1155.000000 [8:35] Object: 1155.500000, 1156.000000, 1156.500000, 1157.000000, 1157.500000, 1158.000000, 1158.500000, 1159.000000, 1159.500000, 1160.000000 [8:35] Object: 1160.500000, 1161.000000, 1161.500000, 1162.000000, 1162.500000, 1163.000000, 1163.500000, 1164.000000, 1164.500000, 1165.000000 [8:35] Object: 1165.500000, 1166.000000, 1166.500000, 1167.000000, 1167.500000, 1168.000000, 1168.500000, 1169.000000, 1169.500000, 1170.000000 [8:35] Object: 1170.500000, 1171.000000, 1171.500000, 1172.000000, 1172.500000, 1173.000000, 1173.500000, 1174.000000, 1174.500000, 1175.000000 [8:35] Object: 1175.500000, 1176.000000, 1176.500000, 1177.000000, 1177.500000, 1178.000000, 1178.500000, 1179.000000, 1179.500000, 1180.000000 [8:35] Object: 1180.500000, 1181.000000, 1181.500000, 1182.000000, 1182.500000, 1183.000000, 1183.500000, 1184.000000, 1184.500000, 1185.000000 [8:36] Object: 1185.500000, 1186.000000, 1186.500000, 1187.000000, 1187.500000, 1188.000000, 1188.500000, 1189.000000, 1189.500000, 1190.000000 [8:36] Object: 1190.500000, 1191.000000, 1191.500000, 1192.000000, 1192.500000, 1193.000000, 1193.500000, 1194.000000, 1194.500000, 1195.000000 [8:36] Object: 1195.500000, 1196.000000, 1196.500000, 1197.000000, 1197.500000, 1198.000000, 1198.500000, 1199.000000, 1199.500000, 1200.000000 [8:36] Object: 1200.500000, 1201.000000, 1201.500000, 1202.000000, 1202.500000, 1203.000000, 1203.500000, 1204.000000, 1204.500000, 1205.000000 [8:36] Object: 1205.500000, 1206.000000, 1206.500000, 1207.000000, 1207.500000, 1208.000000, 1208.500000, 1209.000000, 1209.500000, 1210.000000 [8:36] Object: 1210.500000, 1211.000000, 1211.500000, 1212.000000, 1212.500000, 1213.000000, 1213.500000, 1214.000000, 1214.500000, 1215.000000 [8:36] Object: 1215.500000, 1216.000000, 1216.500000, 1217.000000, 1217.500000, 1218.000000, 1218.500000, 1219.000000, 1219.500000, 1220.000000 [8:36] Object: 1220.500000, 1221.000000, 1221.500000, 1222.000000, 1222.500000, 1223.000000, 1223.500000, 1224.000000, 1224.500000, 1225.000000 [8:36] Object: increment = 1.100000 steps = 456 <100.00000, 100.00000, 600.50012> Z = 600.500122 reference = 1227.500000 steps * increment 600.500000 difference = 0.000122
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 17:51
Well I finally asked the math gods over in scripting tips and got the answer and it isn't great. /54/21/146735/1.html#post1324912With SL converting our numbers using what is the industry standard of IEE754 the input/output is slightly changed each time the number goes throught the server. http://www.h-schmidt.net/FloatApplet/IEEE754.htmlJust enter any number in that converter and look at the "with double precision". More importantly look at this statement on bottom of page: "Rounding errors: Not every decimal number can be expressed exactly as a floating point number. This can be seen when entering "0.1" and examining its binary representation which is either slightly smaller or larger, depending on the last bit." SO unless each and every part of our builds has a position ending in .0 or .5 there is going to be a difference after every movement or sim restart. You can get anyone of my numbers from one of the postings and add the increment and put it through the convertor and you will get the next number displayed.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Seifert Surface
Mathematician
Join date: 14 Jun 2005
Posts: 912
|
11-01-2006 19:35
<nitpick>This isn't math, this is technical implementation of arithmetical operations</nitpick>
And nu-uh, many of my builds are designed to work on the grid, specifically all the positions are multiples of 0.0625 (= 1/16). In addition I run a script through the entire build, snapping every prim to that grid. 0.0625 shows up fine on that IEEE 754 converter. It's something else that's screwing it up.
If it were the float errors causing this, then surely Gearsawe would also have seen errors within child prims, or on the rotations. He doesn't.
_____________________
-Seifert Surface 2G!tGLf 2nLt9cG
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
11-01-2006 20:55
From: Seifert Surface And nu-uh, many of my builds are designed to work on the grid, specifically all the positions are multiples of 0.0625 (= 1/16). Um... From: Jesse Barnett SO unless each and every part of our builds has a position ending in .0 or .5 there is going to be a difference after every movement or sim restart. .0625 ENDS IN A 5! (I know s/he wrote .5, but really, it's pretty obvious)
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 21:35
actually it isn't. as pointed out .0625 is a good number also, but .05 isn't. .05 = 0.049999237060547
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 21:58
From: Seifert Surface If it were the float errors causing this, then surely Gearsawe would also have seen errors within child prims, or on the rotations. He doesn't. How are linksets stored in the server???? that is the big question. In a linkset the drift is exactly the same in shild and parent. Rotations do affect it, we just saw that right now in Beta. But children never, ever change in relation to the parent. The whole linkset only. I just finished going through over 15 pages of data and it matchs to a tee.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
|
11-01-2006 22:03
From: Jesse Barnett actually it isn't. as pointed out .0625 is a good number also, but .05 isn't. .05 = 0.049999237060547 It looks like you can use any fraction. Even 1/64 converts correctly.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime. From: someone I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
|
Seifert Surface
Mathematician
Join date: 14 Jun 2005
Posts: 912
|
11-01-2006 22:42
I don't know the behind the scenes on floats, but it has to be based on binary somehow, so it wouldn't surprise me that powers of 2 in the denominator ought to work.
_____________________
-Seifert Surface 2G!tGLf 2nLt9cG
|