       RE: C++ to Mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg30843] RE: [mg30812] C++ to Mathematica
• From: "Barthelet, Luc" <lucb at ea.com>
• Date: Thu, 20 Sep 2001 03:51:40 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```1) this code does not compile in C++, it is full of typos.
2) here is what I believe to be the translation in Mathematica:
minErr = MAXERR;
bestM = STARTM;
numConvergence = 0;
For[c0 = avgc0 -.5, c0 <= avgc0 +.5, c0 += 0.01,
For[ M = -1.0, M <= 1.0, M +=0.01,
sum = 0.0;
num = 0;
c02 = c0 * c0;
For[j=0,j<10,j++,
If[(avgc0>0),p=avgp[j]; c=avgc[j]; sum+=
fabs(sqrt(c02 - M * p *p)-c); num++;]
];
If[(num<=0), Continue];
err = sum/num;
If[(err <minErr), bestc0=c0; bestM = MMinErr =
err;numConvergence++;];

];
];

If[(numConvergence==1), STARTM, bestM]

Hope this motivates you to learn mathematica (or C++).

Cheers,
Luc

-----Original Message-----
From: Moranresearch at aol.com [mailto:Moranresearch at aol.com]
To: mathgroup at smc.vnet.net
Subject: [mg30843] [mg30812] C++ to Mathematica

unfamiliar with the loop structures and commands of C++. Even if there are
easier ways to do this in M4.1 ( which, by the way, I would like to know
also) I want to reproduce this as closely as possible so I can verify the
answer with the older C++ program.Thank you.

minErr = MAXERR; bestM = STARTM, numConvergence = 0
for(c0 = avgc0 -.5; c0 <= avgc0 +.5; c0 += 0.01){for M = -1.0; M <= 1.0; M
+=0.01)
{sum = 0.0; num = 0; c02 = c0 * c0;
for(j=0;j<10;j++){
if{avgc0>0){
p=avgp[j]
c=avgc[j]
sum+= fabs(sqrt(c02 - M * p *p)-c);num++;}}
if(num<=0) continue;
err = sum/((double)num;
if(err <minErr){
bestc0=c0;
bestM=M
MinErr = err;
numConvergence++;}}}
if(numConvergence==1) return STARTM;
return bestM

```

• Prev by Date: RE: NIntegrate Precision
• Next by Date: Re: Numbered equations
• Previous by thread: C++ to Mathematica
• Next by thread: Cheating Multiple Point Attractors into Existence