mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[poincare] Clean magic numbers in Unit
This commit is contained in:
@@ -773,7 +773,14 @@ public:
|
||||
static void ChooseBestRepresentativeAndPrefixForValue(Expression * units, double * value, ExpressionNode::ReductionContext reductionContext) { return ChooseBestMultipleForValue(units, value, true, reductionContext); }
|
||||
static void ChooseBestPrefixForValue(Expression * units, double * value, ExpressionNode::ReductionContext reductionContext) { return ChooseBestMultipleForValue(units, value, false, reductionContext); }
|
||||
|
||||
// This could be computed from the time representatives but we save time by using constexpr double
|
||||
static constexpr double SecondsPerMinute = 60.0;
|
||||
private:
|
||||
static constexpr double MinutesPerHour = 60.0;
|
||||
static constexpr double HoursPerDay = 24.0;
|
||||
static constexpr double DaysPerYear = 365.25;
|
||||
static constexpr double MonthPerYear = 12.0;
|
||||
static constexpr double DaysPerMonth = DaysPerYear/MonthPerYear;
|
||||
UnitNode * node() const { return static_cast<UnitNode *>(Expression::node()); }
|
||||
static void ChooseBestMultipleForValue(Expression * units, double * value, bool tuneRepresentative, ExpressionNode::ReductionContext reductionContext);
|
||||
void chooseBestMultipleForValue(double * value, const int exponent, bool tuneRepresentative, ExpressionNode::ReductionContext reductionContext);
|
||||
|
||||
@@ -452,8 +452,7 @@ Expression Unit::BuildTimeSplit(double seconds, Context * context, Preferences::
|
||||
double remain = std::round(seconds*err)/err;
|
||||
|
||||
constexpr static int numberOfTimeUnits = 6;
|
||||
// This could be computed from the time representatives but we same time by using constexpr double
|
||||
constexpr static double timeFactors[numberOfTimeUnits] = {365.25*24.0*60.0*60.0, 365.25/12.0*24.0*60.0*60.0, 24.0*60.0*60.0, 60.0*60.0, 60.0, 1.0 };
|
||||
constexpr static double timeFactors[numberOfTimeUnits] = {MonthPerYear*DaysPerMonth*HoursPerDay*MinutesPerHour*SecondsPerMinute, DaysPerMonth*HoursPerDay*MinutesPerHour*SecondsPerMinute, HoursPerDay*MinutesPerHour*SecondsPerMinute, MinutesPerHour*SecondsPerMinute, SecondsPerMinute, 1.0 };
|
||||
Unit units[numberOfTimeUnits] = {Unit::Year(), Unit::Month(), Unit::Day(), Unit::Hour(), Unit::Minute(), Unit::Second() };
|
||||
double valuesPerUnit[numberOfTimeUnits];
|
||||
Addition a = Addition::Builder();
|
||||
|
||||
Reference in New Issue
Block a user