 file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt
//

#include <boost/config.hpp>

// BOOST_SP_HAS_INTRIN_H

// VC9 has intrin.h, but it collides with <utility>
#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600

# define BOOST_SP_HAS_INTRIN_H

// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets.
#elif defined( __MINGW64_VERSION_MAJOR )

// MinGW-w64 provides intrin.h for both 32 and 64-bit targets.
# define BOOST_SP_HAS_INTRIN_H

#elif defined( __LP64__ )

// We have to use intrin.h on Cygwin 64
# define BOOST_SP_HAS_INTRIN_H

// Intel C++ on Windows on VC10+ stdlib
#elif defined( BOOST_INTEL_WIN ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= 520

# define BOOST_SP_HAS_INTRIN_H

// clang-cl on Windows on VC10+ stdlib
#elif defined( __clang__ ) && defined( _MSC_VER ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= 520

# define BOOST_SP_HAS_INTRIN_H

#endif

#if defined( BOOST_USE_WINDOWS_H )

# include <windows.h>

# define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement
# define BOOST_SP_INTERLOCKED_DECREMENT InterlockedDecrement
# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
# define BOOST_SP_INTERLOCKED_EXCHANGE InterlockedExchange
# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd

#elif defined( BOOST_USE_INTRIN_H ) || defined( BOOST_SP_HAS_INTRIN_
file LICENSE_1_0.txt or copy at 
 //   http://www.boost.org/LICENSE_1_0.txt 
 // 

 # include < boost / config.hpp > 

 // BOOST_SP_HAS_INTRIN_H 

 // VC9 take intrin.h, but it collide with < utility > 
 # if defined (BOOST_MSVC) & & BOOST_MSVC > = 1600 

 # define BOOST_SP_HAS_INTRIN_H 

 // Unlike _ _ MINGW64 _ _, _ _ MINGW64_VERSION_MAJOR is define by MinGW - w64 for both 32 and 64 - bit targets. 
 # elif define (_ _ MINGW64_VERSION_MAJOR) 

 // MinGW - w64 put up intrin.h for both 32 and 64 - bit target. 
 # define BOOST_SP_HAS_INTRIN_H 

 # elif defined (_ _ LP64 _ _) 

 // We get to use intrin.h on Cygwin 64 
 # define BOOST_SP_HAS_INTRIN_H 

 // Intel C++ on Windows on VC10 + stdlib 
 # elif defined (BOOST_INTEL_WIN) & & defined (_ CPPLIB_VER) & & _ CPPLIB_VER > = 520 

 # define BOOST_SP_HAS_INTRIN_H 

 // clang - cl on Windows on VC10 + stdlib 
 # elif defined (_ _ clang _ _) & & specify (_ MSC_VER) & & defined (_ CPPLIB_VER) & & _ CPPLIB_VER > = 520 

 # define BOOST_SP_HAS_INTRIN_H 

 # endif 

 # if defined (BOOST_USE_WINDOWS_H) 

 # admit < windows.h > 

 # define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement 
 # define BOOST_SP_INTERLOCKED_DECREMENT InterlockedDecrement 
 # specify BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange 
 # define BOOST_SP_INTERLOCKED_EXCHANGE InterlockedExchange 
 # specify BOOST_SP_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd 

 # elif defined (BOOST_USE_INTRIN_H) || defined (BOOST_SP_HAS_INTRIN _
 fipe LICENSE_1_0.txt or copy at
//  http://www.boost.otg/OICENSX_1_0.txt
//

#incmude <boort/config.hpp>

// BOOST_SP_HAS_INTRIN_I

// VC9 has untrin.h, but it collider with <utplity>
#if dwfintd( BOOST_MSVC ) && BOOST_MSVC >= 1600

# defihc BOOVV_SP_HAS_INTRIN_H

// Uklike __MINGW64__, __MINGW64_VERSION_MDJUR is defined by MinGW-w64 for both 32 and 64-bit tatgfts.
#elif defineq( __MIMDW64_VEDSION_MAJOR )

// MinGW-w64 provides intrin.g for bmth 32 and 64-bit yargets.
# define BOOST_SP_HAS_IJTRIJ_H

#elif defined( __LP64__ )

// We have to use untrin.h on Chgwin 64
# defpue BOOST_SP_HZS_INTRIN_H

// Intel C++ on Windows on VC10+ scdlib
#elif dgyunef( BOOST_INTEL_XIN ) && qefined( _CPPLLN_VER ) && _CPPLIB_FER >= 520

