J'écris une bibliothèque de polynômes et j'ai
quelques problèmes avec l'opérateur exposant (^).
J'ai écrit toutes les surcharges nécessaires et
ceci par, exemple, compile:
Polynome P = (X^3) - 6 * (X^2) + 9 * X - 4;
Par contre, ceci ne compile pas:
Polynome P = X^3 - 6 * X^2 + 9 * X - 4;
Par ailleurs X^2 - 1 compile et donne X.
Je n'ai donc pas la bonne priorité.
Le lundi 19 décembre 2005 à 12:45:24, Etienne Rousee a écrit dans fr.comp.lang.c++ :
Bon, je crois que je vais garder ^ et mettre des parenthèses un peu partout.
... et si jamais tu oublies une parenthèse, tu auras un bug bien pénible.
Ben oui, mais tu vois une autre solution ?
En plus, j'ai l'intention de le passer en template après.
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
-- ___________ 19/12/2005 16:12:30 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le lundi 19 décembre 2005 à 12:45:24, Etienne Rousee a écrit dans
fr.comp.lang.c++ :
Bon, je crois que je vais garder ^ et mettre des
parenthèses un peu partout.
... et si jamais tu oublies une parenthèse, tu auras un bug bien
pénible.
Ben oui, mais tu vois une autre solution ?
En plus, j'ai l'intention de le passer en template après.
À part utiliser un autre opérateur (et il n'y a plus que « % » qui
répond au cahier des charges)...
--
___________ 19/12/2005 16:12:30
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le lundi 19 décembre 2005 à 12:45:24, Etienne Rousee a écrit dans fr.comp.lang.c++ :
Bon, je crois que je vais garder ^ et mettre des parenthèses un peu partout.
... et si jamais tu oublies une parenthèse, tu auras un bug bien pénible.
Ben oui, mais tu vois une autre solution ?
En plus, j'ai l'intention de le passer en template après.
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
-- ___________ 19/12/2005 16:12:30 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Fabien LE LEZ
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin :
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est coincé. Je n'ai malheureusement rien d'autre à proposer qu'une fonction "classique" (i.e. autre qu'un opérateur). Le code utilisateur sera plus lourd, mais moins trompeur.
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin
<sp@mailclub.no.spam.net.invalid>:
À part utiliser un autre opérateur (et il n'y a plus que « % » qui
répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est
coincé.
Je n'ai malheureusement rien d'autre à proposer qu'une fonction
"classique" (i.e. autre qu'un opérateur).
Le code utilisateur sera plus lourd, mais moins trompeur.
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin :
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est coincé. Je n'ai malheureusement rien d'autre à proposer qu'une fonction "classique" (i.e. autre qu'un opérateur). Le code utilisateur sera plus lourd, mais moins trompeur.
Serge Paccalin
Le lundi 19 décembre 2005 à 16:24:08, Fabien LE LEZ a écrit dans fr.comp.lang.c++ :
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin :
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est coincé.
Pire, on a encore un problème de priorité, je ne l'ai qu'après ; 6 * X % 2 est interprété comme (6 * X) % 2...
Je n'ai malheureusement rien d'autre à proposer qu'une fonction "classique" (i.e. autre qu'un opérateur). Le code utilisateur sera plus lourd, mais moins trompeur.
Et Polynome::operator(int) ?
Polynome P = 6 * X(2) + 2 * X + 1;
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en un point, il faudra faire attention : P(2) élèverait P au carré, alors que P(2.0) l'évaluerait en x = 2.
-- ___________ 19/12/2005 16:41:01 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le lundi 19 décembre 2005 à 16:24:08, Fabien LE LEZ a écrit dans
fr.comp.lang.c++ :
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin
<sp@mailclub.no.spam.net.invalid>:
À part utiliser un autre opérateur (et il n'y a plus que « % » qui
répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est
coincé.
Pire, on a encore un problème de priorité, je ne l'ai qu'après ;
6 * X % 2 est interprété comme (6 * X) % 2...
Je n'ai malheureusement rien d'autre à proposer qu'une fonction
"classique" (i.e. autre qu'un opérateur).
Le code utilisateur sera plus lourd, mais moins trompeur.
Et Polynome::operator(int) ?
Polynome P = 6 * X(2) + 2 * X + 1;
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en
un point, il faudra faire attention : P(2) élèverait P au carré, alors
que P(2.0) l'évaluerait en x = 2.
--
___________ 19/12/2005 16:41:01
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le lundi 19 décembre 2005 à 16:24:08, Fabien LE LEZ a écrit dans fr.comp.lang.c++ :
On Mon, 19 Dec 2005 16:14:20 +0100, Serge Paccalin :
À part utiliser un autre opérateur (et il n'y a plus que « % » qui répond au cahier des charges)...
Et là encore, % représente le modulo sur les polynômes, donc on est coincé.
Pire, on a encore un problème de priorité, je ne l'ai qu'après ; 6 * X % 2 est interprété comme (6 * X) % 2...
Je n'ai malheureusement rien d'autre à proposer qu'une fonction "classique" (i.e. autre qu'un opérateur). Le code utilisateur sera plus lourd, mais moins trompeur.
Et Polynome::operator(int) ?
Polynome P = 6 * X(2) + 2 * X + 1;
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en un point, il faudra faire attention : P(2) élèverait P au carré, alors que P(2.0) l'évaluerait en x = 2.
-- ___________ 19/12/2005 16:41:01 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Fabien LE LEZ
On Mon, 19 Dec 2005 16:49:16 +0100, Serge Paccalin :
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en un point, il faudra faire attention : P(2) élèverait P au carré, alors que P(2.0) l'évaluerait en x = 2.
C'est au moins aussi casse-gueule que operator^ ...
On Mon, 19 Dec 2005 16:49:16 +0100, Serge Paccalin :
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en
un point, il faudra faire attention : P(2) élèverait P au carré, alors
que P(2.0) l'évaluerait en x = 2.
C'est au moins aussi casse-gueule que operator^ ...
On Mon, 19 Dec 2005 16:49:16 +0100, Serge Paccalin :
S'il y a déjà un Polynome::operator(double) pour évaluer le polynôme en un point, il faudra faire attention : P(2) élèverait P au carré, alors que P(2.0) l'évaluerait en x = 2.
C'est au moins aussi casse-gueule que operator^ ...
loic.actarus.joly
Quelques idées, dont aucune n'est trancendante : - P = 2*X*X*X +3*X*X + 4*X +1 - P = 2*X3 + 3*X2 + 4*X + 1 - P = [2,3,4,1]
Quelques idées, dont aucune n'est trancendante :
- P = 2*X*X*X +3*X*X + 4*X +1
- P = 2*X3 + 3*X2 + 4*X + 1
- P = [2,3,4,1]
Quelques idées, dont aucune n'est trancendante : - P = 2*X*X*X +3*X*X + 4*X +1 - P = 2*X3 + 3*X2 + 4*X + 1 - P = [2,3,4,1]
Jean-Marc Bourguet
"" writes:
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien LE LEZ
On 20 Dec 2005 08:31:46 +0100, Jean-Marc Bourguet :
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
Je crois qu'il a confondu "polynôme exposant N" et "X exposant N pour construction d'un polynôme"...
On 20 Dec 2005 08:31:46 +0100, Jean-Marc Bourguet <jm@bourguet.org>:
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
Je crois qu'il a confondu "polynôme exposant N" et "X exposant N pour
construction d'un polynôme"...
On 20 Dec 2005 08:31:46 +0100, Jean-Marc Bourguet :
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
Je crois qu'il a confondu "polynôme exposant N" et "X exposant N pour construction d'un polynôme"...
meow
<Question naive=on> Est-il envisageable de considérer un mécanisme de pré-processing pour lire ton code et mettre les parantyhèses aux bons endroits avant de passer la main au compilo ? <Question naive=off>
<Question naive=on>
Est-il envisageable de considérer un mécanisme de pré-processing
pour lire ton code et mettre les parantyhèses aux bons endroits avant
de passer la main au compilo ?
<Question naive=off>
<Question naive=on> Est-il envisageable de considérer un mécanisme de pré-processing pour lire ton code et mettre les parantyhèses aux bons endroits avant de passer la main au compilo ? <Question naive=off>
loic.actarus.joly
"" wri tes:
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
C'est très simple : ça compile sans problème avec gcc7.2 ou visual C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps, c'est un peu plus difficile...
En fait, je pensais à une syntaxe du style de Blitz, ou boost::assign :
C'est très simple : ça compile sans problème avec gcc7.2 ou visual
C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps,
c'est un peu plus difficile...
En fait, je pensais à une syntaxe du style de Blitz, ou boost::assign
:
C'est très simple : ça compile sans problème avec gcc7.2 ou visual C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps, c'est un peu plus difficile...
En fait, je pensais à une syntaxe du style de Blitz, ou boost::assign :
P = 1,2,3,4,5;
-- Loïc
Jean-Marc Bourguet
"" writes:
"" writes:
- P = [2,3,4,1]
Comment tu arrives a faire fonctionner celle-ci?
C'est très simple : ça compile sans problème avec gcc7.2 ou visual C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps, c'est un peu plus difficile...
Je ne vois pas l'intérêt de cette notationa avec cette version. Tu définis simplement U2191 comme l'opérateur d'exponentiation et roule la machine (d'ailleurs, je ne sais pas encore si la proposition d'avoir cette définition d'office est passée ou pas...)
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
C'est très simple : ça compile sans problème avec gcc7.2 ou visual
C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps,
c'est un peu plus difficile...
Je ne vois pas l'intérêt de cette notationa avec cette
version. Tu définis simplement U2191 comme l'opérateur
d'exponentiation et roule la machine (d'ailleurs, je ne sais
pas encore si la proposition d'avoir cette définition
d'office est passée ou pas...)
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
C'est très simple : ça compile sans problème avec gcc7.2 ou visual C++ 2015. Bien évidemment, si tu ne peut pas voyager dans le temps, c'est un peu plus difficile...
Je ne vois pas l'intérêt de cette notationa avec cette version. Tu définis simplement U2191 comme l'opérateur d'exponentiation et roule la machine (d'ailleurs, je ne sais pas encore si la proposition d'avoir cette définition d'office est passée ou pas...)
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org