Article View: fr.comp.lang.c
Article #30Re: [C/algo] Cumul des termes d'un vecteur
From: JKB
Date: Mon, 02 Feb 2009 21:34
Date: Mon, 02 Feb 2009 21:34
53 lines
3178 bytes
3178 bytes
Le 02-02-2009, ? propos de
Re: [C/algo] Cumul des termes d'un vecteur,
Jean-Marc Bourguet ?crivait dans fr.comp.lang.c :
> JKB <knatschke@koenigsberg.fr> writes:
>
>> Je suis en train de me poser un problème d'algorithmie (peut-être
>> de base, mais sur ce coup, google n'est pas mon ami...). J'ai un vecteur
>> de real*8, enfin de double ;-) d'une taille imposante (plusieurs milliers
>> de termes de tout ordre de grandeur). Je cherche à obtenir la somme des
>> termes avec le minimum de perte de précision.
>
> Ça, c'est une question pour Vincent.
>
> En attendant un spécialiste d'analyse numérique, tu peux faire quelque
> chose qui s'approche de la double précision (et que j'ai trouvé si j'ai
> bonne mémoire chez D.E.K.)
>
> real8 sum(real8 const* array, int size)
> {
> real8 result = 0.0, error = 0.0;
> int i;
> for (i = 0; i < size; ++i) {
> real8 temp = result;
> real8 y = array[i] + error;
> result = temp + y;
> error = (temp - result) + y;
> }
> return result;
>
> }
Je ne vois pas bien ce soir comment ce truc fonctionne (enfin,
théoriquement parlant...). S'il y avait quelque part un pointeur avec
une explication, je suis preneur.
> Sinon j'ai un vague souvenir que le meilleur moyen (pas nécessairement un
> ordre, tu peux faire des sommes partielles puis les sommer) dépend des
> données. Si tous les nombres sont positifs, effectivement l'ordre
> croissant est la réponse, mais si il y a des valeurs négative, le trouver
> est dans l'absolu un problème NP-complet.
J'ai aussi commencé par scinder mon problème pour avoir des sommes
partielles. Le souci est que je ne maîtrise plus la dérive...
Cordialement,
JKB
Xpost et fu2 à fca (que j'avais oublié...)
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Technical Details
Message-ID:
<slrngoepmh.t00.knatschke@rayleigh.systella.fr>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!nerim.net!biggoron.nerim.net!not-for-mailReferences:
<slrngoeilo.t00.knatschke@rayleigh.systella.fr> <87fxiw7g2c.fsf@news.bourguet.org>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,fe49c8794231978a X-Google-Thread: f5075,fe0f17e9f1e044dd,start X-Google-Attributes: gidf9822,gidf5075,domainid0,public,usenet X-Google-Language: FRENCH,UTF8 Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!nerim.net!biggoron.nerim.net!not-for-mail From: JKB <knatschke@koenigsberg.fr> Newsgroups: fr.comp.lang.c,fr.comp.algorithmes Subject: Re: [C/algo] Cumul des termes d'un vecteur Followup-To: fr.comp.algorithmes Date: Mon, 2 Feb 2009 21:34:17 +0000 (UTC) Organization: Nerim -- xDSL Internet Provider Lines: 53 Approved: la prochaine fois, ce sera du RPL/2 ! Message-ID: <slrngoepmh.t00.knatschke@rayleigh.systella.fr> References: <slrngoeilo.t00.knatschke@rayleigh.systella.fr> <87fxiw7g2c.fsf@news.bourguet.org> Reply-To: wilhelm-siegfried.knatschke-koenigsberg@chezmoi.com NNTP-Posting-Host: rayleigh.systella.fr Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: biggoron.nerim.net 1233610457 98304 213.41.184.253 (2 Feb 2009 21:34:17 GMT) X-Complaints-To: abuse@nerim.net NNTP-Posting-Date: Mon, 2 Feb 2009 21:34:17 +0000 (UTC) User-Agent: slrn/pre0.9.9-111 (Linux)