random (rice_distribution<>::operator==): Change inline friend definition to non-template.

2012-09-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/random (rice_distribution<>::operator==): Change
	inline friend definition to non-template.
	* testsuite/ext/random/rice_distribution/requirements/
	explicit_instantiation/1.cc: New.

	* testsuite/26_numerics/random/normal_mv_distribution: Move...
	* testsuite/ext/random/normal_mv_distribution: ... here.
	* testsuite/26_numerics/random/simd_fast_mersenne_twister_engine:
	Move...
	* testsuite/ext/random/simd_fast_mersenne_twister_engine: ... here.
	* testsuite/26_numerics/random/beta_distribution: Move...
	* testsuite/ext/random/beta_distribution: ... here.
	* testsuite/26_numerics/random/rice_distribution: Move...
	* testsuite/ext/random/rice_distribution: ... here.

From-SVN: r191367
This commit is contained in:
Paolo Carlini 2012-09-16 22:28:21 +00:00 committed by Paolo Carlini
parent 2e33ad2166
commit d9d69f64b1
31 changed files with 53 additions and 9 deletions

View File

@ -1,3 +1,20 @@
2012-09-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/random (rice_distribution<>::operator==): Change
inline friend definition to non-template.
* testsuite/ext/random/rice_distribution/requirements/
explicit_instantiation/1.cc: New.
* testsuite/26_numerics/random/normal_mv_distribution: Move...
* testsuite/ext/random/normal_mv_distribution: ... here.
* testsuite/26_numerics/random/simd_fast_mersenne_twister_engine:
Move...
* testsuite/ext/random/simd_fast_mersenne_twister_engine: ... here.
* testsuite/26_numerics/random/beta_distribution: Move...
* testsuite/ext/random/beta_distribution: ... here.
* testsuite/26_numerics/random/rice_distribution: Move...
* testsuite/ext/random/rice_distribution: ... here.
2012-09-14 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/ext/random: Add __gnu_cxx::rice_distribution<> class.

View File

@ -87,7 +87,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ seed(__sd); }
template<typename _Sseq, typename = typename
std::enable_if<!std::is_same<_Sseq, simd_fast_mersenne_twister_engine>::value>
std::enable_if<!std::is_same<_Sseq,
simd_fast_mersenne_twister_engine>::value>
::type>
explicit
simd_fast_mersenne_twister_engine(_Sseq& __q)
@ -149,7 +150,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _CharT, typename _Traits>
friend std::basic_ostream<_CharT, _Traits>&
operator<<(std::basic_ostream<_CharT, _Traits>& __os,
const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType_2,
const __gnu_cxx::simd_fast_mersenne_twister_engine
<_UIntType_2,
__m_2, __pos1_2, __sl1_2, __sl2_2, __sr1_2, __sr2_2,
__msk1_2, __msk2_2, __msk3_2, __msk4_2,
__parity1_2, __parity2_2, __parity3_2, __parity4_2>& __x);
@ -1079,13 +1081,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* the same parameters and the sequences that would
* be generated are equal.
*/
template<typename _RealType1>
friend bool
operator==(const rice_distribution<_RealType1>& __d1,
const rice_distribution<_RealType1>& __d2)
{ return (__d1.param() == __d2.param()
&& __d1._M_ndx == __d2._M_ndx
&& __d1._M_ndy == __d2._M_ndy); }
friend bool
operator==(const rice_distribution& __d1,
const rice_distribution& __d2)
{ return (__d1.param() == __d2.param()
&& __d1._M_ndx == __d2._M_ndx
&& __d1._M_ndy == __d2._M_ndy); }
/**
* @brief Inserts a %rice_distribution random number distribution

View File

@ -0,0 +1,26 @@
// { dg-do compile }
// { dg-options "-std=c++11" }
// { dg-require-cstdint "" }
//
// Copyright (C) 2012 Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <ext/random>
template class __gnu_cxx::rice_distribution<float>;
template class __gnu_cxx::rice_distribution<double>;
template class __gnu_cxx::rice_distribution<long double>;