[apps/reg] Display the regression layouts is RegressionController

This commit is contained in:
Léa Saviot
2018-06-06 15:09:36 +02:00
committed by Émilie Feral
parent 6ca4ecb635
commit e4fc5e8a64
21 changed files with 247 additions and 23 deletions

View File

@@ -1,4 +1,13 @@
#include "regression_controller.h"
#include "model/cubic_model.h"
#include "model/exponential_model.h"
#include "model/linear_model.h"
#include "model/logarithmic_model.h"
#include "model/logistic_model.h"
#include "model/power_model.h"
#include "model/quadratic_model.h"
#include "model/quartic_model.h"
#include "model/trigonometric_model.h"
#include <assert.h>
using namespace Poincare;
@@ -13,27 +22,6 @@ RegressionController::RegressionController(Responder * parentResponder, Store *
m_store(store),
m_series(-1)
{
/*// aX+b
m_regressionLayouts[0] = LayoutEngine::createStringLayout("aX+b");
// aX^2+bX+c
const ExpressionLayout * const * quadraticLayoutOperands[] = {
};
m_regressionLayouts[1]
// aX^3+bX^2+cX+d
//TODO
// aX^4+bX^3+cX^2+dX+e
//TODO
// aln(X)+b
m_regressionLayouts[4] = LayoutEngine::createStringLayout("aln(X)+b");
// ae^(bX)
//TODO
//aX^b
//TODO
// asin(bX+c)
m_regressionLayouts[7] = LayoutEngine::createStringLayout("asin(bX+c)");
// c/(1+ae^(-bX)
//TODO*/
}
const char * RegressionController::title() {
@@ -68,6 +56,39 @@ void RegressionController::willDisplayCellAtLocation(HighlightCell * cell, int i
I18n::Message messages[k_numberOfRows] = {I18n::Message::Linear, I18n::Message::Quadratic, I18n::Message::Cubic, I18n::Message::Quartic, I18n::Message::Logarithmic, I18n::Message::Exponential, I18n::Message::Power, I18n::Message::Trigonometric, I18n::Message::Logistic};
MessageTableCellWithExpression * castedCell = static_cast<MessageTableCellWithExpression *>(cell);
castedCell->setMessage(messages[j]);
switch ((Model::Type) j) {
// TODO virtualize ?
case Model::Type::Linear:
castedCell->setExpressionLayout(LinearModel::Layout());
break;
case Model::Type::Quadratic:
castedCell->setExpressionLayout(QuadraticModel::Layout());
break;
case Model::Type::Cubic:
castedCell->setExpressionLayout(CubicModel::Layout());
break;
case Model::Type::Quartic:
castedCell->setExpressionLayout(QuarticModel::Layout());
break;
case Model::Type::Logarithmic:
castedCell->setExpressionLayout(LogarithmicModel::Layout());
break;
case Model::Type::Exponential:
castedCell->setExpressionLayout(ExponentialModel::Layout());
break;
case Model::Type::Power:
castedCell->setExpressionLayout(PowerModel::Layout());
break;
case Model::Type::Trigonometric:
castedCell->setExpressionLayout(TrigonometricModel::Layout());
break;
case Model::Type::Logistic:
castedCell->setExpressionLayout(LogisticModel::Layout());
break;
default:
assert(false);
break;
}
}
}