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.

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;

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



From: John Maddock <boost.regex@virgin.net>
To: boost-users@lists.boost.org
Sent: Thursday, March 22, 2012 2:00 PM
Subject: Re: [Boost-users] spherical bessel functions

>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