From: gpt20 AT thor DOT cam DOT ac DOT uk (G.P. Tootell) Newsgroups: comp.os.msdos.djgpp Subject: Re: Optimization Date: 29 Nov 1996 10:59:02 GMT Organization: University of Cambridge, England Lines: 20 Sender: gpt20 AT hammer DOT thor DOT cam DOT ac DOT uk (G.P. Tootell) Message-ID: <57mflm$bta@lyra.csx.cam.ac.uk> References: <57hg9b$or5 AT kannews DOT ca DOT newbridge DOT com> <329C4CD4 DOT 7474 AT cornell DOT edu> <329C62F6 DOT 23F6 AT stud DOT warande DOT ruu DOT nl> <329E2E2B DOT 3D02 AT gbrmpa DOT gov DOT au> NNTP-Posting-Host: hammer.thor.cam.ac.uk To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp |> Actually, this is even faster if you: |> c = 1 / (x * y); |> a1 = b1 * c; |> a2 = b2 * c; |> a3 = b3 * c; |> A divide takes 39 cycles on a normal double divide, a mul takes 3 |> cycles. |> Using your method, you have 3 divides (117 cycles) and one mul for 120 |> cycles. |> Using the second method, you have 39 + 9 cycles, or 48... :) |> |> Leathal. except you forgot that if c isn't a float then you may well round the value of c down so much as to adversely affect the calculation of a1-3. and if c is a float then the code probably becomes slower than before i dunno. nik --