Boost logo

Boost :

Subject: Re: [boost] [1.48.0] Beta 1 is now available from SourceForge
From: John Maddock (boost.regex_at_[hidden])
Date: 2011-10-27 13:52:57


...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_i.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_k.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_if.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_kf.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_il.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/threading-multi/cyl_bessel_kl.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_i.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_k.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_if.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_kf.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_il.o...
...failed clang-darwin.compile.c++
bin.v2/libs/math/build/clang-darwin-4.2.1/release/link-static/threading-multi/cyl_bessel_kl.o...
...failed updating 12 targets…

>Here's one of the compile failures:

Marshall,

would you be able to test the patch below with clang?

Many thanks, John.

Index: special_functions/bessel.hpp
===================================================================
--- special_functions/bessel.hpp (revision 74925)
+++ special_functions/bessel.hpp (working copy)
@@ -166,61 +166,6 @@
 }

 template <class T, class Policy>
-struct cyl_bessel_i_small_z
-{
- typedef T result_type;
-
- cyl_bessel_i_small_z(T v_, T z_) : k(0), v(v_), mult(z_*z_/4)
- {
- BOOST_MATH_STD_USING
- term = 1;
- }
-
- T operator()()
- {
- T result = term;
- ++k;
- term *= mult / k;
- term /= k + v;
- return result;
- }
-private:
- unsigned k;
- T v;
- T term;
- T mult;
-};
-
-template <class T, class Policy>
-inline T bessel_i_small_z_series(T v, T x, const Policy& pol)
-{
- BOOST_MATH_STD_USING
- T prefix;
- if(v < max_factorial<T>::value)
- {
- prefix = pow(x / 2, v) / boost::math::tgamma(v + 1, pol);
- }
- else
- {
- prefix = v * log(x / 2) - boost::math::lgamma(v + 1, pol);
- prefix = exp(prefix);
- }
- if(prefix == 0)
- return prefix;
-
- cyl_bessel_i_small_z<T, Policy> s(v, x);
- boost::uintmax_t max_iter =
policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
- T zero = 0;
- T result = boost::math::tools::sum_series(s,
boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
- T result = boost::math::tools::sum_series(s,
boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-
policies::check_series_iterations<T>("boost::math::bessel_j_small_z_series<%1%>(%1%,%1%)",
max_iter, pol);
- return prefix * result;
-}
-
-template <class T, class Policy>
 T cyl_bessel_i_imp(T v, T x, const Policy& pol)
 {
    //
Index: special_functions/detail/bessel_ik.hpp
===================================================================
--- special_functions/detail/bessel_ik.hpp (revision 74925)
+++ special_functions/detail/bessel_ik.hpp (working copy)
@@ -23,6 +23,61 @@

 namespace detail {

+template <class T, class Policy>
+struct cyl_bessel_i_small_z
+{
+ typedef T result_type;
+
+ cyl_bessel_i_small_z(T v_, T z_) : k(0), v(v_), mult(z_*z_/4)
+ {
+ BOOST_MATH_STD_USING
+ term = 1;
+ }
+
+ T operator()()
+ {
+ T result = term;
+ ++k;
+ term *= mult / k;
+ term /= k + v;
+ return result;
+ }
+private:
+ unsigned k;
+ T v;
+ T term;
+ T mult;
+};
+
+template <class T, class Policy>
+inline T bessel_i_small_z_series(T v, T x, const Policy& pol)
+{
+ BOOST_MATH_STD_USING
+ T prefix;
+ if(v < max_factorial<T>::value)
+ {
+ prefix = pow(x / 2, v) / boost::math::tgamma(v + 1, pol);
+ }
+ else
+ {
+ prefix = v * log(x / 2) - boost::math::lgamma(v + 1, pol);
+ prefix = exp(prefix);
+ }
+ if(prefix == 0)
+ return prefix;
+
+ cyl_bessel_i_small_z<T, Policy> s(v, x);
+ boost::uintmax_t max_iter =
policies::get_max_series_iterations<Policy>();
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+ T zero = 0;
+ T result = boost::math::tools::sum_series(s,
boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
+#else
+ T result = boost::math::tools::sum_series(s,
boost::math::policies::get_epsilon<T, Policy>(), max_iter);
+#endif
+
policies::check_series_iterations<T>("boost::math::bessel_j_small_z_series<%1%>(%1%,%1%)",
max_iter, pol);
+ return prefix * result;
+}
+
 // Calculate K(v, x) and K(v+1, x) by method analogous to
 // Temme, Journal of Computational Physics, vol 21, 343 (1976)
 template <typename T, typename Policy>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk