Initial Commit
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
! LDPC (174,87) code
|
||||
parameter (KK=87) !Information bits (75 + CRC12)
|
||||
parameter (ND=58) !Data symbols
|
||||
parameter (NS=21) !Sync symbols (3 @ Costas 7x7)
|
||||
parameter (NN=NS+ND) !Total channel symbols (79)
|
||||
parameter (NSPS=2048) !Samples per symbol at 12000 S/s
|
||||
parameter (NZ=NSPS*NN) !Samples in full 15 s waveform (161,792)
|
||||
parameter (NMAX=15*12000) !Samples in iwave (180,000)
|
||||
parameter (NFFT1=2*NSPS, NH1=NFFT1/2) !Length of FFTs for symbol spectra
|
||||
parameter (NHSYM=2*NMAX/NSPS-1) !Number of symbol spectra (half-symbol steps)
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,153 @@
|
||||
#ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED
|
||||
#define BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED
|
||||
|
||||
//
|
||||
// Copyright 2015 Peter Dimov
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt
|
||||
//
|
||||
|
||||
#include <boost/type_traits/copy_cv.hpp>
|
||||
#include <boost/type_traits/remove_cv.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/is_void.hpp>
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <cstddef>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
|
||||
namespace type_traits_detail
|
||||
{
|
||||
|
||||
template<class T, class U> struct composite_pointer_type;
|
||||
|
||||
// same type
|
||||
|
||||
template<class T> struct composite_pointer_type<T*, T*>
|
||||
{
|
||||
typedef T* type;
|
||||
};
|
||||
|
||||
// nullptr_t
|
||||
|
||||
#if !defined( BOOST_NO_CXX11_NULLPTR )
|
||||
|
||||
#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) )
|
||||
|
||||
template<class T> struct composite_pointer_type<T*, decltype(nullptr)>
|
||||
{
|
||||
typedef T* type;
|
||||
};
|
||||
|
||||
template<class T> struct composite_pointer_type<decltype(nullptr), T*>
|
||||
{
|
||||
typedef T* type;
|
||||
};
|
||||
|
||||
template<> struct composite_pointer_type<decltype(nullptr), decltype(nullptr)>
|
||||
{
|
||||
typedef decltype(nullptr) type;
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
template<class T> struct composite_pointer_type<T*, std::nullptr_t>
|
||||
{
|
||||
typedef T* type;
|
||||
};
|
||||
|
||||
template<class T> struct composite_pointer_type<std::nullptr_t, T*>
|
||||
{
|
||||
typedef T* type;
|
||||
};
|
||||
|
||||
template<> struct composite_pointer_type<std::nullptr_t, std::nullptr_t>
|
||||
{
|
||||
typedef std::nullptr_t type;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif // !defined( BOOST_NO_CXX11_NULLPTR )
|
||||
|
||||
namespace detail
|
||||
{
|
||||
|
||||
template<class T, class U> struct has_common_pointee
|
||||
{
|
||||
private:
|
||||
|
||||
typedef typename boost::remove_cv<T>::type T2;
|
||||
typedef typename boost::remove_cv<U>::type U2;
|
||||
|
||||
public:
|
||||
|
||||
BOOST_STATIC_CONSTANT( bool, value =
|
||||
(boost::is_same<T2, U2>::value)
|
||||
|| boost::is_void<T2>::value
|
||||
|| boost::is_void<U2>::value
|
||||
|| (boost::is_base_of<T2, U2>::value)
|
||||
|| (boost::is_base_of<U2, T2>::value) );
|
||||
};
|
||||
|
||||
template<class T, class U> struct common_pointee
|
||||
{
|
||||
private:
|
||||
|
||||
typedef typename boost::remove_cv<T>::type T2;
|
||||
typedef typename boost::remove_cv<U>::type U2;
|
||||
|
||||
public:
|
||||
|
||||
typedef typename boost::conditional<
|
||||
|
||||
boost::is_same<T2, U2>::value || boost::is_void<T2>::value || boost::is_base_of<T2, U2>::value,
|
||||
typename boost::copy_cv<T, U>::type,
|
||||
typename boost::copy_cv<U, T>::type
|
||||
|
||||
>::type type;
|
||||
};
|
||||
|
||||
template<class T, class U> struct composite_pointer_impl
|
||||
{
|
||||
private:
|
||||
|
||||
typedef typename boost::remove_cv<T>::type T2;
|
||||
typedef typename boost::remove_cv<U>::type U2;
|
||||
|
||||
public:
|
||||
|
||||
typedef typename boost::copy_cv<typename boost::copy_cv<typename composite_pointer_type<T2, U2>::type const, T>::type, U>::type type;
|
||||
};
|
||||
|
||||
//Old compilers like MSVC-7.1 have problems using boost::conditional in
|
||||
//composite_pointer_type. Partially specializing on has_common_pointee<T, U>::value
|
||||
//seems to make their life easier
|
||||
template<class T, class U, bool = has_common_pointee<T, U>::value >
|
||||
struct composite_pointer_type_dispatch
|
||||
: common_pointee<T, U>
|
||||
{};
|
||||
|
||||
template<class T, class U>
|
||||
struct composite_pointer_type_dispatch<T, U, false>
|
||||
: composite_pointer_impl<T, U>
|
||||
{};
|
||||
|
||||
|
||||
} // detail
|
||||
|
||||
|
||||
template<class T, class U> struct composite_pointer_type<T*, U*>
|
||||
{
|
||||
typedef typename detail::composite_pointer_type_dispatch<T, U>::type* type;
|
||||
};
|
||||
|
||||
} // namespace type_traits_detail
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED
|
||||
@@ -0,0 +1,150 @@
|
||||
|
||||
// Copyright Aleksey Gurtovoy 2000-2004
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
// Preprocessed version of "boost/mpl/plus.hpp" header
|
||||
// -- DO NOT modify by hand!
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
|
||||
template<
|
||||
typename Tag1
|
||||
, typename Tag2
|
||||
|
||||
, BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
|
||||
, BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
|
||||
>
|
||||
struct plus_impl
|
||||
: if_c<
|
||||
( tag1_ > tag2_ )
|
||||
, aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
|
||||
, aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
|
||||
>::type
|
||||
{
|
||||
};
|
||||
|
||||
/// for Digital Mars C++/compilers with no CTPS/TTP support
|
||||
template<> struct plus_impl< na,na >
|
||||
{
|
||||
template< typename U1, typename U2 > struct apply
|
||||
{
|
||||
typedef apply type;
|
||||
BOOST_STATIC_CONSTANT(int, value = 0);
|
||||
};
|
||||
};
|
||||
|
||||
template<> struct plus_impl< na,integral_c_tag >
|
||||
{
|
||||
template< typename U1, typename U2 > struct apply
|
||||
{
|
||||
typedef apply type;
|
||||
BOOST_STATIC_CONSTANT(int, value = 0);
|
||||
};
|
||||
};
|
||||
|
||||
template<> struct plus_impl< integral_c_tag,na >
|
||||
{
|
||||
template< typename U1, typename U2 > struct apply
|
||||
{
|
||||
typedef apply type;
|
||||
BOOST_STATIC_CONSTANT(int, value = 0);
|
||||
};
|
||||
};
|
||||
|
||||
template< typename T > struct plus_tag
|
||||
: tag< T,na >
|
||||
{
|
||||
};
|
||||
|
||||
/// forward declaration
|
||||
|
||||
template<
|
||||
typename BOOST_MPL_AUX_NA_PARAM(N1)
|
||||
, typename BOOST_MPL_AUX_NA_PARAM(N2)
|
||||
>
|
||||
struct plus2;
|
||||
|
||||
template<
|
||||
typename BOOST_MPL_AUX_NA_PARAM(N1)
|
||||
, typename BOOST_MPL_AUX_NA_PARAM(N2)
|
||||
, typename N3 = na, typename N4 = na, typename N5 = na
|
||||
>
|
||||
struct plus
|
||||
|
||||
: aux::msvc_eti_base< typename if_<
|
||||
|
||||
is_na<N3>
|
||||
, plus2< N1,N2 >
|
||||
, plus<
|
||||
plus2< N1,N2 >
|
||||
, N3, N4, N5
|
||||
>
|
||||
>::type
|
||||
|
||||
>
|
||||
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(
|
||||
5
|
||||
, plus
|
||||
, ( N1, N2, N3, N4, N5 )
|
||||
)
|
||||
};
|
||||
|
||||
template<
|
||||
typename N1
|
||||
, typename N2
|
||||
>
|
||||
struct plus2
|
||||
: aux::msvc_eti_base< typename apply_wrap2<
|
||||
plus_impl<
|
||||
typename plus_tag<N1>::type
|
||||
, typename plus_tag<N2>::type
|
||||
>
|
||||
, N1
|
||||
, N2
|
||||
>::type >::type
|
||||
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
|
||||
|
||||
};
|
||||
|
||||
BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
|
||||
|
||||
}}
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
|
||||
namespace aux {
|
||||
template< typename T, T n1, T n2 >
|
||||
struct plus_wknd
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(T, value = (n1 + n2));
|
||||
typedef integral_c< T,value > type;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
template<>
|
||||
struct plus_impl< integral_c_tag,integral_c_tag >
|
||||
{
|
||||
template< typename N1, typename N2 > struct apply
|
||||
: aux::plus_wknd<
|
||||
typename aux::largest_int<
|
||||
typename N1::value_type
|
||||
, typename N2::value_type
|
||||
>::type
|
||||
, N1::value
|
||||
, N2::value
|
||||
>::type
|
||||
|
||||
{
|
||||
};
|
||||
};
|
||||
|
||||
}}
|
||||
@@ -0,0 +1,61 @@
|
||||
// (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
|
||||
// Use, modification, and distribution is subject to the Boost Software
|
||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See library home page at http://www.boost.org/libs/numeric/conversion
|
||||
//
|
||||
// Contact the author at: fernando_cacciola@hotmail.com
|
||||
//
|
||||
//
|
||||
// Revision History
|
||||
//
|
||||
// 19 Nov 2001 Syntatic changes as suggested by Darin Adler (Fernando Cacciola)
|
||||
// 08 Nov 2001 Fixes to accommodate MSVC (Fernando Cacciola)
|
||||
// 04 Nov 2001 Fixes to accommodate gcc2.92 (Fernando Cacciola)
|
||||
// 30 Oct 2001 Some fixes suggested by Daryle Walker (Fernando Cacciola)
|
||||
// 25 Oct 2001 Initial boostification (Fernando Cacciola)
|
||||
// 23 Jan 2004 Inital add to cvs (post review)s
|
||||
// 22 Jun 2011 Added support for specializing cast policies via numeric_cast_traits (Brandon Kohn).
|
||||
//
|
||||
#ifndef BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
|
||||
#define BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
|
||||
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
|
||||
|
||||
# include<boost/numeric/conversion/detail/old_numeric_cast.hpp>
|
||||
|
||||
#else
|
||||
|
||||
#include <boost/type.hpp>
|
||||
#include <boost/numeric/conversion/converter.hpp>
|
||||
#include <boost/numeric/conversion/numeric_cast_traits.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
template <typename Target, typename Source>
|
||||
inline Target numeric_cast( Source arg )
|
||||
{
|
||||
typedef numeric::conversion_traits<Target, Source> conv_traits;
|
||||
typedef numeric::numeric_cast_traits<Target, Source> cast_traits;
|
||||
typedef boost::numeric::converter
|
||||
<
|
||||
Target,
|
||||
Source,
|
||||
conv_traits,
|
||||
typename cast_traits::overflow_policy,
|
||||
typename cast_traits::rounding_policy,
|
||||
boost::numeric::raw_converter< conv_traits >,
|
||||
typename cast_traits::range_checking_policy
|
||||
> converter;
|
||||
return converter::convert(arg);
|
||||
}
|
||||
|
||||
using numeric::bad_numeric_cast;
|
||||
} // namespace boost
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,29 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP
|
||||
# define BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP
|
||||
#
|
||||
# include <boost/preprocessor/array/data.hpp>
|
||||
# include <boost/preprocessor/array/size.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/tuple/reverse.hpp>
|
||||
#
|
||||
# /* BOOST_PP_ARRAY_REVERSE */
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_ARRAY_REVERSE(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))
|
||||
# else
|
||||
# define BOOST_PP_ARRAY_REVERSE(array) BOOST_PP_ARRAY_REVERSE_I(array)
|
||||
# define BOOST_PP_ARRAY_REVERSE_I(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
@@ -0,0 +1,21 @@
|
||||
// (C) Copyright 2008-10 Anthony Williams
|
||||
// (C) Copyright 2011-2015 Vicente J. Botet Escriba
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef BOOST_THREAD_FUTURES_IS_FUTURE_TYPE_HPP
|
||||
#define BOOST_THREAD_FUTURES_IS_FUTURE_TYPE_HPP
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
template<typename T>
|
||||
struct is_future_type : false_type
|
||||
{
|
||||
};
|
||||
}
|
||||
|
||||
#endif // header
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
#//////////////////////////////////////////////////////////////////////////////
|
||||
#//
|
||||
#// (C) Copyright Ion Gaztanaga 2015-2015.
|
||||
#// Distributed under the Boost Software License, Version 1.0.
|
||||
#// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
#// http://www.boost.org/LICENSE_1_0.txt)
|
||||
#//
|
||||
#// See http://www.boost.org/libs/move for documentation.
|
||||
#//
|
||||
#//////////////////////////////////////////////////////////////////////////////
|
||||
#ifdef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH
|
||||
#pragma GCC diagnostic pop
|
||||
#undef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH
|
||||
#endif //BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2012-2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_OS_BSD_NET_H
|
||||
#define BOOST_PREDEF_OS_BSD_NET_H
|
||||
|
||||
#include <boost/predef/os/bsd.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_OS_BSD_NET`]
|
||||
|
||||
[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__NETBSD__`] [__predef_detection__]]
|
||||
[[`__NetBSD__`] [__predef_detection__]]
|
||||
|
||||
[[`__NETBSD_version`] [V.R.P]]
|
||||
[[`NetBSD0_8`] [0.8.0]]
|
||||
[[`NetBSD0_9`] [0.9.0]]
|
||||
[[`NetBSD1_0`] [1.0.0]]
|
||||
[[`__NetBSD_Version`] [V.R.P]]
|
||||
]
|
||||
*/
|
||||
|
||||
#define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \
|
||||
defined(__NETBSD__) || defined(__NetBSD__) \
|
||||
)
|
||||
# ifndef BOOST_OS_BSD_AVAILABLE
|
||||
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# define BOOST_OS_BSD_AVAILABLE
|
||||
# endif
|
||||
# undef BOOST_OS_BSD_NET
|
||||
# if defined(__NETBSD__)
|
||||
# if defined(__NETBSD_version)
|
||||
# if __NETBSD_version < 500000
|
||||
# define BOOST_OS_BSD_NET \
|
||||
BOOST_PREDEF_MAKE_10_VRP000(__NETBSD_version)
|
||||
# else
|
||||
# define BOOST_OS_BSD_NET \
|
||||
BOOST_PREDEF_MAKE_10_VRR000(__NETBSD_version)
|
||||
# endif
|
||||
# else
|
||||
# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# endif
|
||||
# elif defined(__NetBSD__)
|
||||
# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_8)
|
||||
# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,8,0)
|
||||
# endif
|
||||
# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_9)
|
||||
# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,9,0)
|
||||
# endif
|
||||
# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD1_0)
|
||||
# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(1,0,0)
|
||||
# endif
|
||||
# if !defined(BOOST_OS_BSD_NET) && defined(__NetBSD_Version)
|
||||
# define BOOST_OS_BSD_NET \
|
||||
BOOST_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version)
|
||||
# endif
|
||||
# if !defined(BOOST_OS_BSD_NET)
|
||||
# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if BOOST_OS_BSD_NET
|
||||
# define BOOST_OS_BSD_NET_AVAILABLE
|
||||
# include <boost/predef/detail/os_detected.h>
|
||||
#endif
|
||||
|
||||
#define BOOST_OS_BSD_NET_NAME "DragonFly BSD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_NET,BOOST_OS_BSD_NET_NAME)
|
||||
@@ -0,0 +1,213 @@
|
||||
#include "adif.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
|
||||
/*
|
||||
<CALL:4>W1XT<BAND:3>20m<FREQ:6>14.076<GRIDSQUARE:4>DM33<MODE:4>JT65<RST_RCVD:3>-21<RST_SENT:3>-14<QSO_DATE:8>20110422<TIME_ON:6>041712<TIME_OFF:6>042435<TX_PWR:1>4<COMMENT:34>1st JT65A QSO. Him: mag loop 20W<STATION_CALLSIGN:6>VK3ACF<MY_GRIDSQUARE:6>qf22lb<eor>
|
||||
<CALL:6>IK1SOW<BAND:3>20m<FREQ:6>14.076<GRIDSQUARE:4>JN35<MODE:4>JT65<RST_RCVD:3>-19<RST_SENT:3>-11<QSO_DATE:8>20110422<TIME_ON:6>052501<TIME_OFF:6>053359<TX_PWR:1>3<STATION_CALLSIGN:6>VK3ACF<MY_GRIDSQUARE:6>qf22lb<eor>
|
||||
<CALL:6:S>W4ABC> ...
|
||||
*/
|
||||
|
||||
void ADIF::init(QString const& filename)
|
||||
{
|
||||
_filename = filename;
|
||||
_data.clear();
|
||||
}
|
||||
|
||||
|
||||
QString ADIF::_extractField(QString const& line, QString const& fieldName) const
|
||||
{
|
||||
int fieldNameIndex = line.indexOf(fieldName,0,Qt::CaseInsensitive);
|
||||
if (fieldNameIndex >=0)
|
||||
{
|
||||
int closingBracketIndex = line.indexOf('>',fieldNameIndex);
|
||||
int fieldLengthIndex = line.indexOf(':',fieldNameIndex); // find the size delimiter
|
||||
int dataTypeIndex = -1;
|
||||
if (fieldLengthIndex >= 0)
|
||||
{
|
||||
dataTypeIndex = line.indexOf(':',fieldLengthIndex+1); // check for a second : indicating there is a data type
|
||||
if (dataTypeIndex > closingBracketIndex)
|
||||
dataTypeIndex = -1; // second : was found but it was beyond the closing >
|
||||
}
|
||||
|
||||
if ((closingBracketIndex > fieldNameIndex) && (fieldLengthIndex > fieldNameIndex) && (fieldLengthIndex< closingBracketIndex))
|
||||
{
|
||||
int fieldLengthCharCount = closingBracketIndex - fieldLengthIndex -1;
|
||||
if (dataTypeIndex >= 0)
|
||||
fieldLengthCharCount -= 2; // data type indicator is always a colon followed by a single character
|
||||
QString fieldLengthString = line.mid(fieldLengthIndex+1,fieldLengthCharCount);
|
||||
int fieldLength = fieldLengthString.toInt();
|
||||
if (fieldLength > 0)
|
||||
{
|
||||
QString field = line.mid(closingBracketIndex+1,fieldLength);
|
||||
return field;
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ADIF::load()
|
||||
{
|
||||
_data.clear();
|
||||
QFile inputFile(_filename);
|
||||
if (inputFile.open(QIODevice::ReadOnly))
|
||||
{
|
||||
QTextStream in(&inputFile);
|
||||
while ( !in.atEnd() )
|
||||
{
|
||||
QString line = in.readLine();
|
||||
QSO q;
|
||||
q.call = _extractField(line,"CALL:");
|
||||
q.band = _extractField(line,"BAND:");
|
||||
q.mode = _extractField(line,"MODE:");
|
||||
q.date = _extractField(line,"QSO_DATE:");
|
||||
if (q.call != "")
|
||||
_data.insert(q.call,q);
|
||||
}
|
||||
inputFile.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ADIF::add(QString const& call, QString const& band, QString const& mode, QString const& date)
|
||||
{
|
||||
QSO q;
|
||||
q.call = call;
|
||||
q.band = band;
|
||||
q.mode = mode;
|
||||
q.date = date;
|
||||
_data.insert(q.call,q);
|
||||
//qDebug() << "Added as worked:" << call << band << mode << date;
|
||||
}
|
||||
|
||||
// return true if in the log same band and mode (where JT65 == JT9)
|
||||
bool ADIF::match(QString const& call, QString const& band, QString const& mode) const
|
||||
{
|
||||
QList<QSO> qsos = _data.values(call);
|
||||
if (qsos.size()>0)
|
||||
{
|
||||
QSO q;
|
||||
foreach(q,qsos)
|
||||
{
|
||||
if ( (band.compare(q.band,Qt::CaseInsensitive) == 0)
|
||||
|| (band=="")
|
||||
|| (q.band==""))
|
||||
{
|
||||
if (
|
||||
(
|
||||
((mode.compare("JT65",Qt::CaseInsensitive)==0) ||
|
||||
(mode.compare("JT9",Qt::CaseInsensitive)==0) ||
|
||||
(mode.compare("FT8",Qt::CaseInsensitive)==0))
|
||||
&&
|
||||
((q.mode.compare("JT65",Qt::CaseInsensitive)==0) ||
|
||||
(q.mode.compare("JT9",Qt::CaseInsensitive)==0) ||
|
||||
(q.mode.compare("FT8",Qt::CaseInsensitive)==0))
|
||||
)
|
||||
|| (mode.compare(q.mode,Qt::CaseInsensitive)==0)
|
||||
|| (mode=="")
|
||||
|| (q.mode=="")
|
||||
)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QList<QString> ADIF::getCallList() const
|
||||
{
|
||||
QList<QString> p;
|
||||
QMultiHash<QString,QSO>::const_iterator i = _data.constBegin();
|
||||
while (i != _data.constEnd())
|
||||
{
|
||||
p << i.key();
|
||||
++i;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
int ADIF::getCount() const
|
||||
{
|
||||
return _data.size();
|
||||
}
|
||||
|
||||
|
||||
// open ADIF file and append the QSO details. Return true on success
|
||||
bool ADIF::addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, QString const& band,
|
||||
QString const& comments, QString const& name, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid, QString const& m_txPower)
|
||||
{
|
||||
QFile f2(_filename);
|
||||
if (!f2.open(QIODevice::Text | QIODevice::Append))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
QTextStream out(&f2);
|
||||
if (f2.size()==0)
|
||||
out << "WSJT-X ADIF Export<eoh>" << endl; // new file
|
||||
|
||||
QString t;
|
||||
t="<call:" + QString::number(hisCall.length()) + ">" + hisCall;
|
||||
t+=" <gridsquare:" + QString::number(hisGrid.length()) + ">" + hisGrid;
|
||||
t+=" <mode:" + QString::number(mode.length()) + ">" + mode;
|
||||
t+=" <rst_sent:" + QString::number(rptSent.length()) + ">" + rptSent;
|
||||
t+=" <rst_rcvd:" + QString::number(rptRcvd.length()) + ">" + rptRcvd;
|
||||
t+=" <qso_date:8>" + dateTimeOn.date ().toString ("yyyyMMdd");
|
||||
t+=" <time_on:6>" + dateTimeOn.time ().toString ("hhmmss");
|
||||
t+=" <qso_date_off:8>" + dateTimeOff.date ().toString ("yyyyMMdd");
|
||||
t+=" <time_off:6>" + dateTimeOff.time ().toString ("hhmmss");
|
||||
t+=" <band:" + QString::number(band.length()) + ">" + band;
|
||||
t+=" <freq:" + QString::number(strDialFreq.length()) + ">" + strDialFreq;
|
||||
t+=" <station_callsign:" + QString::number(m_myCall.length()) + ">" +
|
||||
m_myCall;
|
||||
t+=" <my_gridsquare:" + QString::number(m_myGrid.length()) + ">" +
|
||||
m_myGrid;
|
||||
if(m_txPower!="") t+= " <tx_pwr:" + QString::number(m_txPower.length()) +
|
||||
">" + m_txPower;
|
||||
if(comments!="") t+=" <comment:" + QString::number(comments.length()) +
|
||||
">" + comments;
|
||||
if(name!="") t+=" <name:" + QString::number(name.length()) +
|
||||
">" + name;
|
||||
t+=" <eor>";
|
||||
out << t << endl;
|
||||
f2.close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
QString ADIF::bandFromFrequency(double dialFreq)
|
||||
{
|
||||
QString band="";
|
||||
if(dialFreq>0.135 and dialFreq<0.139) band="2200m";
|
||||
else if(dialFreq>0.45 and dialFreq<0.55) band="630m";
|
||||
else if(dialFreq>1.8 and dialFreq<2.0) band="160m";
|
||||
else if(dialFreq>3.5 and dialFreq<4.0) band="80m";
|
||||
else if(dialFreq>5.1 and dialFreq<5.45) band="60m";
|
||||
else if(dialFreq>7.0 and dialFreq<7.3) band="40m";
|
||||
else if(dialFreq>10.0 and dialFreq<10.15) band="30m";
|
||||
else if(dialFreq>14.0 and dialFreq<14.35) band="20m";
|
||||
else if(dialFreq>18.068 and dialFreq<18.168) band="17m";
|
||||
else if(dialFreq>21.0 and dialFreq<21.45) band="15m";
|
||||
else if(dialFreq>24.890 and dialFreq<24.990) band="12m";
|
||||
else if(dialFreq>28.0 and dialFreq<29.7) band="10m";
|
||||
else if(dialFreq>50.0 and dialFreq<54.0) band="6m";
|
||||
else if(dialFreq>70.0 and dialFreq<71.0) band="4m";
|
||||
else if(dialFreq>144.0 and dialFreq<148.0) band="2m";
|
||||
else if(dialFreq>222.0 and dialFreq<225.0) band="1.25m";
|
||||
else if(dialFreq>420.0 and dialFreq<450.0) band="70cm";
|
||||
else if(dialFreq>902.0 and dialFreq<928.0) band="33cm";
|
||||
else if(dialFreq>1240.0 and dialFreq<1300.0) band="23cm";
|
||||
else if(dialFreq>2300.0 and dialFreq<2450.0) band="13cm";
|
||||
else if(dialFreq>3300.0 and dialFreq<3500.0) band="9cm";
|
||||
else if(dialFreq>5650.0 and dialFreq<5925.0) band="6cm";
|
||||
else if(dialFreq>10000.0 and dialFreq<10500.0) band="3cm";
|
||||
else if(dialFreq>24000.0 and dialFreq<24250.0) band="1.25cm";
|
||||
else if(dialFreq>47000.0 and dialFreq<47200.0) band="6mm";
|
||||
else if(dialFreq>75500.0 and dialFreq<81000.0) band="4mm";
|
||||
return band;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2008-2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_ARCHITECTURE_PARISC_H
|
||||
#define BOOST_PREDEF_ARCHITECTURE_PARISC_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/make.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_ARCH_PARISK`]
|
||||
|
||||
[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__hppa__`] [__predef_detection__]]
|
||||
[[`__hppa`] [__predef_detection__]]
|
||||
[[`__HPPA__`] [__predef_detection__]]
|
||||
|
||||
[[`_PA_RISC1_0`] [1.0.0]]
|
||||
[[`_PA_RISC1_1`] [1.1.0]]
|
||||
[[`__HPPA11__`] [1.1.0]]
|
||||
[[`__PA7100__`] [1.1.0]]
|
||||
[[`_PA_RISC2_0`] [2.0.0]]
|
||||
[[`__RISC2_0__`] [2.0.0]]
|
||||
[[`__HPPA20__`] [2.0.0]]
|
||||
[[`__PA8000__`] [2.0.0]]
|
||||
]
|
||||
*/
|
||||
|
||||
#define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__)
|
||||
# undef BOOST_ARCH_PARISC
|
||||
# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_0))
|
||||
# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,0,0)
|
||||
# endif
|
||||
# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__))
|
||||
# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,1,0)
|
||||
# endif
|
||||
# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__))
|
||||
# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(2,0,0)
|
||||
# endif
|
||||
# if !defined(BOOST_ARCH_PARISC)
|
||||
# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if BOOST_ARCH_PARISC
|
||||
# define BOOST_ARCH_PARISC_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_ARCH_PARISC_NAME "HP/PA RISC"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PARISC,BOOST_ARCH_PARISC_NAME)
|
||||
@@ -0,0 +1,44 @@
|
||||
#ifndef BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP
|
||||
#define BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# pragma once
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// (C) Copyright 2004 Pavel Vozenilek.
|
||||
// Use, modification and distribution is subject to the Boost Software
|
||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt
|
||||
// or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
//
|
||||
// This file contains helper macros used when exception support may be
|
||||
// disabled (as indicated by macro BOOST_NO_EXCEPTIONS).
|
||||
//
|
||||
// Before picking up these macros you may consider using RAII techniques
|
||||
// to deal with exceptions - their syntax can be always the same with
|
||||
// or without exception support enabled.
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if !(defined BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_TRY { try
|
||||
# define BOOST_CATCH(x) catch(x)
|
||||
# define BOOST_RETHROW throw;
|
||||
# define BOOST_CATCH_END }
|
||||
#else
|
||||
# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||
# define BOOST_TRY { if ("")
|
||||
# define BOOST_CATCH(x) else if (!"")
|
||||
# else
|
||||
# define BOOST_TRY { if (true)
|
||||
# define BOOST_CATCH(x) else if (false)
|
||||
# endif
|
||||
# define BOOST_RETHROW
|
||||
# define BOOST_CATCH_END }
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,3 @@
|
||||
integer :: level, onlevel(0:10)
|
||||
common/timer_private/ level, onlevel
|
||||
!$omp threadprivate(/timer_private/)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,30 @@
|
||||
// Boost.Units - A C++ library for zero-overhead dimensional analysis and
|
||||
// unit/quantity manipulation and conversion
|
||||
//
|
||||
// Copyright (C) 2003-2008 Matthias Christian Schabel
|
||||
// Copyright (C) 2008 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP
|
||||
#define BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP
|
||||
|
||||
#include <boost/units/derived_dimension.hpp>
|
||||
#include <boost/units/physical_dimensions/length.hpp>
|
||||
#include <boost/units/physical_dimensions/time.hpp>
|
||||
|
||||
namespace boost {
|
||||
|
||||
namespace units {
|
||||
|
||||
/// derived dimension for velocity : L T^-1
|
||||
typedef derived_dimension<length_base_dimension,1,
|
||||
time_base_dimension,-1>::type velocity_dimension;
|
||||
|
||||
} // namespace units
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#endif // BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP
|
||||
@@ -0,0 +1,156 @@
|
||||
subroutine refspectrum(id2,id2b,kk,bclear,brefspec,buseref,fname)
|
||||
|
||||
! Input:
|
||||
! id2 i*2 Raw 16-bit integer data, 12000 Hz sample rate
|
||||
! brefspec logical True when accumulating a reference spectrum
|
||||
|
||||
parameter (NFFT=6912,NH=NFFT/2,NPOLYLOW=400,NPOLYHIGH=2600)
|
||||
integer*2 id2(NFFT),id2b(120*12000)
|
||||
logical*1 bclear,brefspec,buseref,blastuse
|
||||
|
||||
real x0(0:NH-1) !Input samples
|
||||
real x1(0:NH-1) !Output samples (delayed by one block)
|
||||
real x0s(0:NH-1) !Saved upper half of input samples
|
||||
real x1s(0:NH-1) !Saved upper half of output samples
|
||||
real x(0:NFFT-1) !Work array
|
||||
real*4 w(0:NFFT-1) !Window function
|
||||
real*4 s(0:NH) !Average spectrum
|
||||
real*4 fil(0:NH)
|
||||
real*8 xfit(1500),yfit(1500),sigmay(1500),a(5),chisqr !Polyfit arrays
|
||||
logical first
|
||||
complex cx(0:NH) !Complex frequency-domain work array
|
||||
character*(*) fname
|
||||
common/spectra/syellow(6827),ref(0:NH),filter(0:NH)
|
||||
equivalence(x,cx)
|
||||
data first/.true./,blastuse/.false./
|
||||
save
|
||||
|
||||
if(first) then
|
||||
pi=4.0*atan(1.0)
|
||||
do i=0,NFFT-1
|
||||
ww=sin(i*pi/NFFT)
|
||||
w(i)=ww*ww/NFFT
|
||||
enddo
|
||||
nsave=0
|
||||
s=0.0
|
||||
filter=1.0
|
||||
x0s=0.
|
||||
x1s=0.
|
||||
first=.false.
|
||||
endif
|
||||
if(bclear) s=0.
|
||||
|
||||
if(brefspec) then
|
||||
x(0:NH-1)=0.001*id2(1:NH)
|
||||
x(NH:NFFT-1)=0.0
|
||||
call four2a(x,NFFT,1,-1,0) !r2c FFT
|
||||
|
||||
do i=1,NH
|
||||
s(i)=s(i) + real(cx(i))**2 + aimag(cx(i))**2
|
||||
enddo
|
||||
nsave=nsave+1
|
||||
|
||||
fac0=0.9
|
||||
if(mod(nsave,4).eq.0) then
|
||||
df=12000.0/NFFT
|
||||
ia=nint(1000.0/df)
|
||||
ib=nint(2000.0/df)
|
||||
avemid=sum(s(ia:ib))/(ib-ia+1)
|
||||
do i=0,NH
|
||||
fil(i)=0.
|
||||
if(s(i).gt.0.0) then
|
||||
fil(i)=sqrt(avemid/s(i))
|
||||
endif
|
||||
enddo
|
||||
|
||||
! Default range is 240 - 4000 Hz. For narrower filters, use frequencies
|
||||
! at which gain is -20 dB relative to 1500 Hz.
|
||||
ia=nint(240.0/df)
|
||||
ib=nint(4000.0/df)
|
||||
i0=nint(1500.0/df)
|
||||
do i=i0,ia,-1
|
||||
if(s(i)/s(i0).lt.0.01) exit
|
||||
enddo
|
||||
ia=i
|
||||
do i=i0,ib,1
|
||||
if(s(i)/s(i0).lt.0.01) exit
|
||||
enddo
|
||||
ib=i
|
||||
|
||||
fac=fac0
|
||||
do i=ia,1,-1
|
||||
fac=fac*fac0
|
||||
fil(i)=fac*fil(i)
|
||||
enddo
|
||||
|
||||
fac=fac0
|
||||
do i=ib,NH
|
||||
fac=fac*fac0
|
||||
fil(i)=fac*fil(i)
|
||||
enddo
|
||||
|
||||
do iter=1,100 !### ??? ###
|
||||
call smo121(fil,NH)
|
||||
enddo
|
||||
|
||||
do i=0,NH
|
||||
filter(i)=-60.0
|
||||
if(s(i).gt.0.0) filter(i)=20.0*log10(fil(i))
|
||||
enddo
|
||||
|
||||
il=nint(NPOLYLOW/df)
|
||||
ih=nint(NPOLYHIGH/df)
|
||||
nfit=ih-il+1
|
||||
mode=0
|
||||
nterms=5
|
||||
do i=1,nfit
|
||||
xfit(i)=((i+il-1)*df-1500.0)/1000.0
|
||||
yfit(i)=fil(i+il-1)
|
||||
sigmay(i)=1.0
|
||||
enddo
|
||||
call polyfit(xfit,yfit,sigmay,nfit,nterms,mode,a,chisqr)
|
||||
|
||||
open(16,file=fname,status='unknown')
|
||||
write(16,1003) NPOLYLOW,NPOLYHIGH,nterms,a
|
||||
1003 format(3i5,5e25.16)
|
||||
do i=1,NH
|
||||
freq=i*df
|
||||
ref(i)=db(s(i)/avemid)
|
||||
write(16,1005) freq,s(i),ref(i),fil(i),filter(i)
|
||||
1005 format(f10.3,e12.3,f12.6,e12.3,f12.6)
|
||||
enddo
|
||||
close(16)
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
if(buseref) then
|
||||
if(blastuse.neqv.buseref) then !just enabled so read filter
|
||||
fil=1.0
|
||||
open(16,file=fname,status='old',err=110)
|
||||
read(16,1003,err=20,end=100) ndummy,ndummy,nterms,a
|
||||
goto 30
|
||||
20 rewind(16) !allow for old style refspec.dat with no header
|
||||
30 do i=1,NH
|
||||
read(16,1005,err=100,end=100) freq,s(i),ref(i),fil(i),filter(i)
|
||||
enddo
|
||||
100 close(16)
|
||||
110 continue
|
||||
endif
|
||||
x0=id2(1:NH)
|
||||
x(0:NH-1)=x0s !Previous 2nd half to new 1st half
|
||||
x(NH:NFFT-1)=x0 !New 2nd half
|
||||
x0s=x0 !Save the new 2nd half
|
||||
x=w*x !Apply window
|
||||
call four2a(x,NFFT,1,-1,0) !r2c FFT (to frequency domain)
|
||||
cx=fil*cx
|
||||
call four2a(cx,NFFT,1,1,-1) !c2r FFT (back to time domain)
|
||||
x1=x1s + x(0:NH-1) !Add previous segment's 2nd half
|
||||
! id2(1:NH)=nint(x1)
|
||||
if(kk.ge.6912) id2b(kk-6192+1:kk-6192+NH)=nint(x1)
|
||||
x1s=x(NH:NFFT-1) !Save the new 2nd half
|
||||
endif
|
||||
blastuse=buseref
|
||||
|
||||
return
|
||||
end subroutine refspectrum
|
||||
@@ -0,0 +1,110 @@
|
||||
|
||||
// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
|
||||
|
||||
#if !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
// Copyright Aleksey Gurtovoy 2000-2004
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Id$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#else
|
||||
|
||||
#include <boost/mpl/aux_/config/typeof.hpp>
|
||||
#include <boost/mpl/aux_/config/ctps.hpp>
|
||||
#include <boost/preprocessor/enum_params.hpp>
|
||||
#include <boost/preprocessor/dec.hpp>
|
||||
#include <boost/preprocessor/cat.hpp>
|
||||
|
||||
#define i_ BOOST_PP_FRAME_ITERATION(1)
|
||||
|
||||
# define AUX778076_MAP_TAIL(map, i_, P) \
|
||||
BOOST_PP_CAT(map,i_)< \
|
||||
BOOST_PP_ENUM_PARAMS(i_, P) \
|
||||
> \
|
||||
/**/
|
||||
|
||||
|
||||
#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
|
||||
|
||||
template<
|
||||
BOOST_PP_ENUM_PARAMS(i_, typename P)
|
||||
>
|
||||
struct BOOST_PP_CAT(map,i_)
|
||||
: m_item<
|
||||
typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first
|
||||
, typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second
|
||||
, AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P)
|
||||
>
|
||||
{
|
||||
typedef BOOST_PP_CAT(map,i_) type;
|
||||
};
|
||||
|
||||
#else // "brute force" implementation
|
||||
|
||||
# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||
|
||||
template< typename Map>
|
||||
struct m_at<Map,BOOST_PP_DEC(i_)>
|
||||
{
|
||||
typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type;
|
||||
};
|
||||
|
||||
template< typename Key, typename T, typename Base >
|
||||
struct m_item<i_,Key,T,Base>
|
||||
: m_item_<Key,T,Base>
|
||||
{
|
||||
typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
|
||||
};
|
||||
|
||||
# else
|
||||
|
||||
template<>
|
||||
struct m_at_impl<BOOST_PP_DEC(i_)>
|
||||
{
|
||||
template< typename Map > struct result_
|
||||
{
|
||||
typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type;
|
||||
};
|
||||
};
|
||||
|
||||
template<>
|
||||
struct m_item_impl<i_>
|
||||
{
|
||||
template< typename Key, typename T, typename Base > struct result_
|
||||
: m_item_<Key,T,Base>
|
||||
{
|
||||
typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
|
||||
};
|
||||
};
|
||||
|
||||
# endif
|
||||
|
||||
template<
|
||||
BOOST_PP_ENUM_PARAMS(i_, typename P)
|
||||
>
|
||||
struct BOOST_PP_CAT(map,i_)
|
||||
: m_item<
|
||||
i_
|
||||
, typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first
|
||||
, typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second
|
||||
, AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P)
|
||||
>
|
||||
{
|
||||
typedef BOOST_PP_CAT(map,i_) type;
|
||||
};
|
||||
|
||||
#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
|
||||
|
||||
# undef AUX778076_MAP_TAIL
|
||||
|
||||
#undef i_
|
||||
|
||||
#endif // BOOST_PP_IS_ITERATING
|
||||
@@ -0,0 +1,810 @@
|
||||
// Copyright John Maddock 2008-11.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt
|
||||
// or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef BOOST_MATH_C_MACROS_IPP
|
||||
#define BOOST_MATH_C_MACROS_IPP
|
||||
|
||||
// C99 Functions:
|
||||
#ifdef acosh
|
||||
#undef acosh
|
||||
#endif
|
||||
#define acosh boost_acosh
|
||||
#ifdef acoshf
|
||||
#undef acoshf
|
||||
#endif
|
||||
#define acoshf boost_acoshf
|
||||
#ifdef acoshl
|
||||
#undef acoshl
|
||||
#endif
|
||||
#define acoshl boost_acoshl
|
||||
|
||||
#ifdef asinh
|
||||
#undef asinh
|
||||
#endif
|
||||
#define asinh boost_asinh
|
||||
#ifdef asinhf
|
||||
#undef asinhf
|
||||
#endif
|
||||
#define asinhf boost_asinhf
|
||||
#ifdef asinhl
|
||||
#undef asinhl
|
||||
#endif
|
||||
#define asinhl boost_asinhl
|
||||
|
||||
#ifdef atanh
|
||||
#undef atanh
|
||||
#endif
|
||||
#define atanh boost_atanh
|
||||
#ifdef atanhf
|
||||
#undef atanhf
|
||||
#endif
|
||||
#define atanhf boost_atanhf
|
||||
#ifdef atanhl
|
||||
#undef atanhl
|
||||
#endif
|
||||
#define atanhl boost_atanhl
|
||||
|
||||
#ifdef cbrt
|
||||
#undef cbrt
|
||||
#endif
|
||||
#define cbrt boost_cbrt
|
||||
#ifdef cbrtf
|
||||
#undef cbrtf
|
||||
#endif
|
||||
#define cbrtf boost_cbrtf
|
||||
#ifdef cbrtl
|
||||
#undef cbrtl
|
||||
#endif
|
||||
#define cbrtl boost_cbrtl
|
||||
|
||||
#ifdef copysign
|
||||
#undef copysign
|
||||
#endif
|
||||
#define copysign boost_copysign
|
||||
#ifdef copysignf
|
||||
#undef copysignf
|
||||
#endif
|
||||
#define copysignf boost_copysignf
|
||||
#ifdef copysignl
|
||||
#undef copysignl
|
||||
#endif
|
||||
#define copysignl boost_copysignl
|
||||
|
||||
#ifdef erf
|
||||
#undef erf
|
||||
#endif
|
||||
#define erf boost_erf
|
||||
#ifdef erff
|
||||
#undef erff
|
||||
#endif
|
||||
#define erff boost_erff
|
||||
#ifdef erfl
|
||||
#undef erfl
|
||||
#endif
|
||||
#define erfl boost_erfl
|
||||
|
||||
#ifdef erfc
|
||||
#undef erfc
|
||||
#endif
|
||||
#define erfc boost_erfc
|
||||
#ifdef erfcf
|
||||
#undef erfcf
|
||||
#endif
|
||||
#define erfcf boost_erfcf
|
||||
#ifdef erfcl
|
||||
#undef erfcl
|
||||
#endif
|
||||
#define erfcl boost_erfcl
|
||||
|
||||
#if 0
|
||||
#ifdef exp2
|
||||
#undef exp2
|
||||
#endif
|
||||
#define exp2 boost_exp2
|
||||
#ifdef exp2f
|
||||
#undef exp2f
|
||||
#endif
|
||||
#define exp2f boost_exp2f
|
||||
#ifdef exp2l
|
||||
#undef exp2l
|
||||
#endif
|
||||
#define exp2l boost_exp2l
|
||||
#endif
|
||||
|
||||
#ifdef expm1
|
||||
#undef expm1
|
||||
#endif
|
||||
#define expm1 boost_expm1
|
||||
#ifdef expm1f
|
||||
#undef expm1f
|
||||
#endif
|
||||
#define expm1f boost_expm1f
|
||||
#ifdef expm1l
|
||||
#undef expm1l
|
||||
#endif
|
||||
#define expm1l boost_expm1l
|
||||
|
||||
#if 0
|
||||
#ifdef fdim
|
||||
#undef fdim
|
||||
#endif
|
||||
#define fdim boost_fdim
|
||||
#ifdef fdimf
|
||||
#undef fdimf
|
||||
#endif
|
||||
#define fdimf boost_fdimf
|
||||
#ifdef fdiml
|
||||
#undef fdiml
|
||||
#endif
|
||||
#define fdiml boost_fdiml
|
||||
#ifdef acosh
|
||||
#undef acosh
|
||||
#endif
|
||||
#define fma boost_fma
|
||||
#ifdef fmaf
|
||||
#undef fmaf
|
||||
#endif
|
||||
#define fmaf boost_fmaf
|
||||
#ifdef fmal
|
||||
#undef fmal
|
||||
#endif
|
||||
#define fmal boost_fmal
|
||||
#endif
|
||||
|
||||
#ifdef fmax
|
||||
#undef fmax
|
||||
#endif
|
||||
#define fmax boost_fmax
|
||||
#ifdef fmaxf
|
||||
#undef fmaxf
|
||||
#endif
|
||||
#define fmaxf boost_fmaxf
|
||||
#ifdef fmaxl
|
||||
#undef fmaxl
|
||||
#endif
|
||||
#define fmaxl boost_fmaxl
|
||||
|
||||
#ifdef fmin
|
||||
#undef fmin
|
||||
#endif
|
||||
#define fmin boost_fmin
|
||||
#ifdef fminf
|
||||
#undef fminf
|
||||
#endif
|
||||
#define fminf boost_fminf
|
||||
#ifdef fminl
|
||||
#undef fminl
|
||||
#endif
|
||||
#define fminl boost_fminl
|
||||
|
||||
#ifdef hypot
|
||||
#undef hypot
|
||||
#endif
|
||||
#define hypot boost_hypot
|
||||
#ifdef hypotf
|
||||
#undef hypotf
|
||||
#endif
|
||||
#define hypotf boost_hypotf
|
||||
#ifdef hypotl
|
||||
#undef hypotl
|
||||
#endif
|
||||
#define hypotl boost_hypotl
|
||||
|
||||
#if 0
|
||||
#ifdef ilogb
|
||||
#undef ilogb
|
||||
#endif
|
||||
#define ilogb boost_ilogb
|
||||
#ifdef ilogbf
|
||||
#undef ilogbf
|
||||
#endif
|
||||
#define ilogbf boost_ilogbf
|
||||
#ifdef ilogbl
|
||||
#undef ilogbl
|
||||
#endif
|
||||
#define ilogbl boost_ilogbl
|
||||
#endif
|
||||
|
||||
#ifdef lgamma
|
||||
#undef lgamma
|
||||
#endif
|
||||
#define lgamma boost_lgamma
|
||||
#ifdef lgammaf
|
||||
#undef lgammaf
|
||||
#endif
|
||||
#define lgammaf boost_lgammaf
|
||||
#ifdef lgammal
|
||||
#undef lgammal
|
||||
#endif
|
||||
#define lgammal boost_lgammal
|
||||
|
||||
#ifdef BOOST_HAS_LONG_LONG
|
||||
#if 0
|
||||
#ifdef llrint
|
||||
#undef llrint
|
||||
#endif
|
||||
#define llrint boost_llrint
|
||||
#ifdef llrintf
|
||||
#undef llrintf
|
||||
#endif
|
||||
#define llrintf boost_llrintf
|
||||
#ifdef llrintl
|
||||
#undef llrintl
|
||||
#endif
|
||||
#define llrintl boost_llrintl
|
||||
#endif
|
||||
#ifdef llround
|
||||
#undef llround
|
||||
#endif
|
||||
#define llround boost_llround
|
||||
#ifdef llroundf
|
||||
#undef llroundf
|
||||
#endif
|
||||
#define llroundf boost_llroundf
|
||||
#ifdef llroundl
|
||||
#undef llroundl
|
||||
#endif
|
||||
#define llroundl boost_llroundl
|
||||
#endif
|
||||
|
||||
#ifdef log1p
|
||||
#undef log1p
|
||||
#endif
|
||||
#define log1p boost_log1p
|
||||
#ifdef log1pf
|
||||
#undef log1pf
|
||||
#endif
|
||||
#define log1pf boost_log1pf
|
||||
#ifdef log1pl
|
||||
#undef log1pl
|
||||
#endif
|
||||
#define log1pl boost_log1pl
|
||||
|
||||
#if 0
|
||||
#ifdef log2
|
||||
#undef log2
|
||||
#endif
|
||||
#define log2 boost_log2
|
||||
#ifdef log2f
|
||||
#undef log2f
|
||||
#endif
|
||||
#define log2f boost_log2f
|
||||
#ifdef log2l
|
||||
#undef log2l
|
||||
#endif
|
||||
#define log2l boost_log2l
|
||||
|
||||
#ifdef logb
|
||||
#undef logb
|
||||
#endif
|
||||
#define logb boost_logb
|
||||
#ifdef logbf
|
||||
#undef logbf
|
||||
#endif
|
||||
#define logbf boost_logbf
|
||||
#ifdef logbl
|
||||
#undef logbl
|
||||
#endif
|
||||
#define logbl boost_logbl
|
||||
|
||||
#ifdef lrint
|
||||
#undef lrint
|
||||
#endif
|
||||
#define lrint boost_lrint
|
||||
#ifdef lrintf
|
||||
#undef lrintf
|
||||
#endif
|
||||
#define lrintf boost_lrintf
|
||||
#ifdef lrintl
|
||||
#undef lrintl
|
||||
#endif
|
||||
#define lrintl boost_lrintl
|
||||
#endif
|
||||
|
||||
#ifdef lround
|
||||
#undef lround
|
||||
#endif
|
||||
#define lround boost_lround
|
||||
#ifdef lroundf
|
||||
#undef lroundf
|
||||
#endif
|
||||
#define lroundf boost_lroundf
|
||||
#ifdef lroundl
|
||||
#undef lroundl
|
||||
#endif
|
||||
#define lroundl boost_lroundl
|
||||
|
||||
#if 0
|
||||
#ifdef nan
|
||||
#undef nan
|
||||
#endif
|
||||
#define nan boost_nan
|
||||
#ifdef nanf
|
||||
#undef nanf
|
||||
#endif
|
||||
#define nanf boost_nanf
|
||||
#ifdef nanl
|
||||
#undef nanl
|
||||
#endif
|
||||
#define nanl boost_nanl
|
||||
|
||||
#ifdef nearbyint
|
||||
#undef nearbyint
|
||||
#endif
|
||||
#define nearbyint boost_nearbyint
|
||||
#ifdef nearbyintf
|
||||
#undef nearbyintf
|
||||
#endif
|
||||
#define nearbyintf boost_nearbyintf
|
||||
#ifdef nearbyintl
|
||||
#undef nearbyintl
|
||||
#endif
|
||||
#define nearbyintl boost_nearbyintl
|
||||
#endif
|
||||
|
||||
#ifdef nextafter
|
||||
#undef nextafter
|
||||
#endif
|
||||
#define nextafter boost_nextafter
|
||||
#ifdef nextafterf
|
||||
#undef nextafterf
|
||||
#endif
|
||||
#define nextafterf boost_nextafterf
|
||||
#ifdef nextafterl
|
||||
#undef nextafterl
|
||||
#endif
|
||||
#define nextafterl boost_nextafterl
|
||||
|
||||
#ifdef nexttoward
|
||||
#undef nexttoward
|
||||
#endif
|
||||
#define nexttoward boost_nexttoward
|
||||
#ifdef nexttowardf
|
||||
#undef nexttowardf
|
||||
#endif
|
||||
#define nexttowardf boost_nexttowardf
|
||||
#ifdef nexttowardl
|
||||
#undef nexttowardl
|
||||
#endif
|
||||
#define nexttowardl boost_nexttowardl
|
||||
|
||||
#if 0
|
||||
#ifdef remainder
|
||||
#undef remainder
|
||||
#endif
|
||||
#define remainder boost_remainder
|
||||
#ifdef remainderf
|
||||
#undef remainderf
|
||||
#endif
|
||||
#define remainderf boost_remainderf
|
||||
#ifdef remainderl
|
||||
#undef remainderl
|
||||
#endif
|
||||
#define remainderl boost_remainderl
|
||||
|
||||
#ifdef remquo
|
||||
#undef remquo
|
||||
#endif
|
||||
#define remquo boost_remquo
|
||||
#ifdef remquof
|
||||
#undef remquof
|
||||
#endif
|
||||
#define remquof boost_remquof
|
||||
#ifdef remquol
|
||||
#undef remquol
|
||||
#endif
|
||||
#define remquol boost_remquol
|
||||
|
||||
#ifdef rint
|
||||
#undef rint
|
||||
#endif
|
||||
#define rint boost_rint
|
||||
#ifdef rintf
|
||||
#undef rintf
|
||||
#endif
|
||||
#define rintf boost_rintf
|
||||
#ifdef rintl
|
||||
#undef rintl
|
||||
#endif
|
||||
#define rintl boost_rintl
|
||||
#endif
|
||||
|
||||
#ifdef round
|
||||
#undef round
|
||||
#endif
|
||||
#define round boost_round
|
||||
#ifdef roundf
|
||||
#undef roundf
|
||||
#endif
|
||||
#define roundf boost_roundf
|
||||
#ifdef roundl
|
||||
#undef roundl
|
||||
#endif
|
||||
#define roundl boost_roundl
|
||||
|
||||
#if 0
|
||||
#ifdef scalbln
|
||||
#undef scalbln
|
||||
#endif
|
||||
#define scalbln boost_scalbln
|
||||
#ifdef scalblnf
|
||||
#undef scalblnf
|
||||
#endif
|
||||
#define scalblnf boost_scalblnf
|
||||
#ifdef scalblnl
|
||||
#undef scalblnl
|
||||
#endif
|
||||
#define scalblnl boost_scalblnl
|
||||
|
||||
#ifdef scalbn
|
||||
#undef scalbn
|
||||
#endif
|
||||
#define scalbn boost_scalbn
|
||||
#ifdef scalbnf
|
||||
#undef scalbnf
|
||||
#endif
|
||||
#define scalbnf boost_scalbnf
|
||||
#ifdef scalbnl
|
||||
#undef scalbnl
|
||||
#endif
|
||||
#define scalbnl boost_scalbnl
|
||||
#endif
|
||||
|
||||
#ifdef tgamma
|
||||
#undef tgamma
|
||||
#endif
|
||||
#define tgamma boost_tgamma
|
||||
#ifdef tgammaf
|
||||
#undef tgammaf
|
||||
#endif
|
||||
#define tgammaf boost_tgammaf
|
||||
#ifdef tgammal
|
||||
#undef tgammal
|
||||
#endif
|
||||
#define tgammal boost_tgammal
|
||||
|
||||
#ifdef trunc
|
||||
#undef trunc
|
||||
#endif
|
||||
#define trunc boost_trunc
|
||||
#ifdef truncf
|
||||
#undef truncf
|
||||
#endif
|
||||
#define truncf boost_truncf
|
||||
#ifdef truncl
|
||||
#undef truncl
|
||||
#endif
|
||||
#define truncl boost_truncl
|
||||
|
||||
// [5.2.1.1] associated Laguerre polynomials:
|
||||
#ifdef assoc_laguerre
|
||||
#undef assoc_laguerre
|
||||
#endif
|
||||
#define assoc_laguerre boost_assoc_laguerre
|
||||
#ifdef assoc_laguerref
|
||||
#undef assoc_laguerref
|
||||
#endif
|
||||
#define assoc_laguerref boost_assoc_laguerref
|
||||
#ifdef assoc_laguerrel
|
||||
#undef assoc_laguerrel
|
||||
#endif
|
||||
#define assoc_laguerrel boost_assoc_laguerrel
|
||||
|
||||
// [5.2.1.2] associated Legendre functions:
|
||||
#ifdef assoc_legendre
|
||||
#undef assoc_legendre
|
||||
#endif
|
||||
#define assoc_legendre boost_assoc_legendre
|
||||
#ifdef assoc_legendref
|
||||
#undef assoc_legendref
|
||||
#endif
|
||||
#define assoc_legendref boost_assoc_legendref
|
||||
#ifdef assoc_legendrel
|
||||
#undef assoc_legendrel
|
||||
#endif
|
||||
#define assoc_legendrel boost_assoc_legendrel
|
||||
|
||||
// [5.2.1.3] beta function:
|
||||
#ifdef beta
|
||||
#undef beta
|
||||
#endif
|
||||
#define beta boost_beta
|
||||
#ifdef betaf
|
||||
#undef betaf
|
||||
#endif
|
||||
#define betaf boost_betaf
|
||||
#ifdef betal
|
||||
#undef betal
|
||||
#endif
|
||||
#define betal boost_betal
|
||||
|
||||
// [5.2.1.4] (complete) elliptic integral of the first kind:
|
||||
#ifdef comp_ellint_1
|
||||
#undef comp_ellint_1
|
||||
#endif
|
||||
#define comp_ellint_1 boost_comp_ellint_1
|
||||
#ifdef comp_ellint_1f
|
||||
#undef comp_ellint_1f
|
||||
#endif
|
||||
#define comp_ellint_1f boost_comp_ellint_1f
|
||||
#ifdef comp_ellint_1l
|
||||
#undef comp_ellint_1l
|
||||
#endif
|
||||
#define comp_ellint_1l boost_comp_ellint_1l
|
||||
|
||||
// [5.2.1.5] (complete) elliptic integral of the second kind:
|
||||
#ifdef comp_ellint_2
|
||||
#undef comp_ellint_2
|
||||
#endif
|
||||
#define comp_ellint_2 boost_comp_ellint_2
|
||||
#ifdef comp_ellint_2f
|
||||
#undef comp_ellint_2f
|
||||
#endif
|
||||
#define comp_ellint_2f boost_comp_ellint_2f
|
||||
#ifdef comp_ellint_2l
|
||||
#undef comp_ellint_2l
|
||||
#endif
|
||||
#define comp_ellint_2l boost_comp_ellint_2l
|
||||
|
||||
// [5.2.1.6] (complete) elliptic integral of the third kind:
|
||||
#ifdef comp_ellint_3
|
||||
#undef comp_ellint_3
|
||||
#endif
|
||||
#define comp_ellint_3 boost_comp_ellint_3
|
||||
#ifdef comp_ellint_3f
|
||||
#undef comp_ellint_3f
|
||||
#endif
|
||||
#define comp_ellint_3f boost_comp_ellint_3f
|
||||
#ifdef comp_ellint_3l
|
||||
#undef comp_ellint_3l
|
||||
#endif
|
||||
#define comp_ellint_3l boost_comp_ellint_3l
|
||||
|
||||
#if 0
|
||||
// [5.2.1.7] confluent hypergeometric functions:
|
||||
#ifdef conf_hyper
|
||||
#undef conf_hyper
|
||||
#endif
|
||||
#define conf_hyper boost_conf_hyper
|
||||
#ifdef conf_hyperf
|
||||
#undef conf_hyperf
|
||||
#endif
|
||||
#define conf_hyperf boost_conf_hyperf
|
||||
#ifdef conf_hyperl
|
||||
#undef conf_hyperl
|
||||
#endif
|
||||
#define conf_hyperl boost_conf_hyperl
|
||||
#endif
|
||||
|
||||
// [5.2.1.8] regular modified cylindrical Bessel functions:
|
||||
#ifdef cyl_bessel_i
|
||||
#undef cyl_bessel_i
|
||||
#endif
|
||||
#define cyl_bessel_i boost_cyl_bessel_i
|
||||
#ifdef cyl_bessel_if
|
||||
#undef cyl_bessel_if
|
||||
#endif
|
||||
#define cyl_bessel_if boost_cyl_bessel_if
|
||||
#ifdef cyl_bessel_il
|
||||
#undef cyl_bessel_il
|
||||
#endif
|
||||
#define cyl_bessel_il boost_cyl_bessel_il
|
||||
|
||||
// [5.2.1.9] cylindrical Bessel functions (of the first kind):
|
||||
#ifdef cyl_bessel_j
|
||||
#undef cyl_bessel_j
|
||||
#endif
|
||||
#define cyl_bessel_j boost_cyl_bessel_j
|
||||
#ifdef cyl_bessel_jf
|
||||
#undef cyl_bessel_jf
|
||||
#endif
|
||||
#define cyl_bessel_jf boost_cyl_bessel_jf
|
||||
#ifdef cyl_bessel_jl
|
||||
#undef cyl_bessel_jl
|
||||
#endif
|
||||
#define cyl_bessel_jl boost_cyl_bessel_jl
|
||||
|
||||
// [5.2.1.10] irregular modified cylindrical Bessel functions:
|
||||
#ifdef cyl_bessel_k
|
||||
#undef cyl_bessel_k
|
||||
#endif
|
||||
#define cyl_bessel_k boost_cyl_bessel_k
|
||||
#ifdef cyl_bessel_kf
|
||||
#undef cyl_bessel_kf
|
||||
#endif
|
||||
#define cyl_bessel_kf boost_cyl_bessel_kf
|
||||
#ifdef cyl_bessel_kl
|
||||
#undef cyl_bessel_kl
|
||||
#endif
|
||||
#define cyl_bessel_kl boost_cyl_bessel_kl
|
||||
|
||||
// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC;
|
||||
// cylindrical Bessel functions (of the second kind):
|
||||
#ifdef cyl_neumann
|
||||
#undef cyl_neumann
|
||||
#endif
|
||||
#define cyl_neumann boost_cyl_neumann
|
||||
#ifdef cyl_neumannf
|
||||
#undef cyl_neumannf
|
||||
#endif
|
||||
#define cyl_neumannf boost_cyl_neumannf
|
||||
#ifdef cyl_neumannl
|
||||
#undef cyl_neumannl
|
||||
#endif
|
||||
#define cyl_neumannl boost_cyl_neumannl
|
||||
|
||||
// [5.2.1.12] (incomplete) elliptic integral of the first kind:
|
||||
#ifdef ellint_1
|
||||
#undef ellint_1
|
||||
#endif
|
||||
#define ellint_1 boost_ellint_1
|
||||
#ifdef ellint_1f
|
||||
#undef ellint_1f
|
||||
#endif
|
||||
#define ellint_1f boost_ellint_1f
|
||||
#ifdef ellint_1l
|
||||
#undef ellint_1l
|
||||
#endif
|
||||
#define ellint_1l boost_ellint_1l
|
||||
|
||||
// [5.2.1.13] (incomplete) elliptic integral of the second kind:
|
||||
#ifdef ellint_2
|
||||
#undef ellint_2
|
||||
#endif
|
||||
#define ellint_2 boost_ellint_2
|
||||
#ifdef ellint_2f
|
||||
#undef ellint_2f
|
||||
#endif
|
||||
#define ellint_2f boost_ellint_2f
|
||||
#ifdef ellint_2l
|
||||
#undef ellint_2l
|
||||
#endif
|
||||
#define ellint_2l boost_ellint_2l
|
||||
|
||||
// [5.2.1.14] (incomplete) elliptic integral of the third kind:
|
||||
#ifdef ellint_3
|
||||
#undef ellint_3
|
||||
#endif
|
||||
#define ellint_3 boost_ellint_3
|
||||
#ifdef ellint_3f
|
||||
#undef ellint_3f
|
||||
#endif
|
||||
#define ellint_3f boost_ellint_3f
|
||||
#ifdef ellint_3l
|
||||
#undef ellint_3l
|
||||
#endif
|
||||
#define ellint_3l boost_ellint_3l
|
||||
|
||||
// [5.2.1.15] exponential integral:
|
||||
#ifdef expint
|
||||
#undef expint
|
||||
#endif
|
||||
#define expint boost_expint
|
||||
#ifdef expintf
|
||||
#undef expintf
|
||||
#endif
|
||||
#define expintf boost_expintf
|
||||
#ifdef expintl
|
||||
#undef expintl
|
||||
#endif
|
||||
#define expintl boost_expintl
|
||||
|
||||
// [5.2.1.16] Hermite polynomials:
|
||||
#ifdef hermite
|
||||
#undef hermite
|
||||
#endif
|
||||
#define hermite boost_hermite
|
||||
#ifdef hermitef
|
||||
#undef hermitef
|
||||
#endif
|
||||
#define hermitef boost_hermitef
|
||||
#ifdef hermitel
|
||||
#undef hermitel
|
||||
#endif
|
||||
#define hermitel boost_hermitel
|
||||
|
||||
#if 0
|
||||
// [5.2.1.17] hypergeometric functions:
|
||||
#ifdef hyperg
|
||||
#undef hyperg
|
||||
#endif
|
||||
#define hyperg boost_hyperg
|
||||
#ifdef hypergf
|
||||
#undef hypergf
|
||||
#endif
|
||||
#define hypergf boost_hypergf
|
||||
#ifdef hypergl
|
||||
#undef hypergl
|
||||
#endif
|
||||
#define hypergl boost_hypergl
|
||||
#endif
|
||||
|
||||
// [5.2.1.18] Laguerre polynomials:
|
||||
#ifdef laguerre
|
||||
#undef laguerre
|
||||
#endif
|
||||
#define laguerre boost_laguerre
|
||||
#ifdef laguerref
|
||||
#undef laguerref
|
||||
#endif
|
||||
#define laguerref boost_laguerref
|
||||
#ifdef laguerrel
|
||||
#undef laguerrel
|
||||
#endif
|
||||
#define laguerrel boost_laguerrel
|
||||
|
||||
// [5.2.1.19] Legendre polynomials:
|
||||
#ifdef legendre
|
||||
#undef legendre
|
||||
#endif
|
||||
#define legendre boost_legendre
|
||||
#ifdef legendref
|
||||
#undef legendref
|
||||
#endif
|
||||
#define legendref boost_legendref
|
||||
#ifdef legendrel
|
||||
#undef legendrel
|
||||
#endif
|
||||
#define legendrel boost_legendrel
|
||||
|
||||
// [5.2.1.20] Riemann zeta function:
|
||||
#ifdef riemann_zeta
|
||||
#undef riemann_zeta
|
||||
#endif
|
||||
#define riemann_zeta boost_riemann_zeta
|
||||
#ifdef riemann_zetaf
|
||||
#undef riemann_zetaf
|
||||
#endif
|
||||
#define riemann_zetaf boost_riemann_zetaf
|
||||
#ifdef riemann_zetal
|
||||
#undef riemann_zetal
|
||||
#endif
|
||||
#define riemann_zetal boost_riemann_zetal
|
||||
|
||||
// [5.2.1.21] spherical Bessel functions (of the first kind):
|
||||
#ifdef sph_bessel
|
||||
#undef sph_bessel
|
||||
#endif
|
||||
#define sph_bessel boost_sph_bessel
|
||||
#ifdef sph_besself
|
||||
#undef sph_besself
|
||||
#endif
|
||||
#define sph_besself boost_sph_besself
|
||||
#ifdef sph_bessell
|
||||
#undef sph_bessell
|
||||
#endif
|
||||
#define sph_bessell boost_sph_bessell
|
||||
|
||||
// [5.2.1.22] spherical associated Legendre functions:
|
||||
#ifdef sph_legendre
|
||||
#undef sph_legendre
|
||||
#endif
|
||||
#define sph_legendre boost_sph_legendre
|
||||
#ifdef sph_legendref
|
||||
#undef sph_legendref
|
||||
#endif
|
||||
#define sph_legendref boost_sph_legendref
|
||||
#ifdef sph_legendrel
|
||||
#undef sph_legendrel
|
||||
#endif
|
||||
#define sph_legendrel boost_sph_legendrel
|
||||
|
||||
// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC;
|
||||
// spherical Bessel functions (of the second kind):
|
||||
#ifdef sph_neumann
|
||||
#undef sph_neumann
|
||||
#endif
|
||||
#define sph_neumann boost_sph_neumann
|
||||
#ifdef sph_neumannf
|
||||
#undef sph_neumannf
|
||||
#endif
|
||||
#define sph_neumannf boost_sph_neumannf
|
||||
#ifdef sph_neumannl
|
||||
#undef sph_neumannl
|
||||
#endif
|
||||
#define sph_neumannl boost_sph_neumannl
|
||||
|
||||
#endif // BOOST_MATH_C_MACROS_IPP
|
||||
@@ -0,0 +1,83 @@
|
||||
// Copyright 2005 Daniel Wallin.
|
||||
// Copyright 2005 Joel de Guzman.
|
||||
//
|
||||
// Use, modification and distribution is subject to the Boost Software
|
||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// Modeled after range_ex, Copyright 2004 Eric Niebler
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// is_std_hash_map.hpp
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef BOOST_PHOENIX_IS_STD_HASH_MAP_EN_16_12_2004
|
||||
#define BOOST_PHOENIX_IS_STD_HASH_MAP_EN_16_12_2004
|
||||
|
||||
#include <boost/mpl/bool.hpp>
|
||||
#include "./std_hash_map_fwd.hpp"
|
||||
|
||||
namespace boost
|
||||
{
|
||||
template<class T>
|
||||
struct is_std_hash_map
|
||||
: boost::mpl::false_
|
||||
{};
|
||||
|
||||
template<class T>
|
||||
struct is_std_hash_multimap
|
||||
: boost::mpl::false_
|
||||
{};
|
||||
|
||||
#ifdef BOOST_HAS_HASH
|
||||
|
||||
template<
|
||||
class Kty
|
||||
, class Ty
|
||||
, class Hash
|
||||
, class Cmp
|
||||
, class Alloc
|
||||
>
|
||||
struct is_std_hash_map< ::BOOST_STD_EXTENSION_NAMESPACE::hash_map<Kty,Ty,Hash,Cmp,Alloc> >
|
||||
: boost::mpl::true_
|
||||
{};
|
||||
|
||||
template<
|
||||
class Kty
|
||||
, class Ty
|
||||
, class Hash
|
||||
, class Cmp
|
||||
, class Alloc
|
||||
>
|
||||
struct is_std_hash_multimap< ::BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<Kty,Ty,Hash,Cmp,Alloc> >
|
||||
: boost::mpl::true_
|
||||
{};
|
||||
|
||||
#elif defined(BOOST_DINKUMWARE_STDLIB)
|
||||
|
||||
template<
|
||||
class Kty
|
||||
, class Ty
|
||||
, class Tr
|
||||
, class Alloc
|
||||
>
|
||||
struct is_std_hash_map< ::BOOST_STD_EXTENSION_NAMESPACE::hash_map<Kty,Ty,Tr,Alloc> >
|
||||
: boost::mpl::true_
|
||||
{};
|
||||
|
||||
template<
|
||||
class Kty
|
||||
, class Ty
|
||||
, class Tr
|
||||
, class Alloc
|
||||
>
|
||||
struct is_std_hash_multimap< ::BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<Kty,Ty,Tr,Alloc> >
|
||||
: boost::mpl::true_
|
||||
{};
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,54 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2001-2011 Joel de Guzman
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
#if !defined(FUSION_DEREF_IMPL_05042005_1037)
|
||||
#define FUSION_DEREF_IMPL_05042005_1037
|
||||
|
||||
#include <boost/fusion/support/config.hpp>
|
||||
#include <boost/fusion/support/detail/access.hpp>
|
||||
#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct vector_iterator_tag;
|
||||
|
||||
namespace extension
|
||||
{
|
||||
template <typename Tag>
|
||||
struct deref_impl;
|
||||
|
||||
template <>
|
||||
struct deref_impl<vector_iterator_tag>
|
||||
{
|
||||
template <typename Iterator>
|
||||
struct apply
|
||||
{
|
||||
typedef typename Iterator::vector vector;
|
||||
typedef typename Iterator::index index;
|
||||
typedef typename value_at_impl<vector_tag>::template apply<vector, index>::type element;
|
||||
|
||||
typedef typename
|
||||
mpl::if_<
|
||||
is_const<vector>
|
||||
, typename fusion::detail::cref_result<element>::type
|
||||
, typename fusion::detail::ref_result<element>::type
|
||||
>::type
|
||||
type;
|
||||
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
static type
|
||||
call(Iterator const& i)
|
||||
{
|
||||
return i.vec.at_impl(index());
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
}}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,123 @@
|
||||
|
||||
// (C) Copyright Tobias Schwinger
|
||||
//
|
||||
// Use modification and distribution are subject to the boost Software License,
|
||||
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
// no include guards, this file is intended for multiple inclusion
|
||||
|
||||
// input: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity40_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,41> function_arity;
|
||||
typedef mpl::vector42< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,42> function_arity;
|
||||
typedef mpl::vector43< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,43> function_arity;
|
||||
typedef mpl::vector44< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,44> function_arity;
|
||||
typedef mpl::vector45< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,45> function_arity;
|
||||
typedef mpl::vector46< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,46> function_arity;
|
||||
typedef mpl::vector47< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,47> function_arity;
|
||||
typedef mpl::vector48< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,48> function_arity;
|
||||
typedef mpl::vector49< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,49> function_arity;
|
||||
typedef mpl::vector50< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,50> function_arity;
|
||||
typedef mpl::vector51< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Paul Mensonides 2002.
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See
|
||||
# * accompanying file LICENSE_1_0.txt or copy at
|
||||
# * http://www.boost.org/LICENSE_1_0.txt)
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_EMPTY_HPP
|
||||
# define BOOST_PREPROCESSOR_EMPTY_HPP
|
||||
#
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
#
|
||||
# endif
|
||||
@@ -0,0 +1,180 @@
|
||||
// Copyright David Abrahams 2002.
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
#ifndef PY_FUNCTION_DWA200286_HPP
|
||||
# define PY_FUNCTION_DWA200286_HPP
|
||||
|
||||
# include <boost/python/detail/signature.hpp>
|
||||
# include <boost/detail/workaround.hpp>
|
||||
# include <boost/mpl/size.hpp>
|
||||
# include <memory>
|
||||
|
||||
namespace boost { namespace python { namespace objects {
|
||||
|
||||
// This type is used as a "generalized Python callback", wrapping the
|
||||
// function signature:
|
||||
//
|
||||
// PyObject* (PyObject* args, PyObject* keywords)
|
||||
|
||||
struct BOOST_PYTHON_DECL py_function_impl_base
|
||||
{
|
||||
virtual ~py_function_impl_base();
|
||||
virtual PyObject* operator()(PyObject*, PyObject*) = 0;
|
||||
virtual unsigned min_arity() const = 0;
|
||||
virtual unsigned max_arity() const;
|
||||
virtual python::detail::py_func_sig_info signature() const = 0;
|
||||
};
|
||||
|
||||
template <class Caller>
|
||||
struct caller_py_function_impl : py_function_impl_base
|
||||
{
|
||||
caller_py_function_impl(Caller const& caller)
|
||||
: m_caller(caller)
|
||||
{}
|
||||
|
||||
PyObject* operator()(PyObject* args, PyObject* kw)
|
||||
{
|
||||
return m_caller(args, kw);
|
||||
}
|
||||
|
||||
virtual unsigned min_arity() const
|
||||
{
|
||||
return m_caller.min_arity();
|
||||
}
|
||||
|
||||
virtual python::detail::py_func_sig_info signature() const
|
||||
{
|
||||
return m_caller.signature();
|
||||
}
|
||||
|
||||
private:
|
||||
Caller m_caller;
|
||||
};
|
||||
|
||||
template <class Caller, class Sig>
|
||||
struct signature_py_function_impl : py_function_impl_base
|
||||
{
|
||||
signature_py_function_impl(Caller const& caller)
|
||||
: m_caller(caller)
|
||||
{}
|
||||
|
||||
PyObject* operator()(PyObject* args, PyObject* kw)
|
||||
{
|
||||
return m_caller(args, kw);
|
||||
}
|
||||
|
||||
virtual unsigned min_arity() const
|
||||
{
|
||||
return mpl::size<Sig>::value - 1;
|
||||
}
|
||||
|
||||
virtual python::detail::py_func_sig_info signature() const
|
||||
{
|
||||
python::detail::signature_element const* sig = python::detail::signature<Sig>::elements();
|
||||
python::detail::py_func_sig_info res = {sig, sig};
|
||||
return res;
|
||||
}
|
||||
|
||||
private:
|
||||
Caller m_caller;
|
||||
};
|
||||
|
||||
template <class Caller, class Sig>
|
||||
struct full_py_function_impl : py_function_impl_base
|
||||
{
|
||||
full_py_function_impl(Caller const& caller, unsigned min_arity, unsigned max_arity)
|
||||
: m_caller(caller)
|
||||
, m_min_arity(min_arity)
|
||||
, m_max_arity(max_arity > min_arity ? max_arity : min_arity)
|
||||
{}
|
||||
|
||||
PyObject* operator()(PyObject* args, PyObject* kw)
|
||||
{
|
||||
return m_caller(args, kw);
|
||||
}
|
||||
|
||||
virtual unsigned min_arity() const
|
||||
{
|
||||
return m_min_arity;
|
||||
}
|
||||
|
||||
virtual unsigned max_arity() const
|
||||
{
|
||||
return m_max_arity;
|
||||
}
|
||||
|
||||
virtual python::detail::py_func_sig_info signature() const
|
||||
{
|
||||
python::detail::signature_element const* sig = python::detail::signature<Sig>::elements();
|
||||
python::detail::py_func_sig_info res = {sig, sig};
|
||||
return res;
|
||||
}
|
||||
|
||||
private:
|
||||
Caller m_caller;
|
||||
unsigned m_min_arity;
|
||||
unsigned m_max_arity;
|
||||
};
|
||||
|
||||
struct py_function
|
||||
{
|
||||
template <class Caller>
|
||||
py_function(Caller const& caller)
|
||||
: m_impl(new caller_py_function_impl<Caller>(caller))
|
||||
{}
|
||||
|
||||
template <class Caller, class Sig>
|
||||
py_function(Caller const& caller, Sig)
|
||||
: m_impl(new signature_py_function_impl<Caller, Sig>(caller))
|
||||
{}
|
||||
|
||||
template <class Caller, class Sig>
|
||||
py_function(Caller const& caller, Sig, int min_arity, int max_arity = 0)
|
||||
: m_impl(new full_py_function_impl<Caller, Sig>(caller, min_arity, max_arity))
|
||||
{}
|
||||
|
||||
py_function(py_function const& rhs)
|
||||
#if __cplusplus < 201103L
|
||||
: m_impl(rhs.m_impl)
|
||||
#else
|
||||
: m_impl(std::move(rhs.m_impl))
|
||||
#endif
|
||||
{}
|
||||
|
||||
PyObject* operator()(PyObject* args, PyObject* kw) const
|
||||
{
|
||||
return (*m_impl)(args, kw);
|
||||
}
|
||||
|
||||
unsigned min_arity() const
|
||||
{
|
||||
return m_impl->min_arity();
|
||||
}
|
||||
|
||||
unsigned max_arity() const
|
||||
{
|
||||
return m_impl->max_arity();
|
||||
}
|
||||
|
||||
python::detail::signature_element const* signature() const
|
||||
{
|
||||
return m_impl->signature().signature;
|
||||
}
|
||||
|
||||
python::detail::signature_element const& get_return_type() const
|
||||
{
|
||||
return *m_impl->signature().ret;
|
||||
}
|
||||
|
||||
private:
|
||||
#if __cplusplus < 201103L
|
||||
mutable std::auto_ptr<py_function_impl_base> m_impl;
|
||||
#else
|
||||
mutable std::unique_ptr<py_function_impl_base> m_impl;
|
||||
#endif
|
||||
};
|
||||
|
||||
}}} // namespace boost::python::objects
|
||||
|
||||
#endif // PY_FUNCTION_DWA200286_HPP
|
||||
@@ -0,0 +1,42 @@
|
||||
#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
|
||||
#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
|
||||
|
||||
// MS compatible compilers support #pragma once
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||
# pragma once
|
||||
#endif
|
||||
|
||||
//
|
||||
// boost/detail/lightweight_mutex.hpp - lightweight mutex
|
||||
//
|
||||
// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// typedef <unspecified> boost::detail::lightweight_mutex;
|
||||
//
|
||||
// boost::detail::lightweight_mutex is a header-only implementation of
|
||||
// a subset of the Mutex concept requirements:
|
||||
//
|
||||
// http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex
|
||||
//
|
||||
// It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.
|
||||
//
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#if !defined(BOOST_HAS_THREADS)
|
||||
# include <boost/smart_ptr/detail/lwm_nop.hpp>
|
||||
#elif defined(BOOST_HAS_PTHREADS)
|
||||
# include <boost/smart_ptr/detail/lwm_pthreads.hpp>
|
||||
#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
|
||||
# include <boost/smart_ptr/detail/lwm_win32_cs.hpp>
|
||||
#else
|
||||
// Use #define BOOST_DISABLE_THREADS to avoid the error
|
||||
# error Unrecognized threading platform
|
||||
#endif
|
||||
|
||||
#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
|
||||
@@ -0,0 +1,89 @@
|
||||
#include "MetaDataRegistry.hpp"
|
||||
|
||||
#include <QMetaType>
|
||||
#include <QItemEditorFactory>
|
||||
#include <QStandardItemEditorCreator>
|
||||
|
||||
#include "Radio.hpp"
|
||||
#include "FrequencyList.hpp"
|
||||
#include "AudioDevice.hpp"
|
||||
#include "Configuration.hpp"
|
||||
#include "StationList.hpp"
|
||||
#include "Transceiver.hpp"
|
||||
#include "TransceiverFactory.hpp"
|
||||
#include "WFPalette.hpp"
|
||||
#include "IARURegions.hpp"
|
||||
|
||||
#include "FrequencyLineEdit.hpp"
|
||||
|
||||
QItemEditorFactory * item_editor_factory ()
|
||||
{
|
||||
static QItemEditorFactory * our_item_editor_factory = new QItemEditorFactory;
|
||||
return our_item_editor_factory;
|
||||
}
|
||||
|
||||
void register_types ()
|
||||
{
|
||||
// types in Radio.hpp are registered in their own translation unit
|
||||
// as they are needed in the wsjtx_udp shared library too
|
||||
|
||||
// we still have to register the fully qualified names of enum types
|
||||
// used as signal/slot connection arguments since the new Qt 5.5
|
||||
// Q_ENUM macro only seems to register the unqualified name
|
||||
|
||||
item_editor_factory ()->registerEditor (qMetaTypeId<Radio::Frequency> (), new QStandardItemEditorCreator<FrequencyLineEdit> ());
|
||||
//auto frequency_delta_type_id = qRegisterMetaType<Radio::FrequencyDelta> ("FrequencyDelta");
|
||||
item_editor_factory ()->registerEditor (qMetaTypeId<Radio::FrequencyDelta> (), new QStandardItemEditorCreator<FrequencyDeltaLineEdit> ());
|
||||
|
||||
// Frequency list model
|
||||
qRegisterMetaType<FrequencyList::Item> ("Item");
|
||||
qRegisterMetaTypeStreamOperators<FrequencyList::Item> ("Item");
|
||||
qRegisterMetaType<FrequencyList::FrequencyItems> ("FrequencyItems");
|
||||
qRegisterMetaTypeStreamOperators<FrequencyList::FrequencyItems> ("FrequencyItems");
|
||||
|
||||
// Audio device
|
||||
qRegisterMetaType<AudioDevice::Channel> ("AudioDevice::Channel");
|
||||
|
||||
// Configuration
|
||||
#if QT_VERSION < 0x050500
|
||||
qRegisterMetaType<Configuration::DataMode> ("Configuration::DataMode");
|
||||
qRegisterMetaType<Configuration::Type2MsgGen> ("Configuration::Type2MsgGen");
|
||||
#endif
|
||||
qRegisterMetaTypeStreamOperators<Configuration::DataMode> ("Configuration::DataMode");
|
||||
qRegisterMetaTypeStreamOperators<Configuration::Type2MsgGen> ("Configuration::Type2MsgGen");
|
||||
|
||||
// Station details
|
||||
qRegisterMetaType<StationList::Station> ("Station");
|
||||
qRegisterMetaType<StationList::Stations> ("Stations");
|
||||
qRegisterMetaTypeStreamOperators<StationList::Station> ("Station");
|
||||
qRegisterMetaTypeStreamOperators<StationList::Stations> ("Stations");
|
||||
|
||||
// Transceiver
|
||||
qRegisterMetaType<Transceiver::TransceiverState> ("Transceiver::TransceiverState");
|
||||
qRegisterMetaType<Transceiver::MODE> ("Transceiver::MODE");
|
||||
|
||||
// Transceiver factory
|
||||
#if QT_VERSION < 0x050500
|
||||
qRegisterMetaType<TransceiverFactory::DataBits> ("TransceiverFactory::DataBits");
|
||||
qRegisterMetaType<TransceiverFactory::StopBits> ("TransceiverFactory::StopBits");
|
||||
qRegisterMetaType<TransceiverFactory::Handshake> ("TransceiverFactory::Handshake");
|
||||
qRegisterMetaType<TransceiverFactory::PTTMethod> ("TransceiverFactory::PTTMethod");
|
||||
qRegisterMetaType<TransceiverFactory::TXAudioSource> ("TransceiverFactory::TXAudioSource");
|
||||
qRegisterMetaType<TransceiverFactory::SplitMode> ("TransceiverFactory::SplitMode");
|
||||
#endif
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::DataBits> ("TransceiverFactory::DataBits");
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::StopBits> ("TransceiverFactory::StopBits");
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::Handshake> ("TransceiverFactory::Handshake");
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::PTTMethod> ("TransceiverFactory::PTTMethod");
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::TXAudioSource> ("TransceiverFactory::TXAudioSource");
|
||||
qRegisterMetaTypeStreamOperators<TransceiverFactory::SplitMode> ("TransceiverFactory::SplitMode");
|
||||
|
||||
// Waterfall palette
|
||||
qRegisterMetaTypeStreamOperators<WFPalette::Colours> ("Colours");
|
||||
|
||||
// IARURegions
|
||||
#if QT_VERSION < 0x050500
|
||||
qRegisterMetaType<IARURegions::Region> ("IARURegions::Region");
|
||||
#endif
|
||||
qRegisterMetaTypeStreamOperators<IARURegions::Region> ("IARURegions::Region");
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
// Copyright 2009 (C) Dean Michael Berris <me@deanberris.com>
|
||||
// Copyright 2012 (C) Google, Inc.
|
||||
// Copyright 2012 (C) Jeffrey Lee Hellrung, Jr.
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
#ifndef BOOST_FUNCTION_INPUT_ITERATOR
|
||||
#define BOOST_FUNCTION_INPUT_ITERATOR
|
||||
|
||||
#include <boost/assert.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/function_types/is_function_pointer.hpp>
|
||||
#include <boost/function_types/is_function_reference.hpp>
|
||||
#include <boost/function_types/result_type.hpp>
|
||||
#include <boost/iterator/iterator_facade.hpp>
|
||||
#include <boost/none.hpp>
|
||||
#include <boost/optional/optional.hpp>
|
||||
|
||||
namespace boost {
|
||||
|
||||
namespace iterators {
|
||||
|
||||
namespace impl {
|
||||
|
||||
template <class Function, class Input>
|
||||
class function_input_iterator
|
||||
: public iterator_facade<
|
||||
function_input_iterator<Function, Input>,
|
||||
typename Function::result_type,
|
||||
single_pass_traversal_tag,
|
||||
typename Function::result_type const &
|
||||
>
|
||||
{
|
||||
public:
|
||||
function_input_iterator() {}
|
||||
function_input_iterator(Function & f_, Input state_ = Input())
|
||||
: f(&f_), state(state_) {}
|
||||
|
||||
void increment() {
|
||||
if(value)
|
||||
value = none;
|
||||
else
|
||||
(*f)();
|
||||
++state;
|
||||
}
|
||||
|
||||
typename Function::result_type const &
|
||||
dereference() const {
|
||||
return (value ? value : value = (*f)()).get();
|
||||
}
|
||||
|
||||
bool equal(function_input_iterator const & other) const {
|
||||
return f == other.f && state == other.state;
|
||||
}
|
||||
|
||||
private:
|
||||
Function * f;
|
||||
Input state;
|
||||
mutable optional<typename Function::result_type> value;
|
||||
};
|
||||
|
||||
template <class Function, class Input>
|
||||
class function_pointer_input_iterator
|
||||
: public iterator_facade<
|
||||
function_pointer_input_iterator<Function, Input>,
|
||||
typename function_types::result_type<Function>::type,
|
||||
single_pass_traversal_tag,
|
||||
typename function_types::result_type<Function>::type const &
|
||||
>
|
||||
{
|
||||
public:
|
||||
function_pointer_input_iterator() {}
|
||||
function_pointer_input_iterator(Function &f_, Input state_ = Input())
|
||||
: f(f_), state(state_) {}
|
||||
|
||||
void increment() {
|
||||
if(value)
|
||||
value = none;
|
||||
else
|
||||
(*f)();
|
||||
++state;
|
||||
}
|
||||
|
||||
typename function_types::result_type<Function>::type const &
|
||||
dereference() const {
|
||||
return (value ? value : value = (*f)()).get();
|
||||
}
|
||||
|
||||
bool equal(function_pointer_input_iterator const & other) const {
|
||||
return f == other.f && state == other.state;
|
||||
}
|
||||
|
||||
private:
|
||||
Function f;
|
||||
Input state;
|
||||
mutable optional<typename function_types::result_type<Function>::type> value;
|
||||
};
|
||||
|
||||
template <class Function, class Input>
|
||||
class function_reference_input_iterator
|
||||
: public function_pointer_input_iterator<Function*,Input>
|
||||
{
|
||||
public:
|
||||
function_reference_input_iterator(Function & f_, Input state_ = Input())
|
||||
: function_pointer_input_iterator<Function*,Input>(&f_, state_)
|
||||
{}
|
||||
};
|
||||
|
||||
} // namespace impl
|
||||
|
||||
template <class Function, class Input>
|
||||
class function_input_iterator
|
||||
: public mpl::if_<
|
||||
function_types::is_function_pointer<Function>,
|
||||
impl::function_pointer_input_iterator<Function,Input>,
|
||||
typename mpl::if_<
|
||||
function_types::is_function_reference<Function>,
|
||||
impl::function_reference_input_iterator<Function,Input>,
|
||||
impl::function_input_iterator<Function,Input>
|
||||
>::type
|
||||
>::type
|
||||
{
|
||||
typedef typename mpl::if_<
|
||||
function_types::is_function_pointer<Function>,
|
||||
impl::function_pointer_input_iterator<Function,Input>,
|
||||
typename mpl::if_<
|
||||
function_types::is_function_reference<Function>,
|
||||
impl::function_reference_input_iterator<Function,Input>,
|
||||
impl::function_input_iterator<Function,Input>
|
||||
>::type
|
||||
>::type base_type;
|
||||
public:
|
||||
function_input_iterator(Function & f, Input i)
|
||||
: base_type(f, i) {}
|
||||
};
|
||||
|
||||
template <class Function, class Input>
|
||||
inline function_input_iterator<Function, Input>
|
||||
make_function_input_iterator(Function & f, Input state) {
|
||||
typedef function_input_iterator<Function, Input> result_t;
|
||||
return result_t(f, state);
|
||||
}
|
||||
|
||||
template <class Function, class Input>
|
||||
inline function_input_iterator<Function*, Input>
|
||||
make_function_input_iterator(Function * f, Input state) {
|
||||
typedef function_input_iterator<Function*, Input> result_t;
|
||||
return result_t(f, state);
|
||||
}
|
||||
|
||||
struct infinite {
|
||||
infinite & operator++() { return *this; }
|
||||
infinite & operator++(int) { return *this; }
|
||||
bool operator==(infinite &) const { return false; };
|
||||
bool operator==(infinite const &) const { return false; };
|
||||
};
|
||||
|
||||
} // namespace iterators
|
||||
|
||||
using iterators::function_input_iterator;
|
||||
using iterators::make_function_input_iterator;
|
||||
using iterators::infinite;
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
#ifndef DIRECTORY_NODE_HPP__
|
||||
#define DIRECTORY_NODE_HPP__
|
||||
|
||||
#include <QTreeWidgetItem>
|
||||
#include <QString>
|
||||
|
||||
//
|
||||
// Tree widget item representing a file system directory.
|
||||
//
|
||||
// It renders the directory name in the first column and progress
|
||||
// information in the 2nd column. The progress information consists of
|
||||
// two 64 bit integer values, the 1st in the DisplayRole is the number
|
||||
// of bytes received and the 2nd in the UserRole the total bytes
|
||||
// expected. The progress information is not automatically
|
||||
// maintained, see the Directory class for an example of how to
|
||||
// dynamically maintain the DirectoryNode progress values. The 1st
|
||||
// column also renders a tristate check box that controls the first
|
||||
// column check boxes of child items.
|
||||
//
|
||||
class DirectoryNode final
|
||||
: public QTreeWidgetItem
|
||||
{
|
||||
public:
|
||||
explicit DirectoryNode (QTreeWidgetItem * parent, QString const& name)
|
||||
: QTreeWidgetItem {parent, Type}
|
||||
{
|
||||
setFlags (flags () | Qt::ItemIsUserCheckable | Qt::ItemIsTristate);
|
||||
setText (0, name);
|
||||
setCheckState (0, Qt::Unchecked);
|
||||
|
||||
// initialize as empty, the owning QTreeWidget must maintain these
|
||||
// progress values
|
||||
setData (1, Qt::DisplayRole, 0ll); // progress in bytes
|
||||
setData (1, Qt::UserRole, 0ll); // expected bytes
|
||||
}
|
||||
|
||||
bool operator == (QString const& name) const
|
||||
{
|
||||
return name == text (0);
|
||||
}
|
||||
|
||||
static int constexpr Type {UserType};
|
||||
};
|
||||
|
||||
inline
|
||||
bool operator == (QString const& lhs, DirectoryNode const& rhs)
|
||||
{
|
||||
return rhs == lhs;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,25 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2011 Hartmut Kaiser
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
|
||||
#if !defined(BOOST_PHOENIX_PREPROCESSED_BIND_DETAIL_MEMBER_FUNCTION_PTR_HPP)
|
||||
#define BOOST_PHOENIX_PREPROCESSED_BIND_DETAIL_MEMBER_FUNCTION_PTR_HPP
|
||||
|
||||
#if BOOST_PHOENIX_LIMIT <= 10
|
||||
#include <boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_10.hpp>
|
||||
#elif BOOST_PHOENIX_LIMIT <= 20
|
||||
#include <boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_20.hpp>
|
||||
#elif BOOST_PHOENIX_LIMIT <= 30
|
||||
#include <boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_30.hpp>
|
||||
#elif BOOST_PHOENIX_LIMIT <= 40
|
||||
#include <boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_40.hpp>
|
||||
#elif BOOST_PHOENIX_LIMIT <= 50
|
||||
#include <boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_50.hpp>
|
||||
#else
|
||||
#error "BOOST_PHOENIX_LIMIT out of bounds for preprocessed headers"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,27 @@
|
||||
// Copyright David Abrahams 2005. Distributed under the Boost
|
||||
// Software License, Version 1.0. (See accompanying
|
||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
#ifndef BOOST_DETAIL_IS_XXX_DWA20051011_HPP
|
||||
# define BOOST_DETAIL_IS_XXX_DWA20051011_HPP
|
||||
|
||||
# include <boost/config.hpp>
|
||||
# include <boost/mpl/bool.hpp>
|
||||
# include <boost/preprocessor/enum_params.hpp>
|
||||
|
||||
|
||||
# define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs) \
|
||||
template <class T> \
|
||||
struct is_##name : mpl::false_ \
|
||||
{ \
|
||||
}; \
|
||||
\
|
||||
template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class T) > \
|
||||
struct is_##name< \
|
||||
qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, T) > \
|
||||
> \
|
||||
: mpl::true_ \
|
||||
{ \
|
||||
};
|
||||
|
||||
|
||||
#endif // BOOST_DETAIL_IS_XXX_DWA20051011_HPP
|
||||
Reference in New Issue
Block a user