Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
More Jobs
Recent
Displaying numbers to words.
Williams Words
Doing a 'blank?' in named_scope
Factoring Integers
Filterting a List<> with a Regular Expression
Converting Textile to S5
Efficiently load a text file into a sorted String Array
Cheap ruby block templating
Bindings on caller
Initial script execution very slow and skewing results
Popular
Displaying numbers to words.
Filterting a List<> with a Regular Expression
Efficiently load a text file into a sorted String Array
Factoring Integers
Doing a 'blank?' in named_scope
Converting Textile to S5
Williams Words
Caching Methods
Cheap ruby block templating
How to find max, min of three numbers?
Pastable version of
Tracking error in numbers
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46</pre> <pre class="sunburst"><span style="color:#E28964;">class</span> <span style="text-decoration:underline;">ENumber</span> <span style="color:#E28964;">attr_accessor</span> <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>n</span>, <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>e</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">initialize</span>(<span style="color:#3E87E3;"> number<span style="color:#3E87E3;">,</span> error </span>) <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span> <span style="color:#E28964;">=</span> number <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>e</span> <span style="color:#E28964;">=</span> error <span style="color:#E28964;">end</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> Basic arithmetic. Call like (ENumber1 + ENumber2)</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">+</span>(<span style="color:#3E87E3;">o</span>); <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">+</span>o.<span style="color:#89BDFF;">n</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>e</span><span style="color:#E28964;">+</span>o.<span style="color:#89BDFF;">e</span>); <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">-</span>(<span style="color:#3E87E3;">o</span>); <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">-</span>o.<span style="color:#89BDFF;">n</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>e</span><span style="color:#E28964;">+</span>o.<span style="color:#89BDFF;">e</span>); <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">*</span>(<span style="color:#3E87E3;">o</span>); <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">*</span>o.<span style="color:#89BDFF;">n</span>, <span style="color:#89BDFF;">multError</span>(o)); <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">/</span>(<span style="color:#3E87E3;">o</span>); <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">/</span>o.<span style="color:#89BDFF;">n</span>, <span style="color:#89BDFF;">multError</span>(o)); <span style="color:#E28964;">end</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> Trigonometric functions. Call like "myENumber.cos"</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">tan</span>; <span style="color:#89BDFF;">trig</span>(<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>tan</span>); <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">sin</span>; <span style="color:#89BDFF;">trig</span>(<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>sin</span>); <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">cos</span>; <span style="color:#89BDFF;">trig</span>(<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cos</span>); <span style="color:#E28964;">end</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> Print this ENumber with the number and error rounded to x and y, respectively.</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> Probably should find the real way to print a +/-. since it screws up when I edit</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> this file on a terminal without UTF-8 (ie. almost any terminal)</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">to_s</span>(<span style="color:#3E87E3;">x<span style="color:#E28964;">=</span><span style="color:#3387CC;">4</span><span style="color:#3E87E3;">,</span>y<span style="color:#E28964;">=</span>x</span>) <span style="color:#65B042;"><span style="color:#65B042;">"</span>%.<span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>x<span style="color:#DAEFA3;">}</span></span>f±%.<span style="color:#DAEFA3;"><span style="color:#DAEFA3;">#{</span>y<span style="color:#DAEFA3;">}</span></span>f<span style="color:#65B042;">"</span></span> <span style="color:#E28964;">%</span> [<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>e</span>] <span style="color:#E28964;">end</span> <span style="color:#E28964;">private</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">trig</span>(<span style="color:#3E87E3;">type</span>) fcn <span style="color:#E28964;">=</span> <span style="color:#9B859D;">Math</span>.<span style="color:#89BDFF;">method</span>(type) <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(fcn.<span style="color:#89BDFF;">call</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span>), <span style="color:#3387CC;">0.5</span><span style="color:#E28964;">*</span>(fcn.<span style="color:#89BDFF;">call</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">+@</span>e)<span style="color:#E28964;">-</span>fcn.<span style="color:#89BDFF;">call</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span><span style="color:#E28964;">-@</span>e)).<span style="color:#89BDFF;">abs</span> ) <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">multError</span>(<span style="color:#3E87E3;">o</span>) (<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span> <span style="color:#E28964;">*</span> o.<span style="color:#89BDFF;">n</span>).<span style="color:#89BDFF;">abs</span> <span style="color:#E28964;">*</span> ((<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>e</span> <span style="color:#E28964;">/</span> (<span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>n</span>.<span style="color:#89BDFF;">abs</span>)) <span style="color:#E28964;">+</span> (o.<span style="color:#89BDFF;">e</span> <span style="color:#E28964;">/</span> (o.<span style="color:#89BDFF;">n</span>.<span style="color:#89BDFF;">abs</span>))) <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> Normally this file will be included as a library.</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> If it's loaded directly, run the below. Demo/example/cheap-ass-unittest.</span> <span style="color:#E28964;">if</span> <span style="color:#3E87E3;">__FILE__</span> <span style="color:#E28964;">==</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>0</span> n <span style="color:#E28964;">=</span> <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3387CC;">3</span>,<span style="color:#3387CC;">0.5</span>) m <span style="color:#E28964;">=</span> <span style="color:#3E87E3;">ENumber</span>.<span style="color:#89BDFF;">new</span>(<span style="color:#3387CC;">4</span>,<span style="color:#3387CC;">0.25</span>) puts (((m<span style="color:#E28964;">*</span>n).<span style="color:#89BDFF;">tan</span>)<span style="color:#E28964;">+</span>n).<span style="color:#89BDFF;">to_s</span>(<span style="color:#3387CC;">5</span>,<span style="color:#3387CC;">6</span>) <span style="color:#E28964;">end</span> </pre> </div> </div> <a href="http://www.refactormycode.com/codes/342-tracking-error-in-numbers" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://www.refactormycode.com/images/small_logo.gif" style="border:0" /></a>