From binoyte at gmail.com Fri Jun 1 22:56:07 2012 From: binoyte at gmail.com (Binoyte) Date: Fri, 1 Jun 2012 16:56:07 -0400 Subject: =?UTF-8?Q?Passer_des_arguments_par_r=C3=A9f=C3=A9rence_=C3=A0_une_fonction?= =?UTF-8?Q?_=C3=A9crite_en_scilab=2E?= Message-ID: Bonjour, je voudrais savoir si il est possible de passer les arguments par référence a une fonction écrite en Scilab. En gros je cherche une analogie à l'écriture C++ suivante : void ma_fonction(struct & parametre) { parametre.propriete = ....; } En Scilab je ne trouve pas trop d'autres solutions que d'écrire : function this = ma_fonction (parametre) this = parametre; this.propriete = ..... endfunction Le problème c'est qu'avec la version Scilab on fait d'abord une copie de la variable, ça prend du temps et beaucoup de ressources. D'autant qu'ensuite, dans mon programme, les fonctions sont appelées de nombreuses fois vue que je lance par la suite des fonctions d?optimisation. J'utilise des structures qui décrivent les composants mécaniques d'un système. L?optimisation peut faire varier le nombre de composants. Dans ce cas je ne pense pas pouvoir utiliser les variables globales, en tout cas, pas selon l'exemple ci- après : function ma_fonction (parametre) global parametre; parametre.propriete = ..... endfunction //************ global Monsieur; Monsieur.Age = 31; ma_fonction(Monsieur); Je vous remercie par avance de vos conseils. Cordialement, -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From vogt at centre-cired.fr Mon Jun 4 14:27:54 2012 From: vogt at centre-cired.fr (Adrien Vogt-Schilb) Date: Mon, 04 Jun 2012 14:27:54 +0200 Subject: [users-fr] Passer des arguments par =?UTF-8?B?csOpZsOpcmVuY2U=?= =?UTF-8?B?IMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: References: Message-ID: <4FCCA9CA.4070804@centre-cired.fr> Bonjour global est votre ami: function update_a() global a a =a +1 endfunction global a a= 0 update_a() a update_a(); update_a(); update_a(); update_a(); a à lire: help global http://wiki.scilab.org/howto/global%20and%20local%20variables On 01/06/2012 22:56, Binoyte wrote: > Bonjour, > > je voudrais savoir si il est possible de passer les arguments par > référence a une fonction écrite en Scilab. En gros je cherche une > analogie à l'écriture C++ suivante : > > void ma_fonction(struct & parametre) > { > > parametre.propriete = ....; > > } > > > En Scilab je ne trouve pas trop d'autres solutions que d'écrire : > > function this = ma_fonction (parametre) > > this = parametre; > this.propriete = ..... > > endfunction > > > Le problème c'est qu'avec la version Scilab on fait d'abord une copie > de la variable, ça prend du temps et beaucoup de ressources. D'autant > qu'ensuite, dans mon programme, les fonctions sont appelées de > nombreuses fois vue que je lance par la suite des fonctions > d?optimisation. J'utilise des structures qui décrivent les composants > mécaniques d'un système. L?optimisation peut faire varier le nombre de > composants. Dans ce cas je ne pense pas pouvoir utiliser les variables > globales, en tout cas, pas selon l'exemple ci- après : > > function ma_fonction (parametre) > > global parametre; > > parametre.propriete = ..... > > endfunction > > //************ > > global Monsieur; > Monsieur.Age = 31; > > ma_fonction(Monsieur); > > Je vous remercie par avance de vos conseils. > > Cordialement, > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From vogt at centre-cired.fr Mon Jun 4 14:30:09 2012 From: vogt at centre-cired.fr (Adrien Vogt-Schilb) Date: Mon, 04 Jun 2012 14:30:09 +0200 Subject: [users-fr] Passer des arguments par =?UTF-8?B?csOpZsOpcmVuY2U=?= =?UTF-8?B?IMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: <4FCCA9CA.4070804@centre-cired.fr> References: <4FCCA9CA.4070804@centre-cired.fr> Message-ID: <4FCCAA51.2000806@centre-cired.fr> Oups, désolé. Global ne marche effectivement pas avec l'optimisation On 04/06/2012 14:27, Adrien Vogt-Schilb wrote: > Bonjour > > global est votre ami: > > function update_a() > global a > a =a +1 > endfunction > > > global a > > a= 0 > update_a() > a > update_a(); > update_a(); > update_a(); > update_a(); > > a > > > > à lire: > > help global > http://wiki.scilab.org/howto/global%20and%20local%20variables > > On 01/06/2012 22:56, Binoyte wrote: >> Bonjour, >> >> je voudrais savoir si il est possible de passer les arguments par >> référence a une fonction écrite en Scilab. En gros je cherche une >> analogie à l'écriture C++ suivante : >> >> void ma_fonction(struct & parametre) >> { >> >> parametre.propriete = ....; >> >> } >> >> >> En Scilab je ne trouve pas trop d'autres solutions que d'écrire : >> >> function this = ma_fonction (parametre) >> >> this = parametre; >> this.propriete = ..... >> >> endfunction >> >> >> Le problème c'est qu'avec la version Scilab on fait d'abord une copie >> de la variable, ça prend du temps et beaucoup de ressources. D'autant >> qu'ensuite, dans mon programme, les fonctions sont appelées de >> nombreuses fois vue que je lance par la suite des fonctions >> d?optimisation. J'utilise des structures qui décrivent les composants >> mécaniques d'un système. L?optimisation peut faire varier le nombre >> de composants. Dans ce cas je ne pense pas pouvoir utiliser les >> variables globales, en tout cas, pas selon l'exemple ci- après : >> >> function ma_fonction (parametre) >> >> global parametre; >> >> parametre.propriete = ..... >> >> endfunction >> >> //************ >> >> global Monsieur; >> Monsieur.Age = 31; >> >> ma_fonction(Monsieur); >> >> Je vous remercie par avance de vos conseils. >> >> Cordialement, >> > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From vogt at centre-cired.fr Mon Jun 4 14:34:44 2012 From: vogt at centre-cired.fr (Adrien Vogt-Schilb) Date: Mon, 04 Jun 2012 14:34:44 +0200 Subject: [users-fr] Passer des arguments par =?UTF-8?B?csOpZsOpcmVuY2U=?= =?UTF-8?B?IMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: References: Message-ID: <4FCCAB64.1000708@centre-cired.fr> On 01/06/2012 22:56, Binoyte wrote: > Bonjour, > > je voudrais savoir si il est possible de passer les arguments par > référence a une fonction écrite en Scilab. En gros je cherche une > analogie à l'écriture C++ suivante : > > void ma_fonction(struct & parametre) > { > > parametre.propriete = ....; > > } > > > En Scilab je ne trouve pas trop d'autres solutions que d'écrire : > > function this = ma_fonction (parametre) > > this = parametre; > this.propriete = ..... > > endfunction > > > Le problème c'est qu'avec la version Scilab on fait d'abord une copie > de la variable, ça prend du temps et beaucoup de ressources. D'autant > qu'ensuite, dans mon programme, les fonctions sont appelées de > nombreuses fois vue que je lance par la suite des fonctions > d?optimisation. J'utilise des structures qui décrivent les composants > mécaniques d'un système. L?optimisation peut faire varier le nombre de > composants. Dans ce cas je ne pense pas pouvoir utiliser les variables > globales, en tout cas, pas selon l'exemple ci- après : > > function ma_fonction (parametre) > > global parametre; > > parametre.propriete = ..... > > endfunction > > //************ > > global Monsieur; > Monsieur.Age = 31; > > ma_fonction(Monsieur); > > Je vous remercie par avance de vos conseils. > > Cordialement, > En fait je ne suis pas sur de comprendre votre exemple ma_fonction ne devrait-elle pas déclarer Monsieur comme global, plutot que de le prendre comme argument? (comme le a dans mon premier mail) allez vous utiliser un fsolve ou tout autre routine scilab pour l'optimisation? si ce n'est pas le cas, je ne vois pas à priori pourquoi vous ne pourriez pas utiliser de variables globales. PS: êtes vous sur que la copie des arguments de vos fonctions occupe une part significative du temps de calcul? -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From calixte.denizet at scilab-enterprises.com Mon Jun 4 14:54:40 2012 From: calixte.denizet at scilab-enterprises.com (Calixte DENIZET) Date: Mon, 04 Jun 2012 14:54:40 +0200 Subject: [users-fr] Passer des arguments par =?UTF-8?B?csOpZsOpcmVuY2U=?= =?UTF-8?B?IMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: References: Message-ID: <4FCCB010.3010500@scilab-enterprises.com> Bonjour, A ma connaissance, ce n'est pas possible de le faire pour des macros. Toutefois cela est possible avec des fonctions built-in, il suffit pour cela d'ecrire une toolbox en C/C++ et d'utiliser la commande scilab intppty. Calixte On 01/06/2012 22:56, Binoyte wrote: > Bonjour, > > je voudrais savoir si il est possible de passer les arguments par > référence a une fonction écrite en Scilab. En gros je cherche une > analogie à l'écriture C++ suivante : > > void ma_fonction(struct & parametre) > { > > parametre.propriete = ....; > > } > > > En Scilab je ne trouve pas trop d'autres solutions que d'écrire : > > function this = ma_fonction (parametre) > > this = parametre; > this.propriete = ..... > > endfunction > > > Le problème c'est qu'avec la version Scilab on fait d'abord une copie > de la variable, ça prend du temps et beaucoup de ressources. D'autant > qu'ensuite, dans mon programme, les fonctions sont appelées de > nombreuses fois vue que je lance par la suite des fonctions > d?optimisation. J'utilise des structures qui décrivent les composants > mécaniques d'un système. L?optimisation peut faire varier le nombre de > composants. Dans ce cas je ne pense pas pouvoir utiliser les variables > globales, en tout cas, pas selon l'exemple ci- après : > > function ma_fonction (parametre) > > global parametre; > > parametre.propriete = ..... > > endfunction > > //************ > > global Monsieur; > Monsieur.Age = 31; > > ma_fonction(Monsieur); > > Je vous remercie par avance de vos conseils. > > Cordialement, > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From binoyte at gmail.com Mon Jun 4 15:45:07 2012 From: binoyte at gmail.com (binoyte) Date: Mon, 4 Jun 2012 06:45:07 -0700 (PDT) Subject: =?UTF-8?Q?Re:_Passer_des_arguments_par_r=C3=A9f=C3=A9re?= =?UTF-8?Q?nce_=C3=A0_une_fonction_=C3=A9crite_en_scilab.?= In-Reply-To: <4FCCAB64.1000708@centre-cired.fr> References: <4FCCAB64.1000708@centre-cired.fr> Message-ID: <1338817507140-4024286.post@n3.nabble.com> Merci pour vos réponses. @ Adrien. Je préfère justement oublier global car je peux avoir un paquet de variables (A1 A2 A3 ...) que je ne connais pas forcément à l'avance. Et le global nécessite de connaitre le nom des variables. Je peux toujours faire un global en allant de A1 à An mais je ne trouve pas ça très propre. En fait ce qui me manque c'est une vrai déclaration de structure avec propriétés et méthodes. Dans l'exemple suivant : function ma_fonction (structure) global structure; structure.propriete = ..... endfunction structure va être défini comme global ce qui ne m?intéresse pas. J'aimerai que ce soit la référence de structure qui soit déclaré comme global. Mais c'est pas possible. Je crois qu'en effet, comme le dit Calixte, il faut écrire en C++ et ensuite appeler la fonction dans Scilab. -- View this message in context: http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024286.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From vogt at centre-cired.fr Mon Jun 4 16:17:48 2012 From: vogt at centre-cired.fr (Adrien Vogt-Schilb) Date: Mon, 04 Jun 2012 16:17:48 +0200 Subject: [users-fr] Re: Passer des arguments par =?UTF-8?B?csOpZsOpcmU=?= =?UTF-8?B?bmNlIMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: <1338817507140-4024286.post@n3.nabble.com> References: <4FCCAB64.1000708@centre-cired.fr> <1338817507140-4024286.post@n3.nabble.com> Message-ID: <4FCCC38C.9000103@centre-cired.fr> On 04/06/2012 15:45, binoyte wrote: > Je crois qu'en effet, comme le dit Calixte, il faut écrire en C++ et > ensuite appeler la fonction dans Scilab. oui je suis d'accord -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From bernard.durand52 at wanadoo.fr Tue Jun 5 14:42:10 2012 From: bernard.durand52 at wanadoo.fr (Bernard Durand) Date: Tue, 5 Jun 2012 14:42:10 +0200 Subject: Probleme fonctionnement Xcos Message-ID: <000701cd4318$a02afba0$0a01a8c0@avcbd> Sur installation nouvelle Scilab 533 Windows XP . Impossible utiliser Xcos . Ci-joint ( log_errors_Xcos.txt ) le resultat de la compilation d'un schema ultra-simple : generateur sinusoidal , CSCOPE et generateur evenement CLOCKc . On dirait , au vu des erreurs signalées que Xcos n'a pas fait le lien avec mes fichiers JAVA , lequel JAVA fonctionne par ailleurs parfaitement . Quelqu'un a-t-il une idée ? Je n'ai trouvé aucune consigne relative à une quelconque variable d'environnement lors de l'installation de Scilab . Merci d'avance . -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Un texte encapsulé et encodé dans un jeu de caractères inconnu a été nettoyé... Nom : log_errors_Xcos.txt URL : From allan.cornet at scilab.org Tue Jun 5 14:54:34 2012 From: allan.cornet at scilab.org (Allan CORNET) Date: Tue, 5 Jun 2012 14:54:34 +0200 Subject: [users-fr] Probleme fonctionnement Xcos In-Reply-To: <000701cd4318$a02afba0$0a01a8c0@avcbd> References: <000701cd4318$a02afba0$0a01a8c0@avcbd> Message-ID: <005a01cd431a$5b6db6e0$124924a0$@scilab.org> Hi, See http://bugzilla.scilab.org/show_bug.cgi?id=9501 This trouble is fixed in 5.4 alpha-1 http://www.scilab.org/products/scilab/download/alpha Best regards Allan De : Bernard Durand [mailto:bernard.durand52 at wanadoo.fr] Envoyé : mardi 5 juin 2012 14:42 À : users-fr at lists.scilab.org Objet : [users-fr] Probleme fonctionnement Xcos Sur installation nouvelle Scilab 533 Windows XP . Impossible utiliser Xcos . Ci-joint ( log_errors_Xcos.txt ) le resultat de la compilation d'un schema ultra-simple : generateur sinusoidal , CSCOPE et generateur evenement CLOCKc . On dirait , au vu des erreurs signalées que Xcos n'a pas fait le lien avec mes fichiers JAVA , lequel JAVA fonctionne par ailleurs parfaitement . Quelqu'un a-t-il une idée ? Je n'ai trouvé aucune consigne relative à une quelconque variable d'environnement lors de l'installation de Scilab . Merci d'avance . -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From dvioleau at free.fr Wed Jun 6 06:54:46 2012 From: dvioleau at free.fr (David Violeau) Date: Wed, 06 Jun 2012 06:54:46 +0200 Subject: =?ISO-8859-1?Q?R=E9alisation_fonction_temporisation_Xcos?= Message-ID: <4FCEE296.90902@free.fr> Bonjour, Je cherche à réaliser un superbloc sous xcos mais je tourne en rond et je ne vois pas de bloc qui fait cela. Le principe est le suivant : Un signal constant est envoyé en entrée du bloc ainsi qu'un signal que j'appelle "événement". Lorsqu'il n'y a pas d'événement, la sortie est égale au signal constant d'entrée mais lorsque l'événement apparaît (et quelle que soit sa durée), j'aimerai que la sortie passe à 0 (ou une autre valeur) pendant une durée fixée. Voici un schéma de principe : J'ai tenté avec un bloc user_function avec un bouclage sur soit de ce bloc mais j'ai un message Algebraic loop (logique!). J'ai également tenté d'introduire une variable t0=0 dans le contexte et un bloc user_function à 2 entrées, 1 sortie qui réalise la fonction suivante : if (u2==0 & t-t0>=0.5) then y1=u1; t0=t; else y1=0; end Ici le problème est que t0 ne reste pas à la valeur de t lorsqu'on passe dans le else. Bref, auriez vous une idée pour réaliser cette fonction qui permet de faire des temporisations finalement. Merci d'avance pour votre aide -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: dbhafgji.png Type: image/png Taille: 4026 octets Desc: non disponible URL: From binoyte at gmail.com Wed Jun 6 17:14:57 2012 From: binoyte at gmail.com (binoyte) Date: Wed, 6 Jun 2012 08:14:57 -0700 (PDT) Subject: =?UTF-8?Q?Re:_Passer_des_arguments_par_r=C3=A9f=C3=A9re?= =?UTF-8?Q?nce_=C3=A0_une_fonction_=C3=A9crite_en_scilab.?= In-Reply-To: References: Message-ID: <1338995697964-4024293.post@n3.nabble.com> J'ai parcouru l'API de scilab, je ne trouve aucune trace d'une possibilité de manipulation de variable de type structure scilab par une routine C. http://help.scilab.org/docs/5.4.0-alpha-1/fr_FR/sci_types.html Pour rappel, j'ai plusieurs variables de type struct scilab (une «class bearing» en quelque sorte) : roulement1, roulement2, ... avec par exemple : roulement1.diametre = 3.2; roulement1.materiau = 'acier'; roulement1.rpm = 2300; roulement1.contrainte = 0; ... J'aimerai pouvoir faire un roulement1->setContrainte() ou setContrainte(& roulement1). J'ai pas mal de variables de type struct comme dans l'exemple ci-dessus et surtout j'appelle des fonctions d'optimisation, donc mon programme fait pas mal de boucles. Actuellement avec mon script 100% scilab j'ai mes 8 c?urs pris à 100% à cause de passage d'arguments par valeur. Scilab créé un doublon des arguments avant l'appel de la fonction, donc scilab passe son temps à demander à l'OS de l'allocation mémoire puis à libérer la mémoire. Le temps de calcul réel c'est peanuts à côté de ça. Comment améliorer mon temps de calcul ? Je veux bien transposer mon code en c mais j'ai pas trop envie de laisser tomber les structures qui sont quand même bien pratiques. J'ai pas trop envie non plus de tout passer en c sinon il faut que j'écrive moi-même les fonctions d'optimisation. En fait il manque à scilab une vraie notion d'objet. Dommage. Merci d'avance pour votre aide. -- View this message in context: http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024293.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. From superior.vic at gmail.com Wed Jun 6 18:03:08 2012 From: superior.vic at gmail.com (Mike Page) Date: Wed, 6 Jun 2012 17:03:08 +0100 Subject: =?UTF-8?Q?RE:_=5Busers-fr=5D_Re:_Passer_des_arguments_par_r=C3=A9f=C3=A9?= =?UTF-8?Q?rence_=C3=A0_une_fonction_=C3=A9crite_en_scilab.?= In-Reply-To: <1338995697964-4024293.post@n3.nabble.com> Message-ID: Another possibility is to write the "structured" code in C and call the Scilab optimisation functions using SendScilabJob. That might be more efficient, so long as you don't need to send structured variables to those Scilab functions. (Not in French - sorry!) Cheers, Mike. -----Original Message----- From: binoyte [mailto:binoyte at gmail.com] Sent: 06 June 2012 16:15 To: users-fr at lists.scilab.org Subject: [users-fr] Re: Passer des arguments par référence à une fonction écrite en scilab. J'ai parcouru l'API de scilab, je ne trouve aucune trace d'une possibilité de manipulation de variable de type structure scilab par une routine C. http://help.scilab.org/docs/5.4.0-alpha-1/fr_FR/sci_types.html Pour rappel, j'ai plusieurs variables de type struct scilab (une «class bearing» en quelque sorte) : roulement1, roulement2, ... avec par exemple : roulement1.diametre = 3.2; roulement1.materiau = 'acier'; roulement1.rpm = 2300; roulement1.contrainte = 0; ... J'aimerai pouvoir faire un roulement1->setContrainte() ou setContrainte(& roulement1). J'ai pas mal de variables de type struct comme dans l'exemple ci-dessus et surtout j'appelle des fonctions d'optimisation, donc mon programme fait pas mal de boucles. Actuellement avec mon script 100% scilab j'ai mes 8 c?urs pris à 100% à cause de passage d'arguments par valeur. Scilab créé un doublon des arguments avant l'appel de la fonction, donc scilab passe son temps à demander à l'OS de l'allocation mémoire puis à libérer la mémoire. Le temps de calcul réel c'est peanuts à côté de ça. Comment améliorer mon temps de calcul ? Je veux bien transposer mon code en c mais j'ai pas trop envie de laisser tomber les structures qui sont quand même bien pratiques. J'ai pas trop envie non plus de tout passer en c sinon il faut que j'écrive moi-même les fonctions d'optimisation. En fait il manque à scilab une vraie notion d'objet. Dommage. Merci d'avance pour votre aide. -- View this message in context: http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024293.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. -- Pour vous désinscrire de cette mailing list, merci d'envoyer un mail vide à users-unsubscribe at lists.scilab.org Pour voir les archives de cette mailing list, allez sur http://mailinglists.scilab.org/ From sgougeon at free.fr Wed Jun 6 21:46:24 2012 From: sgougeon at free.fr (Samuel Gougeon) Date: Wed, 06 Jun 2012 21:46:24 +0200 Subject: [users-fr] Re: Passer des arguments par =?UTF-8?B?csOpZsOpcmU=?= =?UTF-8?B?bmNlIMOgIHVuZSBmb25jdGlvbiDDqWNyaXRlIGVuIHNjaWxhYi4=?= In-Reply-To: <1338995697964-4024293.post@n3.nabble.com> References: <1338995697964-4024293.post@n3.nabble.com> Message-ID: <4FCFB390.60306@free.fr> Bonjour, Quand on passe un identifiant graphique en paramètre, le passage se fait-il par valeur ? S'il est possible d'adresser les handle en C (est-ce possible ?), pourquoi ne pas essayer de stocker les données dans un .userdata ... au cas où l'adressage se ferait implicitement par référence... Plus de questions que de réponses, donc... Samuel Le 06/06/2012 17:14, binoyte a écrit : > J'ai parcouru l'API de scilab, je ne trouve aucune trace d'une possibilité de > manipulation de variable de type structure scilab par une routine C. > http://help.scilab.org/docs/5.4.0-alpha-1/fr_FR/sci_types.html > > Pour rappel, j'ai plusieurs variables de type struct scilab (une «class > bearing» en quelque sorte) : roulement1, roulement2, ... > > avec par exemple : > roulement1.diametre = 3.2; > roulement1.materiau = 'acier'; > roulement1.rpm = 2300; > roulement1.contrainte = 0; > ... > > J'aimerai pouvoir faire un roulement1->setContrainte() ou setContrainte(& > roulement1). > > J'ai pas mal de variables de type struct comme dans l'exemple ci-dessus et > surtout j'appelle des fonctions d'optimisation, donc mon programme fait pas > mal de boucles. > > Actuellement avec mon script 100% scilab j'ai mes 8 c?urs pris à 100% à > cause de passage d'arguments par valeur. Scilab créé un doublon des > arguments avant l'appel de la fonction, donc scilab passe son temps à > demander à l'OS de l'allocation mémoire puis à libérer la mémoire. Le temps > de calcul réel c'est peanuts à côté de ça. > > Comment améliorer mon temps de calcul ? Je veux bien transposer mon code en > c mais j'ai pas trop envie de laisser tomber les structures qui sont quand > même bien pratiques. J'ai pas trop envie non plus de tout passer en c sinon > il faut que j'écrive moi-même les fonctions d'optimisation. En fait il > manque à scilab une vraie notion d'objet. Dommage. > > Merci d'avance pour votre aide. > > -- > View this message in context: http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024293.html > Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. > > -- > Pour vous désinscrire de cette mailing list, merci d'envoyer un mail vide à > users-unsubscribe at lists.scilab.org > Pour voir les archives de cette mailing list, allez sur > http://mailinglists.scilab.org/ > > > From binoyte at gmail.com Sat Jun 9 14:23:02 2012 From: binoyte at gmail.com (binoyte) Date: Sat, 9 Jun 2012 05:23:02 -0700 (PDT) Subject: =?UTF-8?Q?Re:_Passer_des_arguments_par_r=C3=A9f=C3=A9re?= =?UTF-8?Q?nce_=C3=A0_une_fonction_=C3=A9crite_en_scilab.?= In-Reply-To: <4FCFB390.60306@free.fr> References: <1338995697964-4024293.post@n3.nabble.com> <4FCFB390.60306@free.fr> Message-ID: Bonjour, finalement j'ai trouvé une piste en 100% scilab. Je déclare un tableau global dans lequel je stocke mes structures (mes pseudos objets). Un tableau par type de structure. Les fonctions qui doivent travailler sur ces structures ne reçoivent qu'un unique argument : l'indice du tableau correspondant à la structure concernée. Ces fonctions commencent par : global MonTableauDeStructure; Donc, en toute logique, comme il n'y a plus de passage d'argument, ces tableaux globaux (et donc mes structures) ne sont plus dupliqués avant l'appel des fonctions. Ce que je ne comprends pas, c'est que le programme est 10 fois plus long qu'avant ? Le 6 juin 2012 15:46, Samuel Gougeon-2 [via Scilab / Xcos - Mailing Lists Archives] a écrit : > Bonjour, > > Quand on passe un identifiant graphique en paramètre, le passage > se fait-il par valeur ? > S'il est possible d'adresser les handle en C (est-ce possible ?), > pourquoi ne pas essayer de stocker les données dans un .userdata ... > au cas où l'adressage se ferait implicitement par référence... > > Plus de questions que de réponses, donc... > > Samuel > > > Le 06/06/2012 17:14, binoyte a écrit : > > > J'ai parcouru l'API de scilab, je ne trouve aucune trace d'une > possibilité de > > manipulation de variable de type structure scilab par une routine C. > > http://help.scilab.org/docs/5.4.0-alpha-1/fr_FR/sci_types.html > > > > Pour rappel, j'ai plusieurs variables de type struct scilab (une «class > > bearing» en quelque sorte) : roulement1, roulement2, ... > > > > avec par exemple : > > roulement1.diametre = 3.2; > > roulement1.materiau = 'acier'; > > roulement1.rpm = 2300; > > roulement1.contrainte = 0; > > ... > > > > J'aimerai pouvoir faire un roulement1->setContrainte() ou > setContrainte(& > > roulement1). > > > > J'ai pas mal de variables de type struct comme dans l'exemple ci-dessus > et > > surtout j'appelle des fonctions d'optimisation, donc mon programme fait > pas > > mal de boucles. > > > > Actuellement avec mon script 100% scilab j'ai mes 8 c?urs pris à 100% à > > cause de passage d'arguments par valeur. Scilab créé un doublon des > > arguments avant l'appel de la fonction, donc scilab passe son temps à > > demander à l'OS de l'allocation mémoire puis à libérer la mémoire. Le > temps > > de calcul réel c'est peanuts à côté de ça. > > > > Comment améliorer mon temps de calcul ? Je veux bien transposer mon code > en > > c mais j'ai pas trop envie de laisser tomber les structures qui sont > quand > > même bien pratiques. J'ai pas trop envie non plus de tout passer en c > sinon > > il faut que j'écrive moi-même les fonctions d'optimisation. En fait il > > manque à scilab une vraie notion d'objet. Dommage. > > > > Merci d'avance pour votre aide. > > > > -- > > View this message in context: > http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024293.html > > Sent from the Liste utilisateur (en français) mailing list archive at > Nabble.com. > > > > -- > > Pour vous désinscrire de cette mailing list, merci d'envoyer un mail > vide à > > [hidden email] > > Pour voir les archives de cette mailing list, allez sur > > http://mailinglists.scilab.org/ > > > > > > > > -- > Pour vous désinscrire de cette mailing list, merci d'envoyer un mail vide > à > [hidden email] > Pour voir les archives de cette mailing list, allez sur > http://mailinglists.scilab.org/ > > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024296.html > To unsubscribe from Passer des arguments par référence à une fonction > écrite en scilab., click here > . > NAML > -- View this message in context: http://mailinglists.scilab.org/Passer-des-arguments-par-reference-a-une-fonction-ecrite-en-scilab-tp4024279p4024325.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From binoyte at gmail.com Tue Jun 12 17:11:43 2012 From: binoyte at gmail.com (Binoyte) Date: Tue, 12 Jun 2012 11:11:43 -0400 Subject: =?UTF-8?Q?Int=C3=A9r=C3=AAts_de_la_compilations_des_fonctions_scilab?= Message-ID: Bonjour, j?aimerai être sûr de bien comprendre l'intérêt de la compilation des fonctions avec scilab. La compilation d'une fonction scilab se fait entre autre par la commande ' save'. Cette commande transforme, une fonction contenue dans les sources scilab en fichier bin. Référence : http://help.scilab.org/docs/5.3.3/en_US/lib.html Quelle est l?intérêt de compiler une fonction par rapport à l'appel classique 'getf' aujourd'hui remplacé par 'exec' : - ça permet d'avoir un code plus rapide à l'exécution et de gagner du temps à chaque fois que la fonction est appelé ? - ça permet de cacher les sources en diffusant un programme avec des binaires - ?? Ce qui m'intéresse se sont plutôt les performances. Comme je considère 'exec' ('getf') comme une compilation temporaire et à la volée, je ne pense pas qu'utiliser 'mafonction.bin' plutôt que 'mabibliothequedefonctions.sci' change grand chose. Ce ne sont pas les quelques seconde de lecture de mes bibliothèques *.sci qui feront la différence. Mais peut-être que je me trompe. Merci pour vos lumières -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From vogt at centre-cired.fr Fri Jun 15 12:48:45 2012 From: vogt at centre-cired.fr (Adrien Vogt-Schilb) Date: Fri, 15 Jun 2012 12:48:45 +0200 Subject: [users-fr] =?UTF-8?B?SW50w6lyw6p0cyBkZSBsYSBjb21waWxhdGlvbnMg?= =?UTF-8?B?ZGVzIGZvbmN0aW9ucyBzY2lsYWI=?= In-Reply-To: References: Message-ID: <4FDB130D.6060607@centre-cired.fr> On 12/06/2012 17:11, Binoyte wrote: > Bonjour, > > j?aimerai être sûr de bien comprendre l'intérêt de la compilation des > fonctions avec scilab. > > La compilation d'une fonction scilab se fait entre autre par la > commande 'save'. Cette commande transforme, une fonction contenue dans > les sources scilab en fichier bin. > Référence : http://help.scilab.org/docs/5.3.3/en_US/lib.html > > Quelle est l?intérêt de compiler une fonction par rapport à l'appel > classique 'getf' aujourd'hui remplacé par 'exec' : > > * ça permet d'avoir un code plus rapide à l'exécution et de gagner > du temps à chaque fois que la fonction est appelé ? > * ça permet de cacher les sources en diffusant un programme avec des > binaires > * ?? > > > Ce qui m'intéresse se sont plutôt les performances. Comme je considère > 'exec' ('getf') comme une compilation temporaire et à la volée, je ne > pense pas qu'utiliser 'mafonction.bin' plutôt que > 'mabibliothequedefonctions.sci' change grand chose. Ce ne sont pas les > quelques seconde de lecture de mes bibliothèques *.sci qui feront la > différence. > > Mais peut-être que je me trompe. > > Merci pour vos lumières > > Bonjour Effectivement ça ne changera quasiment rien. Si j'ai bien compris, la seule différence est le temps mis par le parser pour lire et comprendre le texte de la fonction, qui dans la plupart des cas est absolument négligeable devant le temps d?exécution. Le terme de "compilation" à propos des fonction est assez "misleading" dans la doc de Scilab je trouve. Cette lecture ne permet pas de cacher les sources à ma connaissance. Faites l'essai, la fonction fun2string devrait vous restituer un code très proche du code source. A plus -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From communication at scilab.org Thu Jun 21 14:29:33 2012 From: communication at scilab.org (Scilab Communication) Date: Thu, 21 Jun 2012 14:29:33 +0200 Subject: J-7 : ScilabTEC 2012, jeudi 28 juin Message-ID: <4FE313AD.8000808@scilab.org> *Êtes-vous inscrit au ScilabTEC 2012 ?* C'est le jeudi 28 juin à l'École Polytechnique, Palaiseau (91), organisé dans le cadre du Forum Teratec. Entrée libre sur inscription sur http://www.teratec.eu/forum/inscription.php ScilabTEC *Avec la participation de Kitware, Eramet, Silkan (HPC Project), Sanofi, Astrium, Dassault Aviation et le CNES.* Retrouvez le programme complet de la journée sur http://www.scilab.org/news/events/20120516 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: scilabtec.png Type: image/png Taille: 110553 octets Desc: non disponible URL: From communication at scilab.org Fri Jun 22 17:22:57 2012 From: communication at scilab.org (Scilab Communication) Date: Fri, 22 Jun 2012 17:22:57 +0200 Subject: Sortie de Scilab 5.4.0 beta 1 Message-ID: <4FE48DD1.7090503@scilab.org> Chers utilisateurs de Scilab, L'équipe R&D est heureuse de vous informer de la sortie de Scilab 5.4.0 beta 1 incluant Scilab Desktop, des fonctionnalités permettant de lire et écrire des fichiers XML, des améliorations majeures des graphiques de Scilab, les préférences Scilab, et un nouveau format de données. Scilab 5.4.0-beta 1 est une version de test fournie à la communauté, disponible sur notre site Internet à l'adresse suivante : http://www.scilab.org/products/scilab/download/5.4.0-beta-1 Si vous trouvez un bug, nous vous remercions de bien vouloir le signaler sur le Scilab Bug Tracker (http://bugzilla.scilab.org/) Bien cordialement, ----------------------------------------------- The Scilab Consortium R&D Team ----------------------------------------------- Digiteo Domaine de Voluceau Rocquencourt - B.P. 105 78153 Le Chesnay Cedex - France From xr at geo.hmg.inpg.fr Tue Jun 26 16:35:26 2012 From: xr at geo.hmg.inpg.fr (xavier roguiez) Date: Tue, 26 Jun 2012 16:35:26 +0200 Subject: =?ISO-8859-1?Q?M=E9thodes_num=E9riques_utilis=E9es?= Message-ID: <4FE9C8AE.5030605@geo.hmg.inpg.fr> Bonjour Où est ce que je peux trouver les méthodes numériques utilisées par les outils scilab (integrate, fsolve etc) ? Je cherche des explications plus développées que l'aide en ligne et moins ardu que le code source en fortran. C'est simplement pour connaitre le nom des méthodes numériques utilisées pour la résolution des intégrations, des zéros de fonctions etc. D'avance merci xavier From webadmin at scilab.org Tue Jun 26 18:28:37 2012 From: webadmin at scilab.org (Web Admin) Date: Tue, 26 Jun 2012 18:28:37 +0200 Subject: Sites web Scilab innaccessibles Message-ID: <4FE9E335.8080902@scilab.org> Bonjour, Pour des raisons de maintenance, les sites web Scilab vont être indisponibles dans les prochaines heures. Nous faisons tout notre possible pour écourter ce délai au maximum, et vous prions d'accepter nos excuses pour la gêne occasionnée. Cordialement, L'équipe Scilab