re PR libstdc++/51133 (Incorrect implementation of std::tr1::hermite())
authorJason Dick <dickphd@gmail.com>
Tue, 15 Nov 2011 10:49:00 +0000 (10:49 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Tue, 15 Nov 2011 10:49:00 +0000 (10:49 +0000)
2011-11-15  Jason Dick  <dickphd@gmail.com>

PR libstdc++/51133
* include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
wrong sign in recursion relation.

From-SVN: r181381

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr1/poly_hermite.tcc

index 5eb3f8d4376b26bff64a429db118303c6f4d1418..e4a09a5e587ffcbc47fb00cc1f38c6de3a2ee01f 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-15  Jason Dick  <dickphd@gmail.com>
+
+       PR libstdc++/51133
+       * include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
+       wrong sign in recursion relation.
+
 2011-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/c_global/cmath (frexp, modf, remquo): Do not mark constexpr,
index e86b3777c746b0325d90f0e5512506f8f79e57bb..95e8079d5437822c51b7baafdf918ab04f2cd98d 100644 (file)
@@ -1,6 +1,6 @@
 // Special functions -*- C++ -*-
 
-// Copyright (C) 2006, 2007, 2008, 2009, 2010
+// Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -84,7 +84,7 @@ namespace tr1
       unsigned int __i;
       for  (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i)
         {
-          __H_n = 2 * (__x * __H_nm1 + (__i - 1) * __H_nm2);
+          __H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2);
           __H_nm2 = __H_nm1;
           __H_nm1 = __H_n;
         }