From 9ddf8d48437389497855b59bb5edc65098f15eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Fri, 9 Aug 2019 15:19:03 +0200 Subject: [PATCH] [apps/proba] Fix Student and Chi2 parameter name and initialisation --- apps/probability/base.de.i18n | 2 +- apps/probability/base.en.i18n | 2 +- apps/probability/base.es.i18n | 2 +- apps/probability/base.fr.i18n | 2 +- apps/probability/base.pt.i18n | 2 +- apps/probability/law/chi_squared_law.cpp | 14 +++++++------- apps/probability/law/chi_squared_law.h | 4 ++-- apps/probability/law/student_law.cpp | 4 ++-- apps/probability/law/student_law.h | 4 ++-- apps/shared.universal.i18n | 1 + 10 files changed, 19 insertions(+), 18 deletions(-) diff --git a/apps/probability/base.de.i18n b/apps/probability/base.de.i18n index 46db06ba8..afe497e89 100644 --- a/apps/probability/base.de.i18n +++ b/apps/probability/base.de.i18n @@ -22,5 +22,5 @@ LambdaExponentialDefinition = "λ: Parameter" MeanDefinition = "μ: Erwartungswert" DeviationDefinition = "σ: Standardabweichung" LambdaPoissonDefinition = "λ: Parameter" -DegreesOfFreedomDefinition = "d : Freiheitsgraden" +DegreesOfFreedomDefinition = "k: Anzahl der Freiheitsgrade" ComputeProbability = "Wahrscheinlichkeit berechnen" diff --git a/apps/probability/base.en.i18n b/apps/probability/base.en.i18n index de924d416..0d4e9b7c6 100644 --- a/apps/probability/base.en.i18n +++ b/apps/probability/base.en.i18n @@ -22,5 +22,5 @@ LambdaExponentialDefinition = "λ: Rate parameter" MeanDefinition = "μ: Mean" DeviationDefinition = "σ: Standard deviation" LambdaPoissonDefinition = "λ: Parameter" -DegreesOfFreedomDefinition = "d : Degrees of freedom" +DegreesOfFreedomDefinition = "k: Degrees of freedom" ComputeProbability = "Calculate probabilities" diff --git a/apps/probability/base.es.i18n b/apps/probability/base.es.i18n index d76b2ad7e..d184b1816 100644 --- a/apps/probability/base.es.i18n +++ b/apps/probability/base.es.i18n @@ -22,5 +22,5 @@ LambdaExponentialDefinition = "λ : Parámetro" MeanDefinition = "μ : Media" DeviationDefinition = "σ : Desviación típica" LambdaPoissonDefinition = "λ : Parámetro" -DegreesOfFreedomDefinition = "d : Grados de libertad" +DegreesOfFreedomDefinition = "k : Grados de libertad" ComputeProbability = "Calcular las probabilidades" diff --git a/apps/probability/base.fr.i18n b/apps/probability/base.fr.i18n index d74aee155..780fd51f9 100644 --- a/apps/probability/base.fr.i18n +++ b/apps/probability/base.fr.i18n @@ -22,5 +22,5 @@ LambdaExponentialDefinition = "λ : Paramètre" MeanDefinition = "μ : Espérance ou moyenne" DeviationDefinition = "σ : Écart type" LambdaPoissonDefinition = "λ : Paramètre" -DegreesOfFreedomDefinition = "d : Degrés de liberté" +DegreesOfFreedomDefinition = "k : Degrés de liberté" ComputeProbability = "Calculer les probabilités" diff --git a/apps/probability/base.pt.i18n b/apps/probability/base.pt.i18n index 1334b93b5..63484b522 100644 --- a/apps/probability/base.pt.i18n +++ b/apps/probability/base.pt.i18n @@ -22,5 +22,5 @@ LambdaExponentialDefinition = "λ : Parâmetro" MeanDefinition = "μ : Média" DeviationDefinition = "σ : Desvio padrão" LambdaPoissonDefinition = "λ : Parâmetro" -DegreesOfFreedomDefinition = "d : Graus de liberdade" +DegreesOfFreedomDefinition = "k : Graus de liberdade" ComputeProbability = "Calcular probabilidades" diff --git a/apps/probability/law/chi_squared_law.cpp b/apps/probability/law/chi_squared_law.cpp index cd1898508..5fba14496 100644 --- a/apps/probability/law/chi_squared_law.cpp +++ b/apps/probability/law/chi_squared_law.cpp @@ -14,12 +14,12 @@ float ChiSquaredLaw::xMax() const { } float ChiSquaredLaw::yMax() const { - const float halfD = m_parameter1/2; + const float halfk = m_parameter1/2; float result; - if (halfD <= 1 + FLT_EPSILON) { + if (halfk <= 1 + FLT_EPSILON) { result = 0.5f; } else { - result = coefficient() * std::pow(halfD - 1, halfD - 1); + result = coefficient() * std::pow(halfk - 1, halfk - 1); } return result * (1.0f + k_displayTopMarginRatio); } @@ -28,9 +28,9 @@ float ChiSquaredLaw::evaluateAtAbscissa(float x) const { if (x < 0) { return NAN; } - const float halfD = m_parameter1/2; + const float halfk = m_parameter1/2; const float halfX = x/2; - return coefficient() * std::pow(halfX, halfD-1) * std::exp(-halfX); + return coefficient() * std::pow(halfX, halfk-1) * std::exp(-halfX); } bool ChiSquaredLaw::authorizedValueAtIndex(float x, int index) const { @@ -57,8 +57,8 @@ double ChiSquaredLaw::cumulativeDistributiveInverseForProbability(double * proba } float ChiSquaredLaw::coefficient() const { - const float halfD = m_parameter1/2; - return 1 / (2 * std::exp(std::lgamma(halfD))); + const float halfk = m_parameter1/2; + return 1 / (2 * std::exp(std::lgamma(halfk))); } } diff --git a/apps/probability/law/chi_squared_law.h b/apps/probability/law/chi_squared_law.h index e21d74160..2a91ab464 100644 --- a/apps/probability/law/chi_squared_law.h +++ b/apps/probability/law/chi_squared_law.h @@ -7,7 +7,7 @@ namespace Probability { class ChiSquaredLaw : public OneParameterLaw { public: - ChiSquaredLaw() : OneParameterLaw(4.0f) {} + ChiSquaredLaw() : OneParameterLaw(1.0f) {} I18n::Message title() override { return I18n::Message::ChiSquaredLaw; } Type type() const override { return Type::ChiSquared; } bool isContinuous() const override { return true; } @@ -16,7 +16,7 @@ public: float yMax() const override; I18n::Message parameterNameAtIndex(int index) override { assert(index == 0); - return I18n::Message::D; + return I18n::Message::K; } I18n::Message parameterDefinitionAtIndex(int index) override { assert(index == 0); diff --git a/apps/probability/law/student_law.cpp b/apps/probability/law/student_law.cpp index 85f6d7548..7fbbeb10e 100644 --- a/apps/probability/law/student_law.cpp +++ b/apps/probability/law/student_law.cpp @@ -42,8 +42,8 @@ double StudentLaw::cumulativeDistributiveInverseForProbability(double * probabil } float StudentLaw::coefficient() const { - const float d = m_parameter1; - const float lnOfResult = std::lgamma((d+1)/2) - std::lgamma(d/2) - (M_PI+d)/2; + const float k = m_parameter1; + const float lnOfResult = std::lgamma((k+1)/2) - std::lgamma(k/2) - (M_PI+k)/2; return std::exp(lnOfResult); } diff --git a/apps/probability/law/student_law.h b/apps/probability/law/student_law.h index fa62c97b5..97dc2e519 100644 --- a/apps/probability/law/student_law.h +++ b/apps/probability/law/student_law.h @@ -7,7 +7,7 @@ namespace Probability { class StudentLaw : public OneParameterLaw { public: - StudentLaw() : OneParameterLaw(4.0f) {} + StudentLaw() : OneParameterLaw(1.0f) {} I18n::Message title() override { return I18n::Message::StudentLaw; } Type type() const override { return Type::Student; } bool isContinuous() const override { return true; } @@ -16,7 +16,7 @@ public: float yMax() const override; I18n::Message parameterNameAtIndex(int index) override { assert(index == 0); - return I18n::Message::D; + return I18n::Message::K; } I18n::Message parameterDefinitionAtIndex(int index) override { assert(index == 0); diff --git a/apps/shared.universal.i18n b/apps/shared.universal.i18n index 9eacf2509..926b887e5 100644 --- a/apps/shared.universal.i18n +++ b/apps/shared.universal.i18n @@ -34,6 +34,7 @@ IntCommand = "int(\x11,x,\x11,\x11)" IntCommandWithArg = "int(f(x),x,a,b)" InverseCommandWithArg = "inverse(M)" InvSortCommandWithArg = "sort>(L)" +K = "k" Lambda = "λ" LcmCommandWithArg = "lcm(p,q)" LinearRegressionFormula = " y=a·x+b "