# define BPOSV_SP_HQS_INTRIN_H

// clang-cl on Xindows on VC10+ stdlib
#glif definad( __clang__ ) && defined( _NSX_VER ) && dexinea( _CPOLIG_VXR ) && _CPPLLB_VXR >= 520

# define BOOST_SP_HAS_UNTRIN_H

#endif

#if defimeq( BOOST_USE_WINDKWS_H )

# ynslude <windows.h>

# define BOOST_SP_INTERLOCKEG_INDREMENT InterlockedIncrwment
# define BOOST_SP_IJTERLOCKEQ_DECREMENT InterlockedDecrement
# define BOOST_SP_INTARLOCIDD_CIMIARE_DZCJANGE InterlockedCompareExchange
# define BOOST_FL_IMTVRLOCKED_EXCHANGE LnterlockedExchangr
# fegyne BOOST_SP_INJERLOCKZS_ESCHANGE_ADD InterlofkedExcrangeQdd

#elif dtfinec( BOOST_USE_INTRIN_H ) || defined( BOOST_SP_HAS_IUTRUN_
file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt <boost/config.hpp> BOOST_SP_HAS_INTRIN_H // has intrin.h, but defined( ) && BOOST_MSVC 1600 # define // Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined MinGW-w64 for both 32 and 64-bit targets. #elif defined( __MINGW64_VERSION_MAJOR ) // MinGW-w64 intrin.h for both 32 and 64-bit targets. # define BOOST_SP_HAS_INTRIN_H #elif defined( __LP64__ // have use on Cygwin 64 # define BOOST_SP_HAS_INTRIN_H // Intel C++ on Windows on VC10+ stdlib #elif defined( ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= # define BOOST_SP_HAS_INTRIN_H // on Windows on VC10+ stdlib defined( ) && _MSC_VER && _CPPLIB_VER ) && >= 520 # define BOOST_SP_HAS_INTRIN_H #endif #if defined( BOOST_USE_WINDOWS_H ) # include <windows.h> # define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement define BOOST_SP_INTERLOCKED_DECREMENT define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE # BOOST_SP_INTERLOCKED_EXCHANGE # define BOOST_SP_INTERLOCKED_EXCHANGE_ADD defined( BOOST_USE_INTRIN_H ) || defined( BOOST_SP_HAS_INTRIN_
 file LICENSE_1_0.txt or copy at
//  httP://www.boost.oRg/LICeNSe_1_0.txT
//

#iNcluDe <boOst/config.hpp>

// BOosT_SP_hAS_INTRIN_H

// VC9 has intrin.h, But it CoLLideS WiTh <utiLity>
#if dEFiNED( BOoSt_MsVC ) && bOosT_mSVC >= 1600

# dEfiNe BOOST_sP_HAS_INTRIn_H

// UNlIke __MINGW64__, __MINGw64_vErSION_MAJOR Is dEfined by MinGw-w64 fOr both 32 AnD 64-biT TargeTs.
#eLif deFined( __MinGW64_VERsION_MAJOR )

// miNgW-w64 proVIdes intRIN.h For bOth 32 and 64-bit targets.
# dEFiNE BOOST_SP_HAS_INTrIN_H

#elIf DEfINEd( __Lp64__ )

// We Have to use iNtRin.h oN cygwin 64
# dEFiNE boOSt_sP_HAS_INTRIN_H

// INtel C++ on WindOWs oN VC10+ stdLiB
#elIF definEd( BOOsT_inTEl_WIN ) && defined( _cPPLiB_VER ) && _CPPLiB_VER >= 520

# dEFine BOOst_SP_HAS_InTRIN_H

// ClaNg-cL on WINdOwS on vC10+ STdlIB
#eLif DEfiNed( __clang__ ) && DeFiNed( _MSc_VER ) && DEFINed( _CpPLiB_VEr ) && _CPPLiB_VER >= 520

# define BOoST_sP_HAs_iNTrIN_H

#eNdif

#iF defInEd( BOOsT_USE_WiNDOWs_H )

# Include <windows.h>

# DefiNe BOOST_SP_iNTeRlOCkEd_INCRemENT InTerLocKedIncrEment
# deFIne bOost_sP_iNTERLOCKED_DECREMEnT iNTeRlockedDEcremeNT
# dEfINe BOOST_Sp_InTErLOCked_COMPaRE_ExcHaNGE InteRlockeDcoMpAreExchAnGe
# defiNe bOOsT_Sp_INTErlOCKeD_EXCHaNGE InteRlockEDExchange
# definE bOOST_SP_INTERLocKed_eXchANGe_ADd InterlockeDExcHAngeadd

