Skip to content

Commit 712e7db

Browse files
committed
(lambda_enhancements) eliminate extraneous exit points in functions
1 parent 46be3e2 commit 712e7db

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

src/BaseStar.cpp

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,33 +1093,36 @@ double BaseStar::CalculateLambdaLoveridgeEnergyFormalism(const double p_EnvMass,
10931093
* @return Common envelope lambda parameter
10941094
*/
10951095
double BaseStar::EvaluateLambdaNanjing() const {
1096+
10961097
double mass = m_MZAMS;
1098+
double lambda = 0.0;
10971099
if (OPTIONS->CommonEnvelopeLambdaNanjingUseRejuvenatedMass()) {mass = m_Mass0;} // Use rejuvenated mass to calculate lambda instead of true birth mass
10981100

10991101
if (OPTIONS->CommonEnvelopeLambdaNanjingEnhanced()) { // If using enhanced Nanjing lambda's
11001102
if (OPTIONS->CommonEnvelopeLambdaNanjingInterpolateInMass()) {
11011103
if (OPTIONS->CommonEnvelopeLambdaNanjingInterpolateInMetallicity()) {
1102-
return BaseStar::CalculateMassAndZInterpolatedLambdaNanjing(mass, m_Metallicity);
1104+
lambda = BaseStar::CalculateMassAndZInterpolatedLambdaNanjing(mass, m_Metallicity);
11031105
}
11041106
else {
11051107
int Zind = 0;
11061108
if (utils::Compare(m_Metallicity, LAMBDA_NANJING_ZLIMIT) < 0) {Zind = 0;} else {Zind = 1;}
1107-
return BaseStar::CalculateMassInterpolatedLambdaNanjing(mass, Zind);
1109+
lambda = BaseStar::CalculateMassInterpolatedLambdaNanjing(mass, Zind);
11081110
}
11091111
}
11101112
else {
11111113
int massInd = BaseStar::FindLambdaNanjingNearestMassIndex(mass); // Do not interpolate in mass, so need to use nearest mass bin
11121114
if (OPTIONS->CommonEnvelopeLambdaNanjingInterpolateInMetallicity()) {
1113-
return BaseStar::CalculateZInterpolatedLambdaNanjing(m_Metallicity, massInd);
1115+
lambda = BaseStar::CalculateZInterpolatedLambdaNanjing(m_Metallicity, massInd);
11141116
}
11151117
else {
11161118
int Zind = 0;
11171119
if (utils::Compare(m_Metallicity, LAMBDA_NANJING_ZLIMIT) < 0) {Zind = 0;} else {Zind = 1;}
1118-
return BaseStar::CalculateLambdaNanjingEnhanced(massInd, Zind);
1120+
lambda = BaseStar::CalculateLambdaNanjingEnhanced(massInd, Zind);
11191121
}
11201122
}
11211123
}
1122-
else { return CalculateLambdaNanjing(mass, m_Metallicity); }
1124+
else { lambda = CalculateLambdaNanjing(mass, m_Metallicity); }
1125+
return lambda
11231126
}
11241127

11251128

@@ -1133,18 +1136,20 @@ double BaseStar::EvaluateLambdaNanjing() const {
11331136
*/
11341137
double BaseStar::CalculateMassAndZInterpolatedLambdaNanjing(const double p_Mass, const double p_Z) const {
11351138

1139+
double lambda = 0.0;
11361140
if (utils::Compare(m_Metallicity, LAMBDA_NANJING_POPII_Z) < 0) {
1137-
return BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 0); // Use lambda for pop. II metallicity
1141+
lambda = BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 0); // Use lambda for pop. II metallicity
11381142
}
11391143
else if (utils::Compare(m_Metallicity, LAMBDA_NANJING_POPI_Z) > 0) {
1140-
return BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 1); // Use lambda for pop. I metallicity
1144+
lambda = BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 1); // Use lambda for pop. I metallicity
11411145
}
1142-
else { // Linear interpolation in logZ between pop. I and pop. II metallicities
1146+
else { // Linear interpolation in logZ between pop. I and pop. II metallicities
11431147
const double logZ = log(m_Metallicity);
11441148
double lambdaLow = BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 0);
11451149
double lambdaUp = BaseStar::CalculateMassInterpolatedLambdaNanjing(p_Mass, 1);
1146-
return lambdaLow + (logZ - LAMBDA_NANJING_POPII_LOGZ) / (LAMBDA_NANJING_POPI_LOGZ - LAMBDA_NANJING_POPII_LOGZ) * (lambdaUp - lambdaLow);
1150+
lambda = lambdaLow + (logZ - LAMBDA_NANJING_POPII_LOGZ) / (LAMBDA_NANJING_POPI_LOGZ - LAMBDA_NANJING_POPII_LOGZ) * (lambdaUp - lambdaLow);
11471151
}
1152+
return lambda
11481153
}
11491154

