Skip to content

Commit 694d5ec

Browse files
committed
Added the flipping decimal code to unsigned versions too
1 parent 194fffe commit 694d5ec

1 file changed

Lines changed: 12 additions & 48 deletions

File tree

GlobalCode/AltNum/MediumDec.hpp

Lines changed: 12 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,36 +2371,18 @@ namespace BlazesRusCode
23712371
self.IntValue += value;
23722372
else
23732373
{
2374-
int IntHalf = self.IntValue == MediumDec::NegativeZero ? 0 : self.IntValue;
2374+
bool WasNegative = self.IntValue < 0;
2375+
if (WasNegative)
2376+
self.IntValue = self.IntValue == MediumDec::NegativeZero ? -1 : --self.IntValue;
23752377
self.IntValue += value;
23762378
if (self.IntValue == -1)
23772379
self.IntValue = self.DecimalHalf01 == 0 ? 0 : MediumDec::NegativeZero;
23782380
else if (self.IntValue < 0)
23792381
++self.IntValue;
2382+
//If flips to other side of negative, invert the decimals
2383+
if ((WasNegative && self.IntValue >= 0) || (WasNegative == 0 && self.IntValue < 0))
2384+
self.DecimalHalf01 = MediumDec::DecimalOverflow - self.DecimalHalf01;
23802385
}
2381-
//else if(self.IntValue==NegativeZero)
2382-
//{
2383-
// if(value==1)//-0.5 + 1
2384-
// self.IntValue = 0;
2385-
// //else if(value<0)-0.5 - 1
2386-
// // self.IntValue = value;
2387-
// else//-0.5 + 2 = 1.5
2388-
// self.IntValue = value - 1;
2389-
//}
2390-
//else if(self.IntValue<0)
2391-
//{
2392-
// int ReversedIntHalf = self.IntValue*-1;
2393-
// if(value>ReversedIntHalf)//-1.5+ 3
2394-
// self.IntValue += value -1;
2395-
// else if(value==ReversedIntHalf)
2396-
// self.IntValue = NegativeZero; //-1.5 + 1
2397-
// else
2398-
// self.IntValue += value;
2399-
//}
2400-
//else
2401-
//{
2402-
// self.IntValue += value;
2403-
//}
24042386
return self;
24052387
}
24062388

@@ -2422,36 +2404,18 @@ namespace BlazesRusCode
24222404
self.IntValue -= value;
24232405
else
24242406
{
2425-
if (self.IntValue < 0)
2426-
self.IntValue = --self.IntValue;
2407+
bool WasNegative = self.IntValue < 0;
2408+
if (WasNegative)
2409+
self.IntValue = self.IntValue == MediumDec::NegativeZero ? -1 : --self.IntValue;
24272410
self.IntValue -= value;
24282411
if (self.IntValue == -1)
24292412
self.IntValue = self.DecimalHalf01 == 0 ? 0 : MediumDec::NegativeZero;
24302413
else if (self.IntValue < 0)
24312414
++self.IntValue;
2415+
//If flips to other side of negative, invert the decimals
2416+
if ((WasNegative && self.IntValue >= 0) || (WasNegative == 0 && self.IntValue < 0))
2417+
self.DecimalHalf01 = MediumDec::DecimalOverflow - self.DecimalHalf01;
24322418
}
2433-
//else if(self.IntValue==NegativeZero)
2434-
//{
2435-
// if(value==1)
2436-
// self.IntValue = 0;
2437-
// else//if(value>0)
2438-
// self.IntValue = value - 1;
2439-
//}
2440-
//else if(self.IntValue<0)
2441-
//{
2442-
// self.IntValue -= value;
2443-
//}
2444-
//else
2445-
//{
2446-
// //value to apply to get to negative zero
2447-
// int ReversedAtZero = self.IntValue+1;
2448-
// if(value>self.IntValue)//1.5-3 =-1.5
2449-
// self.IntValue -= value - 1;
2450-
// else if(value==ReversedAtZero)//1.5 - 2 = -0.5
2451-
// self.IntValue = NegativeZero;
2452-
// else
2453-
// self.IntValue -= value;
2454-
//}
24552419
return self;
24562420
}
24572421

0 commit comments

Comments
 (0)