Commit d233c237 by Ulrich Drepper Committed by Ulrich Drepper

Add math constants and triangular and von Mises distributions.

From-SVN: r196407
parent 4dc1d68c
2013-03-02 Ulrich Drepper <drepper@gmail.com>
Add triangular and von Mises distributions.
* include/ext/random: Include <ext/cmath>.
Add __gnu_cxx::triangular_distribution<> and
__gnu_cxx::von_mises_distribution<> classes.
* include/ext/random.tcc: Add out-of-line functions for
__gnu_cxx::triangular_distribution<> and
__gnu_cxx::von_mises_distribution<>.
* testsuite/ext/triangular_distribution/cons/default.cc: New file.
* testsuite/ext/triangular_distribution/cons/parms.cc: New file.
* testsuite/ext/triangular_distribution/operators/serialize.cc:
New file.
* testsuite/ext/triangular_distribution/operators/equal.cc:
New file.
* testsuite/ext/triangular_distribution/operators/inequal.cc:
New file.
* testsuite/ext/triangular_distribution/requirements/typedefs.cc:
New file.
* testsuite/ext/triangular_distribution/requirements/
explicit_instantiation/1.cc: New file.
* testsuite/ext/von_mises_distribution/cons/default.cc: New file.
* testsuite/ext/von_mises_distribution/cons/parms.cc: New file.
* testsuite/ext/von_mises_distribution/operators/serialize.cc:
New file.
* testsuite/ext/von_mises_distribution/operators/equal.cc: New file.
* testsuite/ext/von_mises_distribution/operators/inequal.cc:
New file.
* testsuite/ext/von_mises_distribution/requirements/typedefs.cc:
New file.
* testsuite/ext/von_mises_distribution/requirements/
explicit_instantiation/1.cc: New file.
Add math constants.
* include/Makefile.am (ext_headers): Add cmath.
* include/Makefile.in: Regenerated.
* include/ext/cmath: New file.
2013-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
......
......@@ -499,6 +499,7 @@ ext_headers = \
${ext_srcdir}/array_allocator.h \
${ext_srcdir}/bitmap_allocator.h \
${ext_srcdir}/cast.h \
${ext_srcdir}/cmath \
${ext_srcdir}/codecvt_specializations.h \
${ext_srcdir}/concurrence.h \
${ext_srcdir}/debug_allocator.h \
......
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
......@@ -15,6 +15,23 @@
@SET_MAKE@
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
......@@ -67,6 +84,11 @@ CONFIG_CLEAN_VPATH_FILES =
depcomp =
am__depfiles_maybe =
SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
ACLOCAL = @ACLOCAL@
ALLOCATOR_H = @ALLOCATOR_H@
......@@ -759,6 +781,7 @@ ext_headers = \
${ext_srcdir}/array_allocator.h \
${ext_srcdir}/bitmap_allocator.h \
${ext_srcdir}/cast.h \
${ext_srcdir}/cmath \
${ext_srcdir}/codecvt_specializations.h \
${ext_srcdir}/concurrence.h \
${ext_srcdir}/debug_allocator.h \
......@@ -1191,6 +1214,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/fragment.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
......@@ -1226,10 +1250,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
......
// Math extensions -*- C++ -*-
// Copyright (C) 2013 Free 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.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
/** @file ext/cmath
* This file is a GNU extension to the Standard C++ Library.
*/
#ifndef _EXT_CMATH
#define _EXT_CMATH 1
#pragma GCC system_header
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else
#include <cmath>
#include <type_traits>
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
// A class for math constants.
template<typename _RealType>
struct __math_constants
{
static_assert(std::is_floating_point<_RealType>::value,
"template argument not a floating point type");
// Constant @f$ \pi @f$.
static constexpr _RealType __pi = 3.1415926535897932384626433832795029L;
// Constant @f$ \pi / 2 @f$.
static constexpr _RealType __pi_half = 1.5707963267948966192313216916397514L;
// Constant @f$ \pi / 3 @f$.
static constexpr _RealType __pi_third = 1.0471975511965977461542144610931676L;
// Constant @f$ \pi / 4 @f$.
static constexpr _RealType __pi_quarter = 0.7853981633974483096156608458198757L;
// Constant @f$ \sqrt(\pi / 2) @f$.
static constexpr _RealType __root_pi_div_2 = 1.2533141373155002512078826424055226L;
// Constant @f$ 1 / \pi @f$.
static constexpr _RealType __one_div_pi = 0.3183098861837906715377675267450287L;
// Constant @f$ 2 / \pi @f$.
static constexpr _RealType __two_div_pi = 0.6366197723675813430755350534900574L;
// Constant @f$ 2 / \sqrt(\pi) @f$.
static constexpr _RealType __two_div_root_pi = 1.1283791670955125738961589031215452L;
// Constant Euler's number @f$ e @f$.
static constexpr _RealType __e = 2.7182818284590452353602874713526625L;
// Constant @f$ 1 / e @f$.
static constexpr _RealType __one_div_e = 0.36787944117144232159552377016146087L;
// Constant @f$ \log_2(e) @f$.
static constexpr _RealType __log2_e = 1.4426950408889634073599246810018921L;
// Constant @f$ \log_10(e) @f$.
static constexpr _RealType __log10_e = 0.4342944819032518276511289189166051L;
// Constant @f$ \ln(2) @f$.
static constexpr _RealType __ln_2 = 0.6931471805599453094172321214581766L;
// Constant @f$ \ln(3) @f$.
static constexpr _RealType __ln_3 = 1.0986122886681096913952452369225257L;
// Constant @f$ \ln(10) @f$.
static constexpr _RealType __ln_10 = 2.3025850929940456840179914546843642L;
// Constant Euler-Mascheroni @f$ \gamma_E @f$.
static constexpr _RealType __gamma_e = 0.5772156649015328606065120900824024L;
// Constant Golden Ratio @f$ \phi @f$.
static constexpr _RealType __phi = 1.6180339887498948482045868343656381L;
// Constant @f$ \sqrt(2) @f$.
static constexpr _RealType __root_2 = 1.4142135623730950488016887242096981L;
// Constant @f$ \sqrt(3) @f$.
static constexpr _RealType __root_3 = 1.7320508075688772935274463415058724L;
// Constant @f$ \sqrt(5) @f$.
static constexpr _RealType __root_5 = 2.2360679774997896964091736687312762L;
// Constant @f$ \sqrt(7) @f$.
static constexpr _RealType __root_7 = 2.6457513110645905905016157536392604L;
// Constant @f$ 1 / \sqrt(2) @f$.
static constexpr _RealType __one_div_root_2 = 0.7071067811865475244008443621048490L;
};
// And the template definitions for the constants.
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__pi;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__pi_half;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__pi_third;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__pi_quarter;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__root_pi_div_2;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__one_div_pi;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__two_div_pi;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__two_div_root_pi;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__e;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__one_div_e;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__log2_e;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__log10_e;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__ln_2;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__ln_3;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__ln_10;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__gamma_e;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__phi;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__root_2;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__root_3;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__root_5;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__root_7;
template<typename _RealType>
constexpr _RealType __math_constants<_RealType>::__one_div_root_2;
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace __gnu_cxx
#endif // C++11
#endif // _EXT_CMATH
......@@ -1187,6 +1187,126 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __is;
}
template<typename _RealType>
template<typename _OutputIterator,
typename _UniformRandomNumberGenerator>
void
triangular_distribution<_RealType>::
__generate_impl(_OutputIterator __f, _OutputIterator __t,
_UniformRandomNumberGenerator& __urng,
const param_type& __param)
{
__glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator>)
while (__f != __t)
*__f++ = this->operator()(__urng, __param);
}
template<typename _RealType, typename _CharT, typename _Traits>
std::basic_ostream<_CharT, _Traits>&
operator<<(std::basic_ostream<_CharT, _Traits>& __os,
const __gnu_cxx::triangular_distribution<_RealType>& __x)
{
typedef std::basic_ostream<_CharT, _Traits> __ostream_type;
typedef typename __ostream_type::ios_base __ios_base;
const typename __ios_base::fmtflags __flags = __os.flags();
const _CharT __fill = __os.fill();
const std::streamsize __precision = __os.precision();
const _CharT __space = __os.widen(' ');
__os.flags(__ios_base::scientific | __ios_base::left);
__os.fill(__space);
__os.precision(std::numeric_limits<_RealType>::max_digits10);
__os << __x.a() << __space << __x.b() << __space << __x.c();
__os.flags(__flags);
__os.fill(__fill);
__os.precision(__precision);
return __os;
}
template<typename _RealType, typename _CharT, typename _Traits>
std::basic_istream<_CharT, _Traits>&
operator>>(std::basic_istream<_CharT, _Traits>& __is,
__gnu_cxx::triangular_distribution<_RealType>& __x)
{
typedef std::basic_istream<_CharT, _Traits> __istream_type;
typedef typename __istream_type::ios_base __ios_base;
const typename __ios_base::fmtflags __flags = __is.flags();
__is.flags(__ios_base::dec | __ios_base::skipws);
_RealType __a, __b, __c;
__is >> __a >> __b >> __c;
__x.param(typename __gnu_cxx::triangular_distribution<_RealType>::
param_type(__a, __b, __c));
__is.flags(__flags);
return __is;
}
template<typename _RealType>
template<typename _OutputIterator,
typename _UniformRandomNumberGenerator>
void
von_mises_distribution<_RealType>::
__generate_impl(_OutputIterator __f, _OutputIterator __t,
_UniformRandomNumberGenerator& __urng,
const param_type& __param)
{
__glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator>)
while (__f != __t)
*__f++ = this->operator()(__urng, __param);
}
template<typename _RealType, typename _CharT, typename _Traits>
std::basic_ostream<_CharT, _Traits>&
operator<<(std::basic_ostream<_CharT, _Traits>& __os,
const __gnu_cxx::von_mises_distribution<_RealType>& __x)
{
typedef std::basic_ostream<_CharT, _Traits> __ostream_type;
typedef typename __ostream_type::ios_base __ios_base;
const typename __ios_base::fmtflags __flags = __os.flags();
const _CharT __fill = __os.fill();
const std::streamsize __precision = __os.precision();
const _CharT __space = __os.widen(' ');
__os.flags(__ios_base::scientific | __ios_base::left);
__os.fill(__space);
__os.precision(std::numeric_limits<_RealType>::max_digits10);
__os << __x.mu() << __space << __x.kappa();
__os.flags(__flags);
__os.fill(__fill);
__os.precision(__precision);
return __os;
}
template<typename _RealType, typename _CharT, typename _Traits>
std::basic_istream<_CharT, _Traits>&
operator>>(std::basic_istream<_CharT, _Traits>& __is,
__gnu_cxx::von_mises_distribution<_RealType>& __x)
{
typedef std::basic_istream<_CharT, _Traits> __istream_type;
typedef typename __istream_type::ios_base __ios_base;
const typename __ios_base::fmtflags __flags = __is.flags();
__is.flags(__ios_base::dec | __ios_base::skipws);
_RealType __mu, __kappa;
__is >> __mu >> __kappa;
__x.param(typename __gnu_cxx::von_mises_distribution<_RealType>::
param_type(__mu, __kappa));
__is.flags(__flags);
return __is;
}
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
......
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::triangular_distribution<> u;
VERIFY( u.a() == 0.0 );
VERIFY( u.b() == 0.5 );
VERIFY( u.c() == 1.0 );
VERIFY( u.min() == 0.0 );
VERIFY( u.max() == 1.0 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::triangular_distribution<> u(1.5, 3.0, 3.5);
VERIFY( u.a() == 1.5 );
VERIFY( u.b() == 3.0 );
VERIFY( u.c() == 3.5 );
VERIFY( u.min() == 1.5 );
VERIFY( u.max() == 3.5 );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.0), v, w;
VERIFY( v == w );
VERIFY( !(u == v) );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 5.0), v, w;
VERIFY( u != v );
VERIFY( !(v != w) );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2009-08-14 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <sstream>
void
test01()
{
std::stringstream str;
__gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.5), v;
std::minstd_rand0 rng;
u(rng); // advance
str << u;
str >> v;
}
int main()
{
test01();
return 0;
}
// { dg-do compile }
// { dg-options "-std=c++11" }
// { dg-require-cstdint "" }
//
// Copyright (C) 2013 Free 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::triangular_distribution<float>;
template class __gnu_cxx::triangular_distribution<double>;
template class __gnu_cxx::triangular_distribution<long double>;
// { dg-do compile }
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
void
test01()
{
typedef __gnu_cxx::triangular_distribution<double> test_type;
typedef test_type::result_type result_type;
typedef test_type::param_type param_type;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::von_mises_distribution<> u;
VERIFY( u.mu() == 0.0 );
VERIFY( u.kappa() == 1.0 );
VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::von_mises_distribution<> u(1.5, 3.0);
VERIFY( u.mu() == 1.5 );
VERIFY( u.kappa() == 3.0 );
VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
VERIFY( v == w );
VERIFY( !(u == v) );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <testsuite_hooks.h>
void
test01()
{
bool test __attribute__((unused)) = true;
__gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
VERIFY( u != v );
VERIFY( !(v != w) );
}
int main()
{
test01();
return 0;
}
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2009-08-14 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
#include <sstream>
void
test01()
{
std::stringstream str;
__gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v;
std::minstd_rand0 rng;
u(rng); // advance
str << u;
str >> v;
}
int main()
{
test01();
return 0;
}
// { dg-do compile }
// { dg-options "-std=c++11" }
// { dg-require-cstdint "" }
//
// Copyright (C) 2013 Free 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::von_mises_distribution<float>;
template class __gnu_cxx::von_mises_distribution<double>;
template class __gnu_cxx::von_mises_distribution<long double>;
// { dg-do compile }
// { dg-options "-std=c++0x" }
// { dg-require-cstdint "" }
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
// 2013-03-02 Ulrich Drepper <drepper@gmail.com>
//
// Copyright (C) 2013 Free 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>
void
test01()
{
typedef __gnu_cxx::von_mises_distribution<double> test_type;
typedef test_type::result_type result_type;
typedef test_type::param_type param_type;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment