equal
deleted
inserted
replaced
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
17 *) |
17 *) |
18 |
18 |
19 unit uFloat; |
19 unit uFloat; |
20 interface |
20 interface |
|
21 |
|
22 {$INCLUDE options.inc} |
21 |
23 |
22 {$IFDEF FPC} |
24 {$IFDEF FPC} |
23 {$ifdef FPC_LITTLE_ENDIAN} |
25 {$ifdef FPC_LITTLE_ENDIAN} |
24 type hwFloat = record |
26 type hwFloat = record |
25 isNegative: boolean; |
27 isNegative: boolean; |
330 |
332 |
331 {$INCLUDE SinTable.inc} |
333 {$INCLUDE SinTable.inc} |
332 |
334 |
333 function AngleSin(const Angle: Longword): hwFloat; |
335 function AngleSin(const Angle: Longword): hwFloat; |
334 begin |
336 begin |
|
337 {$IFDEF DEBUGFILE} |
|
338 TryDo((Angle >= 0) and (Angle < 2048), 'Sin param exceeds limits', true); |
|
339 {$ENDIF} |
335 AngleSin.isNegative:= false; |
340 AngleSin.isNegative:= false; |
336 if Angle < 1024 then AngleSin.QWordValue:= SinTable[Angle] |
341 if Angle < 1024 then AngleSin.QWordValue:= SinTable[Angle] |
337 else AngleSin.QWordValue:= SinTable[2048 - Angle] |
342 else AngleSin.QWordValue:= SinTable[2048 - Angle] |
338 end; |
343 end; |
339 |
344 |
340 function AngleCos(const Angle: Longword): hwFloat; |
345 function AngleCos(const Angle: Longword): hwFloat; |
341 begin |
346 begin |
|
347 {$IFDEF DEBUGFILE} |
|
348 TryDo((Angle >= 0) and (Angle < 2048), 'Cos param exceeds limits', true); |
|
349 {$ENDIF} |
342 AngleCos.isNegative:= Angle > 1024; |
350 AngleCos.isNegative:= Angle > 1024; |
343 if Angle < 1024 then AngleCos.QWordValue:= SinTable[1024 - Angle] |
351 if Angle < 1024 then AngleCos.QWordValue:= SinTable[1024 - Angle] |
344 else AngleCos.QWordValue:= SinTable[Angle - 1024] |
352 else AngleCos.QWordValue:= SinTable[Angle - 1024] |
345 end; |
353 end; |
346 |
354 |