Wii VC Round-to-Zero: Difference between revisions

no edit summary
mNo edit summary
No edit summary
Line 32: Line 32:
:<math>\frac{127}{256} \times \frac{1}{4096}\ \frac{\mathrm{units}}{\mathrm{frames}} \times \left(30\ \frac{\mathrm{frames}}{\mathrm{s}} \times 60\ \frac{\mathrm{s}}{\mathrm{min}} \times 60\ \frac{\mathrm{min}}{\mathrm{h}}\right) \approx 13.0806\ \frac{\mathrm{units}}{\mathrm{h}}</math>
:<math>\frac{127}{256} \times \frac{1}{4096}\ \frac{\mathrm{units}}{\mathrm{frames}} \times \left(30\ \frac{\mathrm{frames}}{\mathrm{s}} \times 60\ \frac{\mathrm{s}}{\mathrm{min}} \times 60\ \frac{\mathrm{min}}{\mathrm{h}}\right) \approx 13.0806\ \frac{\mathrm{units}}{\mathrm{h}}</math>


The floating-point numbers are distributed non-uniformly; the gap between floats doubles after each [[wikipedia:Power of two|power of two]], so their number line is denser closer to zero. Because the platform drifts toward zero, the error factor (initially <math display="inline">\frac{1}{4096}</math>) is halved after certain thresholds, and so the platform's net speed is also halved. First, above <var>y</var> = &minus;2048, it drops to about 6.54 units per hour. It continues to halve in net speed as it passes through <var>y</var> = &minus;1024, <var>y</var> = &minus;512, and all other <math display="inline">y = 2^n</math> boundaries, until it stops around <var>y</var> = 0.
The floating-point numbers are distributed non-uniformly; the gap between floats doubles after each [[wikipedia:Power of two|power of two]], so their number line is denser closer to zero. Because the platform drifts toward zero, the error factor (initially <math display="inline">\frac{1}{4096}</math>) is halved after certain thresholds, and so the platform's net speed is also halved. First, above <var>y</var> = &minus;2048, it drops to about 6.54 units per hour. It continues to halve in net speed as it passes through <var>y</var> = &minus;1024, <var>y</var> = &minus;512, and all other <math display="inline">\left|y\right| = 2^n</math> boundaries, until it stops around <var>y</var> = 0.


Each time the platform oscillates through one of these boundaries, its behavior becomes complex. Throughout its cycle, the platform is sometimes above <math display="inline">y = 2^n</math> and sometimes below. The overall speed decrease as the platform's average height passes through the boundary is represented by the [[wikipedia:Differential equation|differential equation]]
Each time the platform oscillates through one of these boundaries, its behavior is more complicated. Throughout its cycle, the platform is sometimes above <math display="inline">\left|y\right| = 2^n</math> and sometimes below. The overall speed decrease as the platform's average height passes through the boundary is represented by the [[wikipedia:Differential equation|differential equation]]
:<math>v_y = \frac{dy}{dt} = \arccos\left(y\right)</math>
:<math>v_y = \frac{dy}{dt} = \arccos\left(y\right)</math>
The platform suddenly slows down quickly, then at a slower rate before it decelerates faster again, and finally, suddenly the platform's acceleration completely stops, the speed settling at a constant, half of what it started with.
The platform suddenly slows down quickly, then at a slower rate before it decelerates faster again, and finally, suddenly the platform's acceleration completely stops, the speed settling at a constant, half of what it started with.
confirmed_editors
16

edits