#ifndef __CPP__INCLUDED__rperlsse_h
#define __CPP__INCLUDED__rperlsse_h 0.001_101

typedef __m128d sse_number_pair;

#define sse_number_pair__new_from_singleton_duplicate(X) _mm_set1_pd(X)
#define sse_number_pair__new_from_pair(X, Y) _mm_setr_pd(X, Y)  // NEED TEST
#define constant_sse_number_pair__new_from_singleton_duplicate(X) _mm_set1_pd(X)
#define constant_sse_number_pair__new_from_pair(X, Y) _mm_setr_pd(X, Y)  // NEED TEST
#define sse_add +
#define sse_sub -
#define sse_mul *
#define sse_div /
#define sse_recip_sqrt_32bit_on_64bit(X) sse_number_32bit_to_64bit(sse_recip_sqrt_32bit(sse_number_64bit_to_32bit(X)))
#define sse_number_64bit_to_32bit _mm_cvtpd_ps
#define sse_number_32bit_to_64bit _mm_cvtps_pd
#define sse_recip_sqrt_32bit _mm_rsqrt_ps

#endif