/** * Call this method to generate Pascal code for a UMLClassifier. * @param c the class to generate code for */ void PascalWriter::writeClass(UMLClassifier *c) { if (!c) { uDebug() << "Cannot write class of NULL concept!"; return; } const bool isClass = !c->isInterface(); QString classname = cleanName(c->name()); QString fileName = qualifiedName(c).toLower(); fileName.replace(QLatin1Char('.'), QLatin1Char('-')); //find an appropriate name for our file fileName = overwritableName(c, fileName, QLatin1String(".pas")); if (fileName.isEmpty()) { emit codeGenerated(c, false); return; } QFile file; if (!openFile(file, fileName)) { emit codeGenerated(c, false); return; } // Start generating the code. QTextStream pas(&file); //try to find a heading file(license, comments, etc) QString str; str = getHeadingFile(QLatin1String(".pas")); if (!str.isEmpty()) { str.replace(QRegExp(QLatin1String("%filename%")), fileName); str.replace(QRegExp(QLatin1String("%filepath%")), file.fileName()); pas << str << endl; } QString unit = qualifiedName(c); pas << "unit " << unit << ";" << m_endl << m_endl; pas << "INTERFACE" << m_endl << m_endl; // Use referenced classes. UMLPackageList imports; findObjectsRelated(c, imports); if (imports.count()) { pas << "uses" << m_endl; bool first = true; foreach (UMLPackage* con, imports) { if (con->baseType() != UMLObject::ot_Datatype) { if (first) first = false; else pas << "," << m_endl; pas << " " << qualifiedName(con); } } pas << ";" << m_endl << m_endl; }
void adaline(base_t * data,double seuil){ int j,i,test=0,compteur=0; double o=0; double copie[(data->n)]; double descente[(data->n)]; double epsilon; srand(time(0)); for(i=0;i<(data->n);i++) (data->w)[i]=rand()%10; j=0; do{ for(i=0;i<(data->n);i++) copie[i]=(data->w)[i]; o=produitScalaire((data->x)[j],data->w,(data->n)); for(i=0;i<(data->n);i++) { descente[i]=(((data->c)[j]-o)*((data->x)[j][i])); /*printf("sur l'échantillon %d, la direction sur %d est %lf\n",j,i,descente[i]);*/ } epsilon=pas(data,descente); /*printf("epsilon %e\n",epsilon);*/ for(i=0;i<data->n;i++){ data->w[i]=data->w[i]+descente[i]*epsilon; } j=(j+1)%(data->p); compteur++; /*printf(" Le pas vaut %lf, echantillon %d\n",epsilon,j);*/ if(j==0){ test=testb(copie,data->w,data->n,seuil); } }while(compteur<data->p*20||!test); afficherW(data); printf("%d corrections avec adaline\n",compteur); }
vector<int> getRow(int rowIndex) { if (rowIndex < 0) return vector<int>(); if (rowIndex == 0) return vector<int>(1, 1); vector<int> prev = vector<int>(2, 1); for (int i=2; i<=rowIndex; i++) { vector<int> pas(prev.size() + 1, 1); for (int p=1; p < prev.size(); p++) { pas[p] = prev[p-1] + prev[p]; } prev = pas; } return prev; }
void descenteGradient(base_t * data,double seuil){ int i,j,compteur=0; double copie[(data->n)]; double descente[(data->n)]; double o[(data->p)]; double epsilon; srand(time(0)); for(i=0;i<(data->n);i++){ (data->w)[i]=rand()%100; } do{ for(i=0;i<(data->n);i++){ descente[i]=0; copie[i]=data->w[i]; } for(i=0;i<data->p;i++){ for(j=0;j<(data->n);j++){ descente[j]=descente[j]+(data->c[i]-produitScalaire((data->x)[i],data->w,(data->n)))*data->x[i][j]; } } epsilon=pas(data,descente); /*printf("epsilon %e\n",epsilon);*/ for(i=0;i<data->n;i++){ data->w[i]=data->w[i]+descente[i]*epsilon; /*descente[i]=descente[i]*epsilon;*/ } compteur++; }while(!testb(copie,data->w,(data->n),seuil)||compteur<data->p); afficherW(data); printf("On a %d corrections avec descente de gradient\n",compteur*(data->n)); }
TEST(IEStackString, ConcatIndexOf) { // Concat IEStackString<7> string1 = "123"; IEStackString<7> string2 = "568"; IEStackString<7> result = string1.Concatenate<7>(string2); IEStackString<7> death; EXPECT_EQ('1', result.CharAt(0)); EXPECT_EQ('2', result.CharAt(1)); EXPECT_EQ('3', result.CharAt(2)); EXPECT_EQ('5', result.CharAt(3)); EXPECT_EQ('6', result.CharAt(4)); EXPECT_EQ('8', result.CharAt(5)); EXPECT_EQ(6, result.Length()); EXPECT_DEATH(death = result.Concatenate<7>(string1), IE_TEST_ASSERT_FAIL_STRING); // First Index Of IEStackString<> findString = "kas takas as pas lapas"; // Char EXPECT_EQ(1, findString.FirstIndexOf('a')); EXPECT_EQ(0, findString.FirstIndexOf('k')); EXPECT_EQ(-1, findString.FirstIndexOf('1')); // C String EXPECT_EQ(1, findString.FirstIndexOf("as", 2)); EXPECT_EQ(13, findString.FirstIndexOf("pas", 3)); EXPECT_EQ(4, findString.FirstIndexOf("takas", 5)); EXPECT_EQ(-1, findString.FirstIndexOf("stuff", 5)); EXPECT_DEATH(findString.FirstIndexOf("stuff", -1), IE_TEST_ASSERT_FAIL_STRING); // Stack String IEStackString<> as("as"); IEStackString<> pas("pas"); IEStackString<> takas("takas"); IEStackString<> stuff("stuff"); EXPECT_EQ(1, findString.FirstIndexOf(as)); EXPECT_EQ(13, findString.FirstIndexOf(pas)); EXPECT_EQ(4, findString.FirstIndexOf(takas)); EXPECT_EQ(-1, findString.FirstIndexOf(stuff)); EXPECT_EQ(0, findString.FirstIndexOf(findString)); // Last Index Of // Char //IEStackString<> findString = "kas takas as pas lapas" EXPECT_EQ(20, findString.LastIndexOf('a')); EXPECT_EQ(6, findString.LastIndexOf('k')); EXPECT_EQ(-1, findString.LastIndexOf('1')); // C String EXPECT_EQ(20, findString.LastIndexOf("as", 2)); EXPECT_EQ(19, findString.LastIndexOf("pas", 3)); EXPECT_EQ(4, findString.LastIndexOf("takas", 5)); EXPECT_EQ(-1, findString.LastIndexOf("stuff", 5)); EXPECT_DEATH(findString.LastIndexOf("stuff", -1), IE_TEST_ASSERT_FAIL_STRING); // Stack String EXPECT_EQ(20, findString.LastIndexOf(as)); EXPECT_EQ(19, findString.LastIndexOf(pas)); EXPECT_EQ(4, findString.LastIndexOf(takas)); EXPECT_EQ(-1, findString.LastIndexOf(stuff)); EXPECT_EQ(0, findString.LastIndexOf(findString)); }