Thread View: comp.sys.transputer
1 messages
1 total messages
Started by Steven Huggins
Fri, 26 Apr 1991 15:16
Programming in C
Author: Steven Huggins
Date: Fri, 26 Apr 1991 15:16
Date: Fri, 26 Apr 1991 15:16
49 lines
2392 bytes
2392 bytes
The program in an article by <choudhry%mojo.uucp@mimsy.umd.edu (Zafar Ullah Choudhry)>, has been causing quite some activity. The situation is as follows: a) if the program is compiled under K & R C ( 1st edition ) you will obtain the answers that were supposed to be expected, viz. free_l[1] = -0.000002, free_l[2] = 0.000007. What happens is that the expression freea[8] * (we * yin[nsite] + xdin[nsite]); is calculated in double precision before being cast ( behind your back ) to float. b) if the program is compiled under ANSI C, you will obtain the answers 0.0, 0.0. c) if the variables are changed from float to double, and the program is then compiled under ANSI C, you will obtain the answers free_l[1] = 0.000008, free_l[2] = -0.000033. Using the UNIX utility "bc", which is a very-large-precision calculator, you can find the truely CORRECT results, viz. free_l[1] = 0.0000084732152942240, free_l[2] = -0.000032726107192564. Even a hand-held calculator gives rounded versions of these values. Doing the calculation in ANSI C is THE way to do it, and in double precision if you are in any way interested in accuracy. Note that the values given as the ones that were expected in the original posting are completely WRONG, even the sign of them is wrong. Lesson: avoid K & R C; use ANSI C. NOTE: that all of this has absolutely nothing to do with transputers, but is simply a C language issue. P.S. Contact your local SGS-THOMSON/INMOS dealer if you want to buy the INMOS ANSI C toolset for transputers. It has been validated as conformant with ANSI C by the British Standards Institute. -------------------------------------------------------------------------- Steven R Huggins, Software Development Group, INMOS Ltd., 1000 Aztec West, Almondsbury, Bristol, United Kingdom. BS12 4SQ Tel: 0454 616616 INTERNET: steveh@inmos.com JANET and UK source: steveh@uk.co.inmos Other possibility: steveh@inmos.co.uk
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads