wxTreeItemId CEditAnimationDialog::AddModelToTree( TString ModelName ) { wxTreeItemId item = m_pModelTree->AppendItem(m_pModelTree->GetRootItem(), ModelName, eTCIT_File); CModel* pNewModel = new CModel; pNewModel->Initialize(); m_ModelNameMap[item] = pNewModel; return item; }
int main(int argc, char** argv) { // sanity check if(argc < 2) { std::cout << "Usage: ramp-bmrm-predict config.file" << std::endl; std::cout << "Check the configfiles directory for examples" << std::endl; std::cout << "ERROR: No configuration file given!" << std::endl; exit(EXIT_FAILURE); } // the very first thing to do! Configuration &config = Configuration::GetInstance(); config.ReadFromFile(argv[1]); CData* data = 0; CLoss* loss_vex = 0; CLoss* loss_cav = 0; CModel* model = 0; try { // serial computation with centralised data config.SetString("Computation.mode", "SERIAL_CENTRALISED_DS"); std::string modelFilename = config.GetString("Model.modelFile"); std::string programMode = config.GetString("Program.mode"); data = CDataFactory::GetData(); model = CModelFactory::GetModel(); model->Initialize(modelFilename, data->dim()); CRampLossFactory::GetRampLoss(model,data, loss_vex, loss_cav); if(programMode == "PREDICTION") loss_vex->Predict(model); else if(programMode == "EVALUATION") loss_vex->Evaluate(model); else throw CBMRMException("unknown program mode <" + programMode +">","main()"); // compute ramp loss function value Scalar lossVal_vex = 0.0; Scalar lossVal_cav = 0.0; loss_vex->ComputeLoss(lossVal_vex); loss_cav->ComputeLoss(lossVal_cav); std::cout << "a) Convex loss function value: " << lossVal_vex << std::endl; std::cout << "b) Concave loss function linearization value: " << lossVal_cav << std::endl; std::cout << "c) Ramp loss function value (a-b) : " << lossVal_vex - lossVal_cav << std::endl; // cleaning up delete model; delete loss_vex; delete loss_cav; delete data; } catch(CBMRMException e) { cout << e.Report() << endl; } return EXIT_SUCCESS; }