mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-14 00:28:42 +00:00
PMCData: Add expected data
This commit is contained in:
@@ -258,7 +258,7 @@ void PMCData::refresh()
|
||||
|
||||
if (!std::isinf(value) && !std::isnan(value)) {
|
||||
stress_[offset] += value;
|
||||
qDebug()<<"stress_["<<offset<<"] :"<<stress_[offset];
|
||||
//qDebug()<<"stress_["<<offset<<"] :"<<stress_[offset];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -280,7 +280,7 @@ void PMCData::refresh()
|
||||
|
||||
if (!std::isinf(value) && !std::isnan(value)) {
|
||||
planned_stress_[offset] += value;
|
||||
qDebug()<<"planned_stress_["<<offset<<"] :"<<planned_stress_[offset]<<item->fileName;
|
||||
//qDebug()<<"planned_stress_["<<offset<<"] :"<<planned_stress_[offset]<<item->fileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,6 +298,11 @@ void PMCData::refresh()
|
||||
|
||||
double planned_rollingStress=0;
|
||||
|
||||
double expected_lastLTS=0.0f;
|
||||
double expected_lastSTS=0.0f;
|
||||
|
||||
double expected_rollingStress=0;
|
||||
|
||||
for(int day=0; day < days_; day++) {
|
||||
|
||||
// not seeded
|
||||
@@ -354,10 +359,6 @@ void PMCData::refresh()
|
||||
planned_sts_[day] *= -1;
|
||||
}
|
||||
|
||||
qDebug()<<"planned_stress_["<<day<<"] :"<<planned_stress_[day];
|
||||
qDebug()<<"planned_lts_["<<day<<"] :"<<planned_lts_[day];
|
||||
qDebug()<<"planned_sts_["<<day<<"] :"<<planned_sts_[day];
|
||||
|
||||
// rolling stress for STS days
|
||||
if (day && day <= stsDays_) {
|
||||
// just starting out
|
||||
@@ -373,6 +374,76 @@ void PMCData::refresh()
|
||||
// We allow it to be shown today or tomorrow where
|
||||
// most (sane/thinking) folks usually show SB on the following day
|
||||
planned_sb_[day+(sbToday ? 0 : 1)] = planned_lts_[day] - planned_sts_[day];
|
||||
|
||||
// ********************
|
||||
// **** EXPECTED ****
|
||||
// ********************
|
||||
|
||||
if (start_.addDays(day).daysTo(QDate::currentDate())<0) {
|
||||
double lastLts = 0.0;
|
||||
double lastSts = 0.0;
|
||||
double ltsAtStsDays1 = 0.0;
|
||||
double ltsAtStsDays2 = 0.0;
|
||||
|
||||
if (day) {
|
||||
if (start_.addDays(day).daysTo(QDate::currentDate())<-1) {
|
||||
lastLts = expected_lts_[day-1];
|
||||
lastSts = expected_sts_[day-1];
|
||||
} else {
|
||||
lastLts = lts_[day-1];
|
||||
lastSts = sts_[day-1];
|
||||
}
|
||||
if (day <= stsDays_) {
|
||||
if (start_.addDays(day).daysTo(QDate::currentDate())<-1-stsDays_) {
|
||||
ltsAtStsDays1 = expected_lts_[day-stsDays_-1];
|
||||
} else {
|
||||
ltsAtStsDays1 = lts_[day-stsDays_-1];
|
||||
}
|
||||
|
||||
if (start_.addDays(day).daysTo(QDate::currentDate())<-stsDays_) {
|
||||
ltsAtStsDays2 = expected_lts_[day-stsDays_];
|
||||
} else {
|
||||
ltsAtStsDays2 = lts_[day-stsDays_];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// not seeded
|
||||
if (expected_lts_[day] >=0 || expected_sts_[day]>=0) {
|
||||
// LTS
|
||||
expected_lts_[day] = (planned_stress_[day] * (1.0 - lte)) + (lastLts * lte);
|
||||
|
||||
// STS
|
||||
expected_sts_[day] = (planned_stress_[day] * (1.0 - ste)) + (lastSts * ste);
|
||||
|
||||
} else if (expected_lts_[day]< 0 || expected_sts_[day]<0) {
|
||||
expected_lts_[day] *= -1;
|
||||
expected_sts_[day] *= -1;
|
||||
}
|
||||
|
||||
// rolling stress for STS days
|
||||
if (day && day <= stsDays_) {
|
||||
// just starting out
|
||||
expected_rollingStress += expected_lts_[day] - lastLts;
|
||||
expected_rr_[day] = expected_rollingStress;
|
||||
} else if (day) {
|
||||
expected_rollingStress += expected_lts_[day] - lastLts;
|
||||
expected_rollingStress -= ltsAtStsDays2 - ltsAtStsDays1;
|
||||
expected_rr_[day] = expected_rollingStress;
|
||||
}
|
||||
|
||||
// SB (stress balance) long term - short term
|
||||
// We allow it to be shown today or tomorrow where
|
||||
// most (sane/thinking) folks usually show SB on the following day
|
||||
expected_sb_[day+(sbToday ? 0 : 1)] = expected_lts_[day] - expected_sts_[day];
|
||||
} else {
|
||||
expected_lts_[day] = 0;
|
||||
expected_sts_[day] = 0;
|
||||
expected_sb_[day] = 0;
|
||||
expected_rr_[day] = 0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//qDebug()<<"refresh PMC in="<<timer.elapsed()<<"ms";
|
||||
|
||||
Reference in New Issue
Block a user