John,

Thanks for the reply. I did not give you enough details and apologize.

Here is a more detailed code snippet.

double a = 0.1;

double lambda = 0.05;

double pi = 3.1415926535897932384626433832795;

double kw = 2.0*pi/lambda;

int n = 8; // try 7, 9, etc.

double lambda = 0.05;

double pi = 3.1415926535897932384626433832795;

double kw = 2.0*pi/lambda;

int n = 8; // try 7, 9, etc.

cout << kw*a << endl;

double xtest = boost::math::sph_neumann(n,a*kw);

//double ytest = boost::math::cyl_neumann(n,a*kw);

cout << xtest << endl; //<< " " << ytest << endl;

double xtest = boost::math::sph_neumann(n,a*kw);

//double ytest = boost::math::cyl_neumann(n,a*kw);

cout << xtest << endl; //<< " " << ytest << endl;

Here is some more info to diagnose the problem.

The problem seems to be in the spherical neumann function sph_neumann, and it seems to be for n = 8.

When I posted the problem I quoted cyl_neumann( ) because ultimately that's the function that appeared in the debugger.

I inappropriately assumed that that function would cause problems, but the problem seems to be in
sph_neumann.

It doesn't matter if I define double x = a*kw and pass this into the interface, what seems to matter is the value of the index, when n = 8 it doesn't work. It works for 9 and 10 and all integers before 8.

I can replace x with a, lambda or pi and it works for n = 8, so it seems to be this combination of numbers or something I'm doing wrong w/r to type casting variables etc.

I am using VS2005 and boost version 1.0, (104400).

I hope this helps.

David

>Any ideas?

Which Boost version? This works for me as:

std::cout << boost::math::cyl_neumann(8, 12.6) << std::endl;

prints:

0.244094

John.

_______________________________________________

Boost-users mailing list

Boost-users@lists.boost.org

http://lists.boost.org/mailman/listinfo.cgi/boost-users