Skip to content

Commit e027e7c

Browse files
committed
Fixed addition/subtraction operations and simplified them
1 parent f14e32f commit e027e7c

2 files changed

Lines changed: 44 additions & 350 deletions

File tree

GlobalCode/AltNum/AltNumDebug.hpp

Lines changed: 0 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -370,99 +370,4 @@ namespace BlazesRusDebug
370370
{
371371
return LnTestRef(fvalue, value);
372372
}
373-
374-
/*
375-
/// <summary>
376-
/// Natural log
377-
/// </summary>
378-
/// <param name="value">The target value.</param>
379-
static MediumDec LnV2(MediumDec value)
380-
{
381-
//if (value <= 0) {}else//Error if equal or less than 0
382-
if (value == MediumDec::One)
383-
return MediumDec::Zero;
384-
385-
//if (value.IntValue == 0)//Returns a negative number derived from (http://www.netlib.org/cephes/qlibdoc.html#qlog)
386-
//{//Example:0.5
387-
// MediumDec W = (value - 1) / (value + 1);//(-0.5)/(1.5)=-1/3
388-
// MediumDec TotalRes = W;
389-
// W.SwapNegativeStatus();
390-
// MediumDec AddRes;
391-
// int WPow = 3;
392-
// do
393-
// {
394-
// AddRes = MediumDec::PowRef(W, WPow) / WPow;
395-
// TotalRes -= AddRes;
396-
// WPow += 2;
397-
// } while (AddRes > MediumDec::JustAboveZero);//Total Result should be -0.346573590279972654708616060729088284037750067180127627060340004746696810984847357802931663498209344
398-
// return TotalRes * 2;//Should result in -0.693147180559
399-
//}
400-
//if (value.IntValue == 0 && value.DecimalHalf01 > 500000000)//Ln[X] Power series from http://hyperphysics.phy-astr.gsu.edu/hbase/Math/lnseries.html
401-
//{//Example:0.75
402-
// MediumDec AddRes;
403-
// MediumDec W = (value - 1) / value;//-.25/0.75 = -1/3
404-
// MediumDec TotalRes = W;
405-
// MediumDec LastPow = W;
406-
// int WPow = 2;
407-
// do
408-
// {
409-
// LastPow *= W;
410-
// AddRes = LastPow / WPow;//MediumDec::PowRef(W, WPow) / WPow;
411-
// TotalRes += AddRes;
412-
// ++WPow;
413-
// } while (MediumDec::Abs(AddRes) > MediumDec::JustAboveZero);
414-
// return TotalRes;//Should result in -0.287682072451780927439219005993827431503509710897761056506665685349292950720780464338110899179105286
415-
//}
416-
if (value.IntValue == 0)
417-
{
418-
if(value.DecimalHalf01 > 500000000)//Ln[X] Power series from http://hyperphysics.phy-astr.gsu.edu/hbase/Math/lnseries.html
419-
{
420-
//-1/3 + 2/9 - 3/27 + 4/81 - 5/243 + 6/729 - 7/2187 + 8/6561 =
421-
}
422-
423-
//Ln(1+x=value at .25) = Ln(x-1) || Ln(x) || Result
424-
//Ln(.75) = -0.287682072451780927439219005993827431503509710897761056506665685349292950720780464338110899179105286
425-
//value = x - 1 => value + 1 = x
426-
427-
}
428-
else if (value.IntValue==1)//Threshold between 0 and 2 based on Taylor code series from https://stackoverflow.com/questions/26820871/c-program-which-calculates-ln-for-a-given-variable-x-without-using-any-ready-f
429-
{//This section gives accurate answer(for values between 1 and 2)
430-
MediumDec threshold = MediumDec::FiveMillionth;
431-
MediumDec base = value - 1; // Base of the numerator; exponent will be explicit
432-
int den = 1; // Denominator of the nth term
433-
bool posSign = true; // Used to swap the sign of each term
434-
MediumDec term = base; // First term
435-
MediumDec prev; // Previous sum
436-
MediumDec result = term; // Kick it off
437-
438-
do
439-
{
440-
den++;
441-
posSign = !posSign;
442-
term *= base;
443-
prev = result;
444-
if (posSign)
445-
result += term / den;
446-
else
447-
result -= term / den;
448-
} while (MediumDec::Abs(prev - result) > threshold);
449-
450-
return result;
451-
}
452-
else//Returns a positive value(http://www.netlib.org/cephes/qlibdoc.html#qlog)
453-
{//Increasing iterations brings closer to accurate result(Larger numbers need more iterations to get accurate level of result)
454-
MediumDec W = (value - 1) / (value + 1);
455-
MediumDec TotalRes = W;
456-
MediumDec AddRes;
457-
//for (int WPow = 3; AddRes > MediumDec::JustAboveZero; WPow += 2)
458-
int WPow = 3;
459-
do
460-
{
461-
AddRes = MediumDec::PowRef(W, WPow) / WPow;
462-
TotalRes += AddRes; WPow += 2;
463-
} while (AddRes > MediumDec::JustAboveZero);
464-
return TotalRes * 2;
465-
}
466-
}
467-
*/
468373
}

0 commit comments

Comments
 (0)