Good afternoon,
I'm having some troubles (in the results) to translate the following routine in C++ to VB. It's a routine which messes with complex numbers... So here it is (and how the call is made:
Code:
function Solve(const double al, const complex<double> &z,
const double u, complex<double> &zto, double &r)
{
const double ex = abs(z);
const double ex2 = ex*ex;
const double ex3 = ex2*ex;
double e = (al + (ex - ex3/8)*sin(al) + 0.5 * ex2 * sin(2*al)
+ 0.375 * ex3 * sin(3*al));
complex<double> z1 = conj(z);
for (int k = 0; k < 10; k++)
{
const complex<double> z2(0, e);
const complex<double> zteta = exp(z2);
const complex<double> z3 = z1*zteta;
const double dl = al - e + z3.imag();
r = 1 - z3.real();
if (fabs(dl) < 1e-12)
{
z1 = u * z * z3.imag();
const complex<double> z2(z1.imag(), -z1.real());
zto = (-z + zteta + z2)/r;
return;
}
e += dl/r;
}
xpWarn("Can't converge\n", __FILE__, __LINE__);
}
And it's called like this:
Code:
complex<double> z(xk, xh);
complex<double> zto;
double r;
Solve(xl, z, u, zto, r);
Can someone give me an hand please?...
Kind regards
JKepler