<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068</link>
    <title>MATLAB Central Newsreader - Trouble - floor() BUG? or.... merely my faults?</title>
    <description>Feed for thread: Trouble - floor() BUG? or.... merely my faults?</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 17 Jun 2008 09:07:03 -0400</pubDate>
      <title>Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#437817</link>
      <author>ken </author>
      <description>&lt;br&gt;
Hi, guys...&lt;br&gt;
I'm new face here.&lt;br&gt;
&lt;br&gt;
Is anybody could answer why the condition&lt;br&gt;
&amp;nbsp;happened being so weird.&lt;br&gt;
&lt;br&gt;
floor, a very simplex internal function which bothered me...&lt;br&gt;
&lt;br&gt;
There are some marked lines below explain my problem.&lt;br&gt;
I thought that if it's my problem, it'd be an &quot;access&lt;br&gt;
violation&quot; when running my code and caused&lt;br&gt;
such weird result.&lt;br&gt;
&lt;br&gt;
Please take a look. (Trace the place I marked)&lt;br&gt;
Thanks a lot.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
function floor_bug&lt;br&gt;
&lt;br&gt;
Line2Pixel([1 1], [-7 -7])&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
% Most of the time, this function works well, though,&lt;br&gt;
% the following parameter set exactly causes problem.&lt;br&gt;
% Please as well check the middle of the code where I &lt;br&gt;
highlighted.&lt;br&gt;
% Problem there.&lt;br&gt;
Line2Pixel([108 62], [-7 32])&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
function real_pixels=Line2Pixel(v1, v2)&lt;br&gt;
% input: a line represented by end-point v1 to v2&lt;br&gt;
% output: a sequence of pixels, may not in the order from &lt;br&gt;
v1 to v2, might&lt;br&gt;
%           be in reversed order.&lt;br&gt;
% There would be redundant pixels if points of (x, y) lie &lt;br&gt;
in the line&lt;br&gt;
% where x and y are both integers, in which case we ignored &lt;br&gt;
to do clipping.&lt;br&gt;
&lt;br&gt;
% % used for end-point verification&lt;br&gt;
% s1=v1; s2=v2;&lt;br&gt;
&lt;br&gt;
real_pixels=[];&lt;br&gt;
&lt;br&gt;
% The followings deal with conditions on vert/hori line.&lt;br&gt;
tmp0=v2-v1;                                             % a &lt;br&gt;
real vector&lt;br&gt;
if tmp0==0                                              % a &lt;br&gt;
zero vector&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels=[floor(v1)];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;
elseif tmp0(1)==0                                       % a &lt;br&gt;
vertical line&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp00=floor(v1(1));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=v1(2): sign(tmp0(2)): v2(2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels=[real_pixels; [tmp00 floor(i)]];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;
elseif tmp0(2)==0                                       % a &lt;br&gt;
horizontal line&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp00=floor(v1(2));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=v1(1): sign(tmp0(1)): v2(1)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels=[real_pixels; [floor(i) tmp00]];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
m=(v2(2)-v1(2))/(v2(1)-v1(1));                          % &lt;br&gt;
the slope&lt;br&gt;
param1x=v1(1)-v1(2)/m;                                  % a &lt;br&gt;
constant(a) for x=ny+a&lt;br&gt;
param1y=v1(2)-m*v1(1);                                  % a &lt;br&gt;
constant(b) for y=mx+b&lt;br&gt;
&lt;br&gt;
%CX=@(CY) CY/m+param1x;                                  % &lt;br&gt;
get x from y&lt;br&gt;
%CY=@(CX) m*CX+param1y;                                  % &lt;br&gt;
get y from x&lt;br&gt;
&lt;br&gt;
% Reorder v1 and v2 because we want to increasingly &lt;br&gt;
traverse along x-axis.&lt;br&gt;
% After reordering, only two conditions for y are &lt;br&gt;
considered.&lt;br&gt;
if v2(1)&amp;lt;v1(1); tmp0=v2; v2=v1; v1=tmp0; disorder=1; else &lt;br&gt;
disorder=0; end;&lt;br&gt;
&lt;br&gt;
% The following code segment is a line-drawing algorithm &lt;br&gt;
which uses&lt;br&gt;
% floating point calculation as to be inefficient.&lt;br&gt;
pixels=floor([v1(1) v1(2)]);&lt;br&gt;
x_prime=pixels(1);&lt;br&gt;
x_end=floor(v2(1));&lt;br&gt;
&lt;br&gt;
if v1(2)&amp;lt;v2(2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y_inc=1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while x_prime&amp;lt;=x_end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=m*(x_prime+1)+param1y;   %CY(x_prime+1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y_prime=floor(y);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=(y_prime+1)/m+param1x;   %CX(y_prime+1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%BUG     HERE%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% CHECK THE NEXT LINE: x_prime=floor(x);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% while iterating to x==16.0000,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% some incredible problem occurs.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% floor() was out of mind......&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% Anybody knows why?????????????????????&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% help me here.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% Appreciate a lot.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x_prime=floor(x);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixels(end+1, :)=[x_prime y_prime]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y_inc=0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while x_prime&amp;lt;=x_end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=m*(x_prime+1)+param1y;   %CY(x_prime+1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y_prime=floor(y);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x=(y_prime-1)/m+param1x;   %CX(y_prime-1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x_prime=floor(x);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixels(end+1, :)=[x_prime y_prime];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
% Transfer collected information to real pixels.&lt;br&gt;
real_pixels=pixels(1, :);&lt;br&gt;
if y_inc&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=2: size(pixels, 1)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=real_pixels(end, 2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while j&amp;lt;pixels(i, 2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=j+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if j&amp;gt;v2(2); break; end;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels(end+1, :)=[real_pixels(end, 1) j];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=real_pixels(end, 1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while j&amp;lt;pixels(i, 1)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=j+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if j&amp;gt;v2(1); break; end;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels(end+1, :)=[j real_pixels(end, 2)];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=2: size(pixels, 1)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=real_pixels(end, 2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while j&amp;gt;pixels(i, 2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=j-1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if j&amp;lt;v2(2); break; end;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels(end+1, :)=[real_pixels(end, 1) j];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=real_pixels(end, 1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while j&amp;lt;pixels(i, 1)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=j+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if j&amp;gt;v2(1); break; end;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;real_pixels(end+1, :)=[j real_pixels(end, 2)];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
if disorder; real_pixels=flipud(real_pixels); end; % reorder&lt;br&gt;
% if length(real_pixels)&amp;gt;2 % clipping&lt;br&gt;
%     tmp=abs(real_pixels(1: 2: end-2, :)-real_pixels(3: 2: &lt;br&gt;
end, :));&lt;br&gt;
%     tmp=tmp&amp;lt;2;&lt;br&gt;
%     real_pixels(2*find(and(tmp(:, 1), tmp(:, 2))), :)=[];&lt;br&gt;
% end&lt;br&gt;
&lt;br&gt;
% % used for end-point verification, fault if answer ~= 0&lt;br&gt;
% s=floor([s1; s2]);&lt;br&gt;
% prod([ ...&lt;br&gt;
%     prod([sum(s(1, :)~=real_pixels(1, :)), sum(s(1, :)&lt;br&gt;
~=real_pixels(end, :))]), ...&lt;br&gt;
%     prod([sum(s(2, :)~=real_pixels(1, :)), sum(s(2, :)&lt;br&gt;
~=real_pixels(end, :))]) ...&lt;br&gt;
%     ])</description>
    </item>
    <item>
      <pubDate>Tue, 17 Jun 2008 10:01:03 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#437837</link>
      <author>Jos </author>
      <description>&quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message&lt;br&gt;
&amp;lt;g37urn$4eh$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Hi, guys...&lt;br&gt;
&amp;gt; I'm new face here.&lt;br&gt;
&lt;br&gt;
welcome!&lt;br&gt;
&lt;br&gt;
...&lt;br&gt;
&lt;br&gt;
&amp;gt;         % floor() was out of mind......&lt;br&gt;
&amp;gt;         % Anybody knows why?????????????????????&lt;br&gt;
&amp;gt;         % help me here.&lt;br&gt;
&amp;gt;         % Appreciate a lot.&lt;br&gt;
&lt;br&gt;
...&lt;br&gt;
&lt;br&gt;
So, tell us then: what is the error and what was the value&lt;br&gt;
of x when the error occured?&lt;br&gt;
&lt;br&gt;
&quot;The most important step towards a solution is the accurate&lt;br&gt;
description of the problem.&quot;&lt;br&gt;
&lt;br&gt;
Jos</description>
    </item>
    <item>
      <pubDate>Tue, 17 Jun 2008 10:24:01 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#437843</link>
      <author>David </author>
      <description>&quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message &lt;br&gt;
&amp;lt;g37urn$4eh$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Hi, guys...&lt;br&gt;
&amp;gt; I'm new face here.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Is anybody could answer why the condition&lt;br&gt;
&amp;gt;  happened being so weird.&lt;br&gt;
&amp;gt; &lt;br&gt;
with the set of parameters giving you the problem this is &lt;br&gt;
where your error really is:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=m*(x_prime+1)+param1y; %CY(x_prime+1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y_prime=floor(y);&lt;br&gt;
&lt;br&gt;
the calculation works out that y=3.799999999999999e+001 &lt;br&gt;
which floor converts to 37... so it never gets past that &lt;br&gt;
point, eventually it probably runs out of memory as its &lt;br&gt;
stuck in an infinite loop building the array.  overall the &lt;br&gt;
code looks way over complicated for drawing a line, and as &lt;br&gt;
too many chances for things like this to throw it off.  &lt;br&gt;
just what are you trying to do anyway?</description>
    </item>
    <item>
      <pubDate>Tue, 17 Jun 2008 14:34:02 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#437900</link>
      <author>ken </author>
      <description>&quot;David &quot; &amp;lt;dave@bigcompany.com&amp;gt; wrote in message &amp;lt;g383c1&lt;br&gt;
$92q$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&lt;br&gt;
&amp;gt; with the set of parameters giving you the problem this is &lt;br&gt;
&amp;gt; where your error really is:&lt;br&gt;
&amp;gt;         y=m*(x_prime+1)+param1y; %CY(x_prime+1);&lt;br&gt;
&amp;gt;         y_prime=floor(y);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; the calculation works out that y=3.799999999999999e+001 &lt;br&gt;
&amp;gt; which floor converts to 37... so it never gets past that &lt;br&gt;
&amp;gt; point, eventually it probably runs out of memory as its &lt;br&gt;
&amp;gt; stuck in an infinite loop building the array.  overall &lt;br&gt;
the &lt;br&gt;
&amp;gt; code looks way over complicated for drawing a line, and &lt;br&gt;
as &lt;br&gt;
&amp;gt; too many chances for things like this to throw it off.  &lt;br&gt;
&amp;gt; just what are you trying to do anyway?&lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
:P...I'd notice about that and more explicitly state &lt;br&gt;
problems.&lt;br&gt;
&lt;br&gt;
And thanks, David.&lt;br&gt;
I have done a Computed Tomography simulation code few weeks &lt;br&gt;
ago, and have encountered this problem....it rarely happens &lt;br&gt;
and happened.&lt;br&gt;
&lt;br&gt;
Any idea to rectify such embarrassment or anyone knows any &lt;br&gt;
related function in MATLAB could do line-pixel mapping? Or &lt;br&gt;
to look for Line-drawing algorithms?&lt;br&gt;
&lt;br&gt;
Regards and thanks in advance.</description>
    </item>
    <item>
      <pubDate>Tue, 17 Jun 2008 15:39:01 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#437915</link>
      <author>David </author>
      <description>&quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message &lt;br&gt;
&amp;lt;g38i0q$gk$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;David &quot; &amp;lt;dave@bigcompany.com&amp;gt; wrote in message &amp;lt;g383c1&lt;br&gt;
&amp;gt; $92q$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; with the set of parameters giving you the problem this &lt;br&gt;
is &lt;br&gt;
&amp;gt; &amp;gt; where your error really is:&lt;br&gt;
&amp;gt; &amp;gt;         y=m*(x_prime+1)+param1y; %CY(x_prime+1);&lt;br&gt;
&amp;gt; &amp;gt;         y_prime=floor(y);&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; the calculation works out that &lt;br&gt;
y=3.799999999999999e+001 &lt;br&gt;
&amp;gt; &amp;gt; which floor converts to 37... so it never gets past &lt;br&gt;
that &lt;br&gt;
&amp;gt; &amp;gt; point, eventually it probably runs out of memory as &lt;br&gt;
its &lt;br&gt;
&amp;gt; &amp;gt; stuck in an infinite loop building the array.  overall &lt;br&gt;
&amp;gt; the &lt;br&gt;
&amp;gt; &amp;gt; code looks way over complicated for drawing a line, &lt;br&gt;
and &lt;br&gt;
&amp;gt; as &lt;br&gt;
&amp;gt; &amp;gt; too many chances for things like this to throw it &lt;br&gt;
off.  &lt;br&gt;
&amp;gt; &amp;gt; just what are you trying to do anyway?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; :P...I'd notice about that and more explicitly state &lt;br&gt;
&amp;gt; problems.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; And thanks, David.&lt;br&gt;
&amp;gt; I have done a Computed Tomography simulation code few &lt;br&gt;
weeks &lt;br&gt;
&amp;gt; ago, and have encountered this problem....it rarely &lt;br&gt;
happens &lt;br&gt;
&amp;gt; and happened.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Any idea to rectify such embarrassment or anyone knows &lt;br&gt;
any &lt;br&gt;
&amp;gt; related function in MATLAB could do line-pixel mapping? &lt;br&gt;
Or &lt;br&gt;
&amp;gt; to look for Line-drawing algorithms?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Regards and thanks in advance.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
the matlab file exchange is a good place to start.  here &lt;br&gt;
are a couple along those lines.&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/loadFil&quot;&gt;http://www.mathworks.com/matlabcentral/fileexchange/loadFil&lt;/a&gt;&lt;br&gt;
e.do?objectId=17658&amp;objectType=File&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/loadFil&quot;&gt;http://www.mathworks.com/matlabcentral/fileexchange/loadFil&lt;/a&gt;&lt;br&gt;
e.do?objectId=13397&amp;objectType=file&lt;br&gt;
&lt;br&gt;
and there are probably more there... and google sometimes &lt;br&gt;
will find good stuff also.</description>
    </item>
    <item>
      <pubDate>Wed, 18 Jun 2008 06:34:01 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#438035</link>
      <author>ken </author>
      <description>&quot;Jos &quot; &amp;lt;DELjos@jasenDEL.nl&amp;gt; wrote in message &lt;br&gt;
&amp;lt;g3820v$slj$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message&lt;br&gt;
&amp;gt; &amp;lt;g37urn$4eh$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Anyway however, I have an additional vague thinking as to &lt;br&gt;
argue.&lt;br&gt;
&lt;br&gt;
x=3.79999999e+001, such sorts of value would ever be &lt;br&gt;
obtained from some kind of calculation. It certainly is a &lt;br&gt;
bit of difference between 37.9999 and 38.0000 and hence &lt;br&gt;
allowable in scientific arithmetic.&lt;br&gt;
&lt;br&gt;
BUT it stored in 37.9999 double, revealed 38.0000 on some &lt;br&gt;
situations(like printout, some arithmetic, ...) and ALSO &lt;br&gt;
37.9999 on others(here - floor()).&lt;br&gt;
&lt;br&gt;
It manifests that the occasions for which floating points &lt;br&gt;
evaluations are INCONSISTENCY!?&lt;br&gt;
At least here, it is the conclusion that results of &lt;br&gt;
floating points arithmetic are not PROPER to be in &lt;br&gt;
corresponding to floor evaluations, right?&lt;br&gt;
&lt;br&gt;
Please trace the above code I posted beginning at &lt;br&gt;
x==16.0000 and starting monitoring either at program showed-&lt;br&gt;
out or at commandline evaluations, evidence there.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
and I list the trace results&lt;br&gt;
&lt;br&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
In prog:&lt;br&gt;
&lt;br&gt;
x=(y_prime+1)/m+param1x;&lt;br&gt;
&lt;br&gt;
they are internally&lt;br&gt;
15.99999999999997=(37+1)/0.26086956521739+ -&lt;br&gt;
1.296666666666667e+002&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
But in commandline:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
38/0.26086956521739&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.456666666666674e+002&lt;br&gt;
&lt;br&gt;
K&amp;gt;&amp;gt; ans-1.296666666666667e+002&lt;br&gt;
&lt;br&gt;
ans =&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;16.00000000000068&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
So... floor dead... Any comments?</description>
    </item>
    <item>
      <pubDate>Wed, 18 Jun 2008 10:01:03 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#438055</link>
      <author>David </author>
      <description>&quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message &amp;lt;g3aa8p$9f4&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;Jos &quot; &amp;lt;DELjos@jasenDEL.nl&amp;gt; wrote in message &lt;br&gt;
&amp;gt; &amp;lt;g3820v$slj$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message&lt;br&gt;
&amp;gt; &amp;gt; &amp;lt;g37urn$4eh$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Anyway however, I have an additional vague thinking as &lt;br&gt;
to &lt;br&gt;
&amp;gt; argue.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; x=3.79999999e+001, such sorts of value would ever be &lt;br&gt;
&amp;gt; obtained from some kind of calculation. It certainly is &lt;br&gt;
a &lt;br&gt;
&amp;gt; bit of difference between 37.9999 and 38.0000 and hence &lt;br&gt;
&amp;gt; allowable in scientific arithmetic.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; BUT it stored in 37.9999 double, revealed 38.0000 on &lt;br&gt;
some &lt;br&gt;
&amp;gt; situations(like printout, some arithmetic, ...) and ALSO &lt;br&gt;
&amp;gt; 37.9999 on others(here - floor()).&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; It manifests that the occasions for which floating &lt;br&gt;
points &lt;br&gt;
&amp;gt; evaluations are INCONSISTENCY!?&lt;br&gt;
&amp;gt; At least here, it is the conclusion that results of &lt;br&gt;
&amp;gt; floating points arithmetic are not PROPER to be in &lt;br&gt;
&amp;gt; corresponding to floor evaluations, right?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Please trace the above code I posted beginning at &lt;br&gt;
&amp;gt; x==16.0000 and starting monitoring either at program &lt;br&gt;
showed-&lt;br&gt;
&amp;gt; out or at commandline evaluations, evidence there.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; and I list the trace results&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;gt; In prog:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; x=(y_prime+1)/m+param1x;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; they are internally&lt;br&gt;
&amp;gt; 15.99999999999997=(37+1)/0.26086956521739+ -&lt;br&gt;
&amp;gt; 1.296666666666667e+002&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;gt; But in commandline:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; 38/0.26086956521739&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     1.456666666666674e+002&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; K&amp;gt;&amp;gt; ans-1.296666666666667e+002&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ans =&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;   16.00000000000068&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; So... floor dead... Any comments?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
not dead, just being applied in an unsafe manner.  go back &lt;br&gt;
and read the hundred or so other threads on floating point &lt;br&gt;
calculations over the last year or so.  this is well known &lt;br&gt;
and documented and any time you program with floating &lt;br&gt;
point variables you are going to see this.  this is why &lt;br&gt;
you will commonly see things like int(x+.5) or floor(x+.5) &lt;br&gt;
when converting from floats to ints just to be sure that &lt;br&gt;
single bit differences are masked.  as far as displaying &lt;br&gt;
different values in different places, this is just a &lt;br&gt;
display issue, the underlying value hasn't changed, its &lt;br&gt;
just the way it gets printed changes.  change your display &lt;br&gt;
preferences to long e or g and see what you get, all those &lt;br&gt;
little bit differences suddenly start to make your numbers &lt;br&gt;
look not so precise... but that is the world of floating &lt;br&gt;
point calculations.</description>
    </item>
    <item>
      <pubDate>Wed, 18 Jun 2008 13:00:05 -0400</pubDate>
      <title>Re: Trouble - floor() BUG? or.... merely my faults?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/171068#438078</link>
      <author>ken </author>
      <description>&quot;David &quot; &amp;lt;dave@bigcompany.com&amp;gt; wrote in message &amp;lt;g3amcv$ap4&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message &lt;br&gt;
&amp;lt;g3aa8p$9f4&lt;br&gt;
&amp;gt; $1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &quot;Jos &quot; &amp;lt;DELjos@jasenDEL.nl&amp;gt; wrote in message &lt;br&gt;
&amp;gt; &amp;gt; &amp;lt;g3820v$slj$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &quot;ken &quot; &amp;lt;ken4aver@yahoo.com.tw&amp;gt; wrote in message&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;lt;g37urn$4eh$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Anyway however, I have an additional vague thinking as &lt;br&gt;
&amp;gt; to &lt;br&gt;
&amp;gt; &amp;gt; argue.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; x=3.79999999e+001, such sorts of value would ever be &lt;br&gt;
&amp;gt; &amp;gt; obtained from some kind of calculation. It certainly is &lt;br&gt;
&amp;gt; a &lt;br&gt;
&amp;gt; &amp;gt; bit of difference between 37.9999 and 38.0000 and hence &lt;br&gt;
&amp;gt; &amp;gt; allowable in scientific arithmetic.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; BUT it stored in 37.9999 double, revealed 38.0000 on &lt;br&gt;
&amp;gt; some &lt;br&gt;
&amp;gt; &amp;gt; situations(like printout, some arithmetic, ...) and &lt;br&gt;
ALSO &lt;br&gt;
&amp;gt; &amp;gt; 37.9999 on others(here - floor()).&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; It manifests that the occasions for which floating &lt;br&gt;
&amp;gt; points &lt;br&gt;
&amp;gt; &amp;gt; evaluations are INCONSISTENCY!?&lt;br&gt;
&amp;gt; &amp;gt; At least here, it is the conclusion that results of &lt;br&gt;
&amp;gt; &amp;gt; floating points arithmetic are not PROPER to be in &lt;br&gt;
&amp;gt; &amp;gt; corresponding to floor evaluations, right?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Please trace the above code I posted beginning at &lt;br&gt;
&amp;gt; &amp;gt; x==16.0000 and starting monitoring either at program &lt;br&gt;
&amp;gt; showed-&lt;br&gt;
&amp;gt; &amp;gt; out or at commandline evaluations, evidence there.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; and I list the trace results&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;gt; &amp;gt; In prog:&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; x=(y_prime+1)/m+param1x;&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; they are internally&lt;br&gt;
&amp;gt; &amp;gt; 15.99999999999997=(37+1)/0.26086956521739+ -&lt;br&gt;
&amp;gt; &amp;gt; 1.296666666666667e+002&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br&gt;
&amp;gt; &amp;gt; But in commandline:&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; 38/0.26086956521739&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; ans =&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;     1.456666666666674e+002&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; K&amp;gt;&amp;gt; ans-1.296666666666667e+002&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; ans =&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;   16.00000000000068&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; So... floor dead... Any comments?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; not dead, just being applied in an unsafe manner.  go &lt;br&gt;
back &lt;br&gt;
&amp;gt; and read the hundred or so other threads on floating &lt;br&gt;
point &lt;br&gt;
&amp;gt; calculations over the last year or so.  this is well &lt;br&gt;
known &lt;br&gt;
&amp;gt; and documented and any time you program with floating &lt;br&gt;
&amp;gt; point variables you are going to see this.  this is why &lt;br&gt;
&amp;gt; you will commonly see things like int(x+.5) or floor&lt;br&gt;
(x+.5) &lt;br&gt;
&amp;gt; when converting from floats to ints just to be sure that &lt;br&gt;
&amp;gt; single bit differences are masked.  as far as displaying &lt;br&gt;
&amp;gt; different values in different places, this is just a &lt;br&gt;
&amp;gt; display issue, the underlying value hasn't changed, its &lt;br&gt;
&amp;gt; just the way it gets printed changes.  change your &lt;br&gt;
display &lt;br&gt;
&amp;gt; preferences to long e or g and see what you get, all &lt;br&gt;
those &lt;br&gt;
&amp;gt; little bit differences suddenly start to make your &lt;br&gt;
numbers &lt;br&gt;
&amp;gt; look not so precise... but that is the world of floating &lt;br&gt;
&amp;gt; point calculations.&lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thank you, David.&lt;br&gt;
I learn it.&lt;br&gt;
&lt;br&gt;
And I took a trial of the following statements.&lt;br&gt;
Trouble slips away!!! (to somewhere :) )&lt;br&gt;
&lt;br&gt;
y=m*x_prime+m*1+param1y;&lt;br&gt;
x=y_prime/m+1/m+param1x;&lt;br&gt;
y=m*x_prime+m*1+param1y;&lt;br&gt;
x=y_prime/m-1/m+param1x;&lt;br&gt;
&lt;br&gt;
Some sense of &quot;make a room for it&quot;.&lt;br&gt;
(and such idea inform other people if you someday also...)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Regards and appreciate&lt;br&gt;
&lt;br&gt;
Ken</description>
    </item>
  </channel>
</rss>

