hedgewars/uFloat.pas
changeset 1433 4af291d5d79c
parent 1124 1636a3c7c061
child 1586 2c6f1d1f43c1
equal deleted inserted replaced
1432:ab212288d34d 1433:4af291d5d79c
    97            _0_87: hwFloat = (isNegative: false; QWordValue:  3736621547);
    97            _0_87: hwFloat = (isNegative: false; QWordValue:  3736621547);
    98             _0_9: hwFloat = (isNegative: false; QWordValue:  3865470566);
    98             _0_9: hwFloat = (isNegative: false; QWordValue:  3865470566);
    99            _0_93: hwFloat = (isNegative: false; QWordValue:  3994319585);
    99            _0_93: hwFloat = (isNegative: false; QWordValue:  3994319585);
   100            _0_96: hwFloat = (isNegative: false; QWordValue:  4123168604);
   100            _0_96: hwFloat = (isNegative: false; QWordValue:  4123168604);
   101           _0_995: hwFloat = (isNegative: false; QWordValue:  4273492459);
   101           _0_995: hwFloat = (isNegative: false; QWordValue:  4273492459);
       
   102           _0_998: hwFloat = (isNegative: false; QWordValue:  4294967296);
   102           _0_999: hwFloat = (isNegative: false; QWordValue:  4290672328);
   103           _0_999: hwFloat = (isNegative: false; QWordValue:  4290672328);
   103             _1_9: hwFloat = (isNegative: false; QWordValue:  8160437862);
   104             _1_9: hwFloat = (isNegative: false; QWordValue:  8160437862);
   104               _0: hwFloat = (isNegative: false; QWordValue:           0);
   105               _0: hwFloat = (isNegative: false; QWordValue:           0);
   105               _1: hwFloat = (isNegative: false; QWordValue:  4294967296);
   106               _1: hwFloat = (isNegative: false; QWordValue:  4294967296);
   106             _1_5: hwFloat = (isNegative: false; QWordValue:  4294967296 * 3 div 2);
   107             _1_5: hwFloat = (isNegative: false; QWordValue:  4294967296 * 3 div 2);
   276 hwAbs.isNegative:= false
   277 hwAbs.isNegative:= false
   277 end;
   278 end;
   278 
   279 
   279 function hwSqr(const t: hwFloat): hwFloat;
   280 function hwSqr(const t: hwFloat): hwFloat;
   280 begin
   281 begin
   281 hwSqr.isNegative:=false;
   282 hwSqr.isNegative:= false;
   282 hwSqr.QWordValue:= QWord(t.Round) * t.Frac * 2 + ((QWord(t.Frac) * t.Frac) shr 32);
   283 hwSqr.QWordValue:=
   283 hwSqr.Round:= hwSqr.Round + t.Round * t.Round
   284 	  ((QWord(t.Round) * t.Round) shl 32)
       
   285 	+ QWord(t.Round) * t.Frac * 2
       
   286 	+ ((QWord(t.Frac) * t.Frac) shr 32);
   284 end;
   287 end;
   285 
   288 
   286 function hwSqrt(const t: hwFloat): hwFloat;
   289 function hwSqrt(const t: hwFloat): hwFloat;
   287 var l, r: QWord;
   290 var l, r: QWord;
   288     c: hwFloat;
   291     c: hwFloat;