Xref: utzoo comp.sys.m68k:917 comp.unix.questions:7650 misc.wanted:2454 comp.misc:2633 Path: utzoo!attcan!uunet!husc6!bloom-beacon!tut.cis.ohio-state.edu!mailrus!purdue!decwrl!hplabs!hp-sdd!ucsdhub!jack!elgar!ford From: ford@elgar.UUCP (Mike "Ford" Ditto) Newsgroups: comp.sys.m68k,comp.unix.questions,misc.wanted,comp.misc Subject: Re: Help needed w/Mc68881 Keywords: 68881 Message-ID: <186@elgar.UUCP> Date: 17 Jun 88 04:29:32 GMT References: <1143@csustan.UUCP> Reply-To: ford@kenobi.cts.com (Mike "Ford" Ditto) Distribution: na Organization: Omnicron Data Systems, Bonita, CA Lines: 31 In article <1143@csustan.UUCP> robert@csustan.UUCP (Robert Zeff) writes: > > Hi. I have a Tektronix 4301 (BSD4.2) with GreenHill C compiler >and need to put the 68881 coprocessor into extended precision mode. > The function "setfp ()" is suppossed to be able to change the 68881 >to single (24 bit), double (53 bit) or extended (64 bit) precision >mode. I can set it to single or double, but setting it to extended >still gives me 53 bit precision. Anyone have a clue? Assuming that this setfp function sets the "rounding precision" of the 881, this just affects the accuracy with which the numbers will be stored into floating-point registers. The calculations are *always* done in extended precision, and if you are writing in C, the results are *always* returned in single or double precision. The purpose of the rounding precision feature of the 881 is to allow correct execution of software which can not deal with the "extra" accuracy of the 68881 (IEEE only specifies the "double" precision; the fact that the 881 internally does calculations with more accuracy is a "bonus" that actually breaks some programs). If you are trying to define an extended precision data type in C, you will have to modify your compiler. -=] Ford [=- "Once there were parking lots, (In Real Life: Mike Ditto) now it's a peaceful oasis. ford@kenobi.cts.com This was a Pizza Hut, ...!sdcsvax!crash!kenobi!ford now it's all covered with daisies." -- Talking Heads