<commit_before>
/**
	@brief fast math library for float
	@author herumi
	@url http://homepage1.nifty.com/herumi/
	@note modified new BSD license
	http://opensource.org/licenses/BSD-3-Clause
 
	cl /Ox /Ob2 /arch:SSE2 /fp:fast bench.cpp -I../xbyak /EHsc /DNOMINMAX
	g++ -O3 -fomit-frame-pointer -fno-operator-names -march=core2 -mssse3 -mfpmath=sse -ffast-math -fexcess-precision=fast
 */
/*
	function prototype list
 
	float fmath::exp(float);
	double fmath::expd(double);
	float fmath::log(float);
 
	__m128 fmath::exp_ps(__m128);
	__m256 fmath::exp_ps256(__m256);
	__m128 fmath::log_ps(__m128);
 
	double fmath::expd_v(double *, size_t n);
 
	if FMATH_USE_XBYAK is defined then Xbyak version are used
 */

#ifndef ATK_UTILITY_FMATH_H
#define ATK_UTILITY_FMATH_H

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cassert>
#include <limits>
#include <cstdlib>
#include <cfloat>
#include <cstring> // for memcpy

#if defined(_WIN32) && !defined(__GNUC__)
# include <intrin.h>
# ifndef MIE_ALIGN
#  define MIE_ALIGN(x) __declspec(align(x))
# endif
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
/* GCC >= 4.4 and non-GCC compilers */
# include <x86intrin.h>
#endif
#ifndef MIE_ALIGN
# define MIE_ALIGN(x) __attribute__((aligned(x)))
#endif

namespace fmath {
  
  namespace local {
    
    const size_t EXP_TABLE_SIZE = 10;
    const size_t EXPD_TABLE_SIZE = 11;
    const size_t LOG_TABLE_SIZE = 12;
    
    typedef unsigned long long uint64_t;
    
    union fi {
      float f;
      unsigned int i;
    };
    
    union di {
      double d;
      uint64_t i;
    };<commit_msg>Trial to fix the linux builds<commit_after>
/**
	@brief fast math library for float
	@author herumi
	@url http://homepage1.nifty.com/herumi/
	@note modified new BSD license
	http://opensource.org/licenses/BSD-3-Clause
 
	cl /Ox /Ob2 /arch:SSE2 /fp:fast bench.cpp -I../xbyak /EHsc /DNOMINMAX
	g++ -O3 -fomit-frame-pointer -fno-operator-names -march=core2 -mssse3 -mfpmath=sse -ffast-math -fexcess-precision=fast
 */
/*
	function prototype list
 
	float fmath::exp(float);
	double fmath::expd(double);
	float fmath::log(float);
 
	__m128 fmath::exp_ps(__m128);
	__m256 fmath::exp_ps256(__m256);
	__m128 fmath::log_ps(__m128);
 
	double fmath::expd_v(double *, size_t n);
 
	if FMATH_USE_XBYAK is defined then Xbyak version are used
 */

#ifndef ATK_UTILITY_FMATH_H
#define ATK_UTILITY_FMATH_H

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cassert>
#include <limits>
#include <cstdint>
#include <cfloat>
#include <cstring> // for memcpy

#if defined(_WIN32) && !defined(__GNUC__)
# include <intrin.h>
# ifndef MIE_ALIGN
#  define MIE_ALIGN(x) __declspec(align(x))
# endif
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
/* GCC >= 4.4 and non-GCC compilers */
# include <x86intrin.h>
#endif
#ifndef MIE_ALIGN
# define MIE_ALIGN(x) __attribute__((aligned(x)))
#endif

namespace fmath {
  
  namespace local {
    
    const size_t EXP_TABLE_SIZE = 10;
    const size_t EXPD_TABLE_SIZE = 11;
    const size_t LOG_TABLE_SIZE = 12;
    
    union fi {
      float f;
      unsigned int i;
    };
    
    union di {
      double d;
      uint64_t i;
    };
{'fraction_non_alphanumeric': 0.12725575606720596, 'fraction_numerical': 0.031113876789047916, 'mean_word_length': 3.812874251497006, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 25, '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': '4075837', 'n_tokens_mistral': 1330, 'n_tokens_neox': 1241, 'n_words': 296}