<commit_before>
					// template metaprogramming and conveniance macros
					
					#ifndef LVV_META_H
					#define LVV_META_H

	//#include	<boost/type_traits/integral_constant.hpp>

	#define		LVV_TRUE_TYPE		boost::true_type
	#define		LVV_FALSE_TYPE		boost::false_type

	#include	<iostream>
			// for type_descriptor

//------------------------------------------------------------------------------------------	SELECT BOOST OR TR1
	#include	<boost/type_traits.hpp>    
	#define		LVV_PROMOTE1(T)		boost::promote<T>::type
	#define		LVV_IS_INTEGRAL(T)	boost::is_integral<T>::value

	#include	<boost/type_traits.hpp>    
	#define		LVV_PROMOTE1(T)		boost::promote<T>::type
	#define		LVV_IS_INTEGRAL(T)	boost::is_integral<T>::value

	#include	<boost/type_traits.hpp>    
	#define		LVV_PROMOTE1(T)		boost::promote<T>::type
	#define		LVV_IS_INTEGRAL(T)	boost::is_integral<T>::value


	#include	<boost/numeric/ublas/traits.hpp>
	#define		LVV_PROMOTE2(T1,T2)	boost::numeric::ublas::promote_traits<T1,T2>::promote_type

	/* for promotion:
		for single arg only:
			#include  <boost/type_traits/promote.hpp>    
			boost::promote 

		for 2 args
			#include  <boost/boost/numeric/ublas/traits.hpp>
			boost::numeric:ublas

		old blitz promte:
			//#include <lvv/blitz-promote-old.h>
	
		gcc builtin doesn't works with T from template?
			__gnu_cxx::__promote_2<T1,T2>

		my own, depricated:

	DEPRICATED
	// this is promote_trait class to provide summator type
	// use:
	//    typename Type<T>::SuperiorType       sum;
	// if T if float then sum will be double
	// if T if   int then sum will be long
	template <typename Default> struct   Type                   { typedef long            SuperiorType; };
	template <>                 struct   Type<  signed char>    { typedef   signed long   SuperiorType; };
	template <>                 struct   Type<unsigned char>    { typedef unsigned long   SuperiorType; };
	template <>                 struct   Type<unsigned short>   { typedef unsigned long   SuperiorType; };
	template <>                 struct   Type<unsigned int>     { typedef unsigned long   SuperiorType; };
	template <>                 struct   Type<unsigned long>    { typedef unsigned long   SuperiorType; };
	template <>                 struct   Type<float>            { typedef double          SuperiorType; };
	template <>                 struct   Type<double>           { typedef double          SuperiorType; };
	*/



						namespace lvv {

////////////////////////////////////////////////////////////////////////////////////////////  TRAIT

	typedef	 int64_t	int_longest_t;
	typedef	 uint64_t	uint_longest_t;<commit_msg>-- fixed tr1/boost with type_traits/promte<commit_after>
					// template metaprogramming and conveniance macros
					
					#ifndef LVV_META_H
					#define LVV_META_H

	#include	<type_traits>
	//#include	<boost/type_traits/integral_constant.hpp>

	#define		LVV_TRUE_TYPE		boost::true_type
	#define		LVV_FALSE_TYPE		boost::false_type

	#include	<iostream>
			// for type_descriptor

					#ifdef OLD_PRE_TR1_FIX
						#include	<boost/type_traits.hpp>    
						#define		LVV_PROMOTE1(T)		boost::promote<T>::type
						#define		LVV_IS_INTEGRAL(T)	boost::is_integral<T>::value

						#include	<boost/numeric/ublas/traits.hpp>
						#define		LVV_PROMOTE2(T1,T2)	boost::numeric::ublas::promote_traits<T1,T2>::promote_type
					#endif
//------------------------------------------------------------------------------------------	SELECT BOOST OR TR1
	#include	<boost/numeric/ublas/traits.hpp>
	#define		LVV_PROMOTE2(T1,T2)	boost::numeric::ublas::promote_traits<T1,T2>::promote_type

	#include	<boost/type_traits/promote.hpp>    
	#define		LVV_PROMOTE1(T)		boost::promote<T>::type
	#define		LVV_IS_INTEGRAL(T)	std::tr1::is_integral<T>::value

	/* for promotion:
		for single arg only:
			#include  <boost/type_traits/promote.hpp>    
			boost::promote 

		for 2 args
			#include  <boost/boost/numeric/ublas/traits.hpp>
			boost::numeric:ublas

		old blitz promte:
			//#include <lvv/blitz-promote-old.h>
	
		gcc builtin doesn't works with T from template?
			__gnu_cxx::__promote_2<T1,T2>

		my own, depricated:

			DEPRICATED
			// this is promote_trait class to provide summator type
			// use:
			//    typename Type<T>::SuperiorType       sum;
			// if T if float then sum will be double
			// if T if   int then sum will be long
			template <typename Default> struct   Type                   { typedef long            SuperiorType; };
			template <>                 struct   Type<  signed char>    { typedef   signed long   SuperiorType; };
			template <>                 struct   Type<unsigned char>    { typedef unsigned long   SuperiorType; };
			template <>                 struct   Type<unsigned short>   { typedef unsigned long   SuperiorType; };
			template <>                 struct   Type<unsigned int>     { typedef unsigned long   SuperiorType; };
			template <>                 struct   Type<unsigned long>    { typedef unsigned long   SuperiorType; };
			template <>                 struct   Type<float>            { typedef double          SuperiorType; };
			template <>                 struct   Type<double>           { typedef double          SuperiorType; };
	*/



						namespace lvv {

////////////////////////////////////////////////////////////////////////////////////////////  TRAIT

	typedef	 int64_t	int_longest_t;
	typedef	 uint64_t	uint_longest_t;
{'fraction_non_alphanumeric': 0.15987402741756207, 'fraction_numerical': 0.0075954057058169695, 'mean_word_length': 2.1118155619596544, 'pattern_counts': {'":': 0, '<': 69, '<?xml version=': 0, '>': 69, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5838310', 'n_tokens_mistral': 1956, 'n_tokens_neox': 1679, 'n_words': 381}