Re: [vox-tech] c program in linux vs sgi
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [vox-tech] c program in linux vs sgi
On Sat, 18 Nov 2000 jdnewmil@dcn.davis.ca.us wrote:
> On Sat, 18 Nov 2000, Qinghua Zhong wrote:
>
> > hello, I am trying to compile and run one program in linux and sgi.
> > some problems come up and I don't understand.
>
> > 1) when I am running the program in linux, there is a "core" file created,
> > but never happen in sgi. so if I have a big calculation, core is very
> > large and it stop running in linux because of "core dumped".
>
> Sounds like a portability problem. Hard to diagnose from this
> description. Try running gdb under linux to find the problem code, and
> learn how to avoid that portability problem in the future.
if you don't know gdb, you can read my gdb tutorial:
http://landau.ucdavis.edu/p/linux/gdb/gdb_welcome.html
don't write another line of C until you know the basics of gdb. the time
you put into learning it will pay off big time in the future.
> > 2) if condition problem-->never happend in sgi machines again.
>
> I don't understand this phrase.
i think he meant that .55 == (double)55 / (double)100 on sgi, but not on
linux.
> > x is 0.55 (double variable)
> > y is 55 (int variable), z is 100 (int variable)
> > (x == (double) y / (double) z) returns false.
> > how come?
>
> It is rarely a good idea to compare floating point values directly, since
> round-off error can make numbers that appear to be the same, not the same.
> I suspect that in your case, x is equal to 0.55 plus some very very small
> difference from (double)55/100, but you just typed what was printed on
> your screen. Putting a literal constant 0.55 in place of x, gcc on linux
> shows this test returning true for me.
not much to add; pretty much sums it up.
pete
|