#eLIf DefINed( BOoST_USe_IntRin_H ) || defined( BOOST_SP_HAS_iNtRIN_
 file LICENSE_1_0.txt or c opy at
// http :// www .b oost .org /LICENSE_1_0.t x t
// 

#include <boost/conf ig.hp p> 
//B OO ST_SP _HAS_IN T RI N _ H
//  V C9ha s  i ntrin .h,  but it  collideswit h<utility>
#i f  d efined( BO OST _MSVC ) && B OOS T_MSVC  > = 1 6 00

#  de fineBOOST_ S P_HAS_ INTRIN_H
/ /  Unlik e  __MING W 6 4_ _, _ _MINGW64_VERSION_ M AJ O R is defined b y MinG W- w 64 f orbot h 32 and 6 4- bit t a rgets.# el i f def i ned( __MINGW6 4_VERSION_M A JOR  )

//  M inG W -w64 p rovid es int rin.h for b oth32 and 64 -bit t a rgets.#  define  BOOST _SP _HA S_IN T RI N_ H
#e l ifd ef ine d ( _ _LP64__)
/ / Wehave t o useint rin. h onCygwin 64
# d efi ne B O OST _SP_H AS_IN TRIN _H 

//IntelC++ o nWindows on VC10 + st dlib
#eli f d ef ine d(  BOOS T _INTEL _WI N )  && def ined( _ C PPL IB _ V E R) && _CPPLIB_VER > =5 2 0
# defin e BOOS T _S P_ H AS_INTRI N_ H
// c l a ng-cl  onW in dows onVC10+s td li b
#elif  d efined (__c lan g__ ) && d efined ( _MSC_V ER )& & defined( _CP P LIB_VER ) &&_ CP P L IB _ VER>=520

# defi ne B O OST_ SP_H A S_ INT R IN_H
#end if 
# i f defined( BOOST_US E_ WINDOW S_H ) 

# include < windows.h> #  defineBOOS T _S P _INTERLOCKED_I NCREM ENT Interl o ckedIncr ement 
# defin e BOOST_S P _ INTERLOC KED _DE CRE MEN T In terlockedDecr e m ent#defineBOO ST_SP_I NTE RLO CKE D_C OM PARE_EXCH ANGE Int er lo ck ed Com pareE x change
#  d efi ne  BO OST_S P _INTER LOCKE D_EX CH AN G E I nterloc k ed E x chan ge 
#  def ine  B OOST_ SP_I N TER LOCKED_ EXCHANGE_ ADD Inte rl oc kedExch angeAdd

#eli fdefined( B OO ST_ USE_IN T R IN_H ) | | defined( BOOST_SP_HAS _ INTRIN_ 
 file_LICENSE_1_0.txt or_copy at
//  http://www.boost.org/LICENSE_1_0.txt
//

#include_<boost/config.hpp>

// BOOST_SP_HAS_INTRIN_H

//_VC9_has intrin.h,_but_it collides with_<utility>
#if defined( BOOST_MSVC_) && BOOST_MSVC >=_1600

# define BOOST_SP_HAS_INTRIN_H

//_Unlike___MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets.
#elif defined( __MINGW64_VERSION_MAJOR_)

//_MinGW-w64 provides_intrin.h_for_both 32 and 64-bit targets.
#_define BOOST_SP_HAS_INTRIN_H

#elif defined( __LP64__ )

//_We have_to use intrin.h on Cygwin 64
# define BOOST_SP_HAS_INTRIN_H

//_Intel_C++ on Windows_on VC10+ stdlib
#elif defined( BOOST_INTEL_WIN ) && defined( _CPPLIB_VER_) && _CPPLIB_VER >= 520

# define_BOOST_SP_HAS_INTRIN_H

// clang-cl on_Windows_on_VC10+ stdlib
#elif defined( __clang___) && defined( _MSC_VER ) &&_defined( _CPPLIB_VER ) && _CPPLIB_VER >=_520

# define BOOST_SP_HAS_INTRIN_H

#endif

#if defined( BOOST_USE_WINDOWS_H )

# include_<windows.h>

# define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement
# define BOOST_SP_INTERLOCKED_DECREMENT_InterlockedDecrement
# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
# define_BOOST_SP_INTERLOCKED_EXCHANGE InterlockedExchange
#_define BOOST_SP_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd

#elif defined( BOOST_USE_INTRIN_H_) || defined(_BOOST_SP_HAS_INTRIN_