11501155

@@ -1160,23 +1165,25 @@ double BaseStar::CalculateMassAndZInterpolatedLambdaNanjing(const double p_Mass,
11601165
*/
11611166
double BaseStar::CalculateMassInterpolatedLambdaNanjing(const double p_Mass, const int p_Zind) const {
11621167

1168+
double lambda = 0.0;
11631169
std::vector<int> ind = utils::binarySearch(NANJING_MASSES, p_Mass);
11641170
int low = ind[0];
11651171
int up = ind[1];
11661172
if ( (low < 0) && (up >= 0) ) { // Mass below range calculated by Xu & Li (2010)
1167-
return CalculateLambdaNanjingEnhanced(0, p_Zind); // Use lambda for minimum mass
1173+
lambda = CalculateLambdaNanjingEnhanced(0, p_Zind); // Use lambda for minimum mass
11681174
}
11691175
else if ( (low >= 0) && (up < 0) ) { // Mass above range calculated by Xu & Li (2010)
1170-
return CalculateLambdaNanjingEnhanced(NANJING_MASSES.size() - 1, p_Zind); // Use lambda for maximum mass
1176+
lambda = CalculateLambdaNanjingEnhanced(NANJING_MASSES.size() - 1, p_Zind); // Use lambda for maximum mass
11711177
}
11721178
else if (low == up) { // Mass is exactly equal to the mass of a model evolved by Xu & Li (2010)
1173-
return CalculateLambdaNanjingEnhanced(low, p_Zind);
1179+
lambda = CalculateLambdaNanjingEnhanced(low, p_Zind);
11741180
}
11751181
else { // Linear interpolation between upper and lower mass bins
11761182
double lambdaLow = CalculateLambdaNanjingEnhanced(low, p_Zind);
11771183
double lambdaUp = CalculateLambdaNanjingEnhanced(up, p_Zind);
1178-
return lambdaLow + (p_Mass - NANJING_MASSES[low]) / (NANJING_MASSES[up] - NANJING_MASSES[low]) * (lambdaUp - lambdaLow);
1184+
lambda = lambdaLow + (p_Mass - NANJING_MASSES[low]) / (NANJING_MASSES[up] - NANJING_MASSES[low]) * (lambdaUp - lambdaLow);
11791185
}
1186+
return lambda
11801187
}
11811188

11821189

@@ -1192,18 +1199,20 @@ double BaseStar::CalculateMassInterpolatedLambdaNanjing(const double p_Mass, con
11921199
*/
11931200
double BaseStar::CalculateZInterpolatedLambdaNanjing(const double p_Z, const int p_MassInd) const {
11941201

1202+
double lambda = 0.0;
11951203
if (utils::Compare(m_Metallicity, LAMBDA_NANJING_POPII_Z) < 0) {
1196-
return CalculateLambdaNanjingEnhanced(p_MassInd, 0); // Use lambda for pop. II metallicity
1204+
lambda = CalculateLambdaNanjingEnhanced(p_MassInd, 0); // Use lambda for pop. II metallicity
11971205
}
11981206
else if (utils::Compare(m_Metallicity, LAMBDA_NANJING_POPI_Z) > 0) {
1199-
return CalculateLambdaNanjingEnhanced(p_MassInd, 1); // Use lambda for pop. I metallicity
1207+
lambda = CalculateLambdaNanjingEnhanced(p_MassInd, 1); // Use lambda for pop. I metallicity
12001208
}
1201-
else { // Linear interpolation in logZ between pop. I and pop. II metallicities
1209+
else { // Linear interpolation in logZ between pop. I and pop. II metallicities
12021210
const double logZ = log(m_Metallicity);
12031211
double lambdaLow = CalculateLambdaNanjingEnhanced(p_MassInd, 0);
12041212
double lambdaUp = CalculateLambdaNanjingEnhanced(p_MassInd, 1);
1205-
return lambdaLow + (logZ - LAMBDA_NANJING_POPII_LOGZ) / (LAMBDA_NANJING_POPI_LOGZ - LAMBDA_NANJING_POPII_LOGZ) * (lambdaUp - lambdaLow);
1213+
lambda = lambdaLow + (logZ - LAMBDA_NANJING_POPII_LOGZ) / (LAMBDA_NANJING_POPI_LOGZ - LAMBDA_NANJING_POPII_LOGZ) * (lambdaUp - lambdaLow);
12061214
}
1215+
return lambda
12071216
}
12081217

12091218

0 commit comments

Comments
 (0)