#include "../sse4-common.h"
-__attribute__((noinline))
-UInt get_mxcsr ( void )
-{
- ULong w64;
- __asm__ __volatile__(
- "subq $8, %%rsp" "\n\t"
- "stmxcsr (%%rsp)" "\n\t"
- "movq (%%rsp), %0" "\n"
- "addq $8, %%rsp"
- : /*OUT*/"=r"(w64) : /*IN*/ : "memory","cc"
- );
- if (0) printf("get %08x\n", (UInt)w64);
- return (UInt)w64;
-}
-
-__attribute__((noinline))
-void set_mxcsr ( UInt w32 )
-{
- if (0) printf("set %08x\n", w32);
- ULong w64 = (ULong)w32;
- __asm__ __volatile__(
- "subq $8, %%rsp" "\n\t"
- "movq %0, (%%rsp)" "\n\t"
- "ldmxcsr (%%rsp)" "\n\t"
- "addq $8, %%rsp"
- : /*OUT*/ : /*IN*/"r"(w64) : "memory",/*"mxcsr",*/"cc"
- );
-}
-
-UInt get_sse_roundingmode ( void )
-{
- UInt w = get_mxcsr();
- return (w >> 13) & 3;
-}
-
-void set_sse_roundingmode ( UInt m )
-{
- UInt w;
- assert(0 == (m & ~3));
- w = get_mxcsr();
- w &= ~(3 << 13);
- w |= (m << 13);
- set_mxcsr(w);
-}
-
/* Architecture-specific macros for amd64 (use %r11) */
}
}
-/* ------------ ROUNDSD ------------ */
-
-void do_ROUNDSD_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundsd $0, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundsd $0, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSD_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundsd $1, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundsd $1, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSD_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundsd $2, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundsd $2, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSD_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundsd $3, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundsd $3, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSD_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundsd $4, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundsd $4, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void test_ROUNDSD_w_immediate_rounding ( void )
-{
- double vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_000(False/*reg*/, &src, &dst);
- printf("r roundsd_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_000(True/*mem*/, &src, &dst);
- printf("m roundsd_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_001(False/*reg*/, &src, &dst);
- printf("r roundsd_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_001(True/*mem*/, &src, &dst);
- printf("m roundsd_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_010(False/*reg*/, &src, &dst);
- printf("r roundsd_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_010(True/*mem*/, &src, &dst);
- printf("m roundsd_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_011(False/*reg*/, &src, &dst);
- printf("r roundsd_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_011(True/*mem*/, &src, &dst);
- printf("m roundsd_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
- }
-}
-
-void test_ROUNDSD_w_mxcsr_rounding ( void )
-{
- UInt rm;
- double vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- for (rm = 0; rm <= 3; rm++) {
- set_sse_roundingmode(rm);
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_1XX(False/*reg*/, &src, &dst);
- printf("r (rm=%u) roundsd_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- do_ROUNDSD_1XX(True/*mem*/, &src, &dst);
- printf("m (rm=%u) roundsd_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
- printf("\n");
- }
- }
-
- rm = get_sse_roundingmode();
- assert(rm == 3);
- set_sse_roundingmode(0);
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-}
-
-
-/* ------------ ROUNDSS ------------ */
-
-void do_ROUNDSS_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundss $0, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundss $0, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSS_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundss $1, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundss $1, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSS_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundss $2, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundss $2, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSS_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundss $3, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundss $3, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDSS_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundss $4, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundss $4, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void test_ROUNDSS_w_immediate_rounding ( void )
-{
- float vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_000(False/*reg*/, &src, &dst);
- printf("r roundss_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_000(True/*mem*/, &src, &dst);
- printf("m roundss_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_001(False/*reg*/, &src, &dst);
- printf("r roundss_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_001(True/*mem*/, &src, &dst);
- printf("m roundss_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_010(False/*reg*/, &src, &dst);
- printf("r roundss_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_010(True/*mem*/, &src, &dst);
- printf("m roundss_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_011(False/*reg*/, &src, &dst);
- printf("r roundss_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_011(True/*mem*/, &src, &dst);
- printf("m roundss_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
- }
-}
-
-void test_ROUNDSS_w_mxcsr_rounding ( void )
-{
- UInt rm;
- float vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- for (rm = 0; rm <= 3; rm++) {
- set_sse_roundingmode(rm);
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_1XX(False/*reg*/, &src, &dst);
- printf("r (rm=%u) roundss_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- do_ROUNDSS_1XX(True/*mem*/, &src, &dst);
- printf("m (rm=%u) roundss_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
- printf("\n");
- }
- }
-
- rm = get_sse_roundingmode();
- assert(rm == 3);
- set_sse_roundingmode(0);
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-}
-
/* ------------ ROUNDPD ------------ */
void do_ROUNDPD_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
static inline double mkPosNan ( void ) { return 0.0 / 0.0; }
static inline double mkNegNan ( void ) { return -mkPosNan(); }
+#ifdef __x86_64__
+static inline UInt get_mxcsr ( void )
+{
+ ULong w64;
+ __asm__ __volatile__(
+ "subq $8, %%rsp" "\n\t"
+ "stmxcsr (%%rsp)" "\n\t"
+ "movq (%%rsp), %0" "\n"
+ "addq $8, %%rsp"
+ : /*OUT*/"=r"(w64) : /*IN*/ : "memory","cc"
+ );
+ if (0) printf("get %08x\n", (UInt)w64);
+ return (UInt)w64;
+}
+
+static inline void set_mxcsr ( UInt w32 )
+{
+ if (0) printf("set %08x\n", w32);
+ ULong w64 = (ULong)w32;
+ __asm__ __volatile__(
+ "subq $8, %%rsp" "\n\t"
+ "movq %0, (%%rsp)" "\n\t"
+ "ldmxcsr (%%rsp)" "\n\t"
+ "addq $8, %%rsp"
+ : /*OUT*/ : /*IN*/"r"(w64) : "memory",/*"mxcsr",*/"cc"
+ );
+}
+#else
+static inline UInt get_mxcsr ( void )
+{
+ UInt w32;
+ __asm__ __volatile__(
+ "sub $8, %%esp" "\n\t"
+ "stmxcsr (%%esp)" "\n\t"
+ "movl (%%esp), %0" "\n"
+ "add $8, %%esp"
+ : /*OUT*/"=r"(w32) : /*IN*/ : "memory","cc"
+ );
+ if (0) printf("get %08x\n", w32);
+ return w32;
+}
+
+static inline void set_mxcsr ( UInt w32 )
+{
+ if (0) printf("set %08x\n", w32);
+ __asm__ __volatile__(
+ "sub $8, %%esp" "\n\t"
+ "movl %0, (%%esp)" "\n\t"
+ "ldmxcsr (%%esp)" "\n\t"
+ "add $8, %%esp"
+ : /*OUT*/ : /*IN*/"r"(w32) : "memory",/*"mxcsr",*/"cc"
+ );
+}
+#endif
+
+static inline UInt get_sse_roundingmode ( void )
+{
+ UInt w = get_mxcsr();
+ return (w >> 13) & 3;
+}
+
+static inline void set_sse_roundingmode ( UInt m )
+{
+ UInt w;
+ assert(0 == (m & ~3));
+ w = get_mxcsr();
+ w &= ~(3 << 13);
+ w |= (m << 13);
+ set_mxcsr(w);
+}
+
/* Macros for testing XMM register to register and memory to register operations */
/* Use xmm7 for 32-bit x86 and xxm11 for amd64
}
}
+/* ------------ ROUNDSD ------------ */
+
+static inline void do_ROUNDSD_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundsd $0, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundsd $0, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSD_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundsd $1, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundsd $1, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSD_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundsd $2, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundsd $2, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSD_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundsd $3, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundsd $3, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSD_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundsd $4, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundsd $4, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void test_ROUNDSD_w_immediate_rounding ( void )
+{
+ double vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ V128 src, dst;
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_000(False/*reg*/, &src, &dst);
+ printf("r roundsd_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_000(True/*mem*/, &src, &dst);
+ printf("m roundsd_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_001(False/*reg*/, &src, &dst);
+ printf("r roundsd_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_001(True/*mem*/, &src, &dst);
+ printf("m roundsd_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_010(False/*reg*/, &src, &dst);
+ printf("r roundsd_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_010(True/*mem*/, &src, &dst);
+ printf("m roundsd_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_011(False/*reg*/, &src, &dst);
+ printf("r roundsd_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_011(True/*mem*/, &src, &dst);
+ printf("m roundsd_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+ }
+}
+
+static inline void test_ROUNDSD_w_mxcsr_rounding ( void )
+{
+ UInt rm;
+ double vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ V128 src, dst;
+
+ for (rm = 0; rm <= 3; rm++) {
+ set_sse_roundingmode(rm);
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_1XX(False/*reg*/, &src, &dst);
+ printf("r (rm=%u) roundsd_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ do_ROUNDSD_1XX(True/*mem*/, &src, &dst);
+ printf("m (rm=%u) roundsd_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", vals[i], *(double*)(&dst[0]));
+ printf("\n");
+ }
+ }
+
+ rm = get_sse_roundingmode();
+ assert(rm == 3);
+ set_sse_roundingmode(0);
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+}
+
+
+/* ------------ ROUNDSS ------------ */
+
+static inline void do_ROUNDSS_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundss $0, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundss $0, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSS_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundss $1, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundss $1, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSS_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundss $2, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundss $2, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSS_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundss $3, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundss $3, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDSS_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundss $4, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundss $4, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void test_ROUNDSS_w_immediate_rounding ( void )
+{
+ float vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ V128 src, dst;
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_000(False/*reg*/, &src, &dst);
+ printf("r roundss_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_000(True/*mem*/, &src, &dst);
+ printf("m roundss_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_001(False/*reg*/, &src, &dst);
+ printf("r roundss_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_001(True/*mem*/, &src, &dst);
+ printf("m roundss_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_010(False/*reg*/, &src, &dst);
+ printf("r roundss_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_010(True/*mem*/, &src, &dst);
+ printf("m roundss_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_011(False/*reg*/, &src, &dst);
+ printf("r roundss_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_011(True/*mem*/, &src, &dst);
+ printf("m roundss_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+ }
+}
+
+static inline void test_ROUNDSS_w_mxcsr_rounding ( void )
+{
+ UInt rm;
+ float vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ V128 src, dst;
+
+ for (rm = 0; rm <= 3; rm++) {
+ set_sse_roundingmode(rm);
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_1XX(False/*reg*/, &src, &dst);
+ printf("r (rm=%u) roundss_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ do_ROUNDSS_1XX(True/*mem*/, &src, &dst);
+ printf("m (rm=%u) roundss_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" %10f %10f", (double)vals[i], (double)*(float*)(&dst[0]));
+ printf("\n");
+ }
+ }
+
+ rm = get_sse_roundingmode();
+ assert(rm == 3);
+ set_sse_roundingmode(0);
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+}
+
#endif /* __SSE4_COMMON_H */
m movntdqa b0e63d866320c355ed98b4a9e8d6e4c1 09e4bb78a8121467db27fc0066bc7f4f b0e63d866320c355ed98b4a9e8d6e4c1
m movntdqa 39df4ba2b0883fa0f57ab3b51afb0c56 fb4f5f827e66bca6095bd91417c2934b 39df4ba2b0883fa0f57ab3b51afb0c56
m movntdqa eb0e45f4f7eae27ec0f14ecb50a5fc04 84562c36ddb9ea8ea8c8d0e79a950eb5 eb0e45f4f7eae27ec0f14ecb50a5fc04
+r roundsd_000 23c025e6d5d2e99c0000000000000000 02471f026197d9cd0000000000000000 0.000000 0.000000
+m roundsd_000 3d42e9e6e5cb90a60000000000000000 cf6c3250a58dc60d0000000000000000 0.000000 0.000000
+r roundsd_001 95de8b5fc46113470000000000000000 4912638e4626edfa0000000000000000 0.000000 0.000000
+m roundsd_001 87e109bc0d20ad2c0000000000000000 cb85ad27dfef8a410000000000000000 0.000000 0.000000
+r roundsd_010 6f975f6b5d959b000000000000000000 b0100d870c73d98e0000000000000000 0.000000 0.000000
+m roundsd_010 a94b87d74f4b19700000000000000000 56017d1a6a3e158c0000000000000000 0.000000 0.000000
+r roundsd_011 914b7f6c80ce63280000000000000000 17a2fb4c94dd7be80000000000000000 0.000000 0.000000
+m roundsd_011 83e142978babb4d30000000000000000 5040828927db464e0000000000000000 0.000000 0.000000
+r roundsd_000 db5accc20d6d491e8000000000000000 5e270e3ebfc4b3698000000000000000 -0.000000 -0.000000
+m roundsd_000 f502195aa1a15db48000000000000000 9ba39cd5f625fee58000000000000000 -0.000000 -0.000000
+r roundsd_001 2c2526cce3d22e428000000000000000 640027bc6b8963708000000000000000 -0.000000 -0.000000
+m roundsd_001 de0fee83708cf6738000000000000000 168aaa5db77c1eb38000000000000000 -0.000000 -0.000000
+r roundsd_010 660b6deae45bf2f58000000000000000 0b8c2426798b6a5d8000000000000000 -0.000000 -0.000000
+m roundsd_010 20669f6fdacc5d718000000000000000 a0538e824a4184188000000000000000 -0.000000 -0.000000
+r roundsd_011 676d807dee6a75968000000000000000 312ce5ddc92aa7908000000000000000 -0.000000 -0.000000
+m roundsd_011 996a0d80bdc2740e8000000000000000 1a6126a38fd311738000000000000000 -0.000000 -0.000000
+r roundsd_000 11aa41e4e25f96857ff0000000000000 b83e4c403ac7fc6a7ff0000000000000 inf inf
+m roundsd_000 2a781815facd19a87ff0000000000000 651153206692a4247ff0000000000000 inf inf
+r roundsd_001 42228e7fa19937237ff0000000000000 7e2538b0aec1474b7ff0000000000000 inf inf
+m roundsd_001 b3f2a08f714e2da17ff0000000000000 5fc5f55aaedf1f8b7ff0000000000000 inf inf
+r roundsd_010 db3648af097836cf7ff0000000000000 643e888b037969927ff0000000000000 inf inf
+m roundsd_010 1438844d02a38f597ff0000000000000 e9dcecb0491961097ff0000000000000 inf inf
+r roundsd_011 bc4550d3fa5c74ea7ff0000000000000 4aeb1e341b4e429f7ff0000000000000 inf inf
+m roundsd_011 2da9a6af8d2f212e7ff0000000000000 e3b7188215a149fe7ff0000000000000 inf inf
+r roundsd_000 c5af844c56a6d2d3fff0000000000000 0f8bd808d4a0b2d2fff0000000000000 -inf -inf
+m roundsd_000 dea5e516f24fc282fff0000000000000 2cb55931f3d6b9c8fff0000000000000 -inf -inf
+r roundsd_001 d5d5c579fcb62eeafff0000000000000 957f97690fcf998cfff0000000000000 -inf -inf
+m roundsd_001 078c20e1106551b5fff0000000000000 a6368e1cc3188fcafff0000000000000 -inf -inf
+r roundsd_010 ce16f2bacbea6990fff0000000000000 bb263bb7ac3dd62dfff0000000000000 -inf -inf
+m roundsd_010 87bf3870c9d1b026fff0000000000000 2f9b99a465c8ac61fff0000000000000 -inf -inf
+r roundsd_011 8ed3ed6fa5a46224fff0000000000000 60e0a4508b474b13fff0000000000000 -inf -inf
+m roundsd_011 409d0d24fbf1bd35fff0000000000000 a9435828b945f0effff0000000000000 -inf -inf
+r roundsd_000 f76b95fa6844fb06fff8000000000000 650eb2968b4fd6a0fff8000000000000 -nan -nan
+m roundsd_000 10877f5c87275943fff8000000000000 f28eac089ff03bd3fff8000000000000 -nan -nan
+r roundsd_001 e73ec9b8f5291397fff8000000000000 aa0f44e98eb45934fff8000000000000 -nan -nan
+m roundsd_001 d8dc6e794dd364affff8000000000000 ebdd75a5f6276c6efff8000000000000 -nan -nan
+r roundsd_010 3fad6a0b2cb38936fff8000000000000 0f443ca873d6b22dfff8000000000000 -nan -nan
+m roundsd_010 78fcbada2d54bed9fff8000000000000 7490935e9f4d651ffff8000000000000 -nan -nan
+r roundsd_011 df175852ed423e44fff8000000000000 740c78331916c2eefff8000000000000 -nan -nan
+m roundsd_011 d04842df070a4722fff8000000000000 6d05e6937bbf0446fff8000000000000 -nan -nan
+r roundsd_000 a7dc73ed183713207ff8000000000000 b9c7d9eb61d469d47ff8000000000000 nan nan
+m roundsd_000 bf1fe8e9bb56dee97ff8000000000000 b59e4ea568df2b447ff8000000000000 nan nan
+r roundsd_001 765d9b3d8cf2e62a7ff8000000000000 bed6402f2b6e86417ff8000000000000 nan nan
+m roundsd_001 27e28a572897658e7ff8000000000000 2ebbabf3470db8787ff8000000000000 nan nan
+r roundsd_010 2ef9b0a22bd197c37ff8000000000000 62988b5f5746fb947ff8000000000000 nan nan
+m roundsd_010 e7f00989302dba727ff8000000000000 b6badcdef8a78c427ff8000000000000 nan nan
+r roundsd_011 ad11927ad336084a7ff8000000000000 876d9bdcc5bca72e7ff8000000000000 nan nan
+m roundsd_011 dea946e0b179bef57ff8000000000000 2ffdc2c55b0f87037ff8000000000000 nan nan
+r roundsd_000 d50420276581181fbff4cccccccccccd 0bb64f05552e696ebff0000000000000 -1.300000 -1.000000
+m roundsd_000 ed6e1ebb8cda5175bff4cccccccccccd 77e43d084fa5891abff0000000000000 -1.300000 -1.000000
+r roundsd_001 84323c09c110a7a3bff4cccccccccccd cfd2893ae6ff22b4c000000000000000 -1.300000 -2.000000
+m roundsd_001 f49e747ba1b05354bff4cccccccccccd 6fce2e08b6c871e8c000000000000000 -1.300000 -2.000000
+r roundsd_010 9bfcc47ec7469435bff4cccccccccccd b32227dc5a8cb261bff0000000000000 -1.300000 -1.000000
+m roundsd_010 d399277fd05ca4f2bff4cccccccccccd f71b72246ed821ccbff0000000000000 -1.300000 -1.000000
+r roundsd_011 fac199e95780c036bff4cccccccccccd 97050b4a8f37f9d4bff0000000000000 -1.300000 -1.000000
+m roundsd_011 6ac01727f93e24adbff4cccccccccccd ef2cecbc58357726bff0000000000000 -1.300000 -1.000000
+r roundsd_000 81e19ba751200b05bff199999999999a 5bdb13e5665fd76ebff0000000000000 -1.100000 -1.000000
+m roundsd_000 997223d4fcb4b3e7bff199999999999a 37607b3155405557bff0000000000000 -1.100000 -1.000000
+r roundsd_001 0fbdaa1a95855502bff199999999999a de05200cbf652c8ec000000000000000 -1.100000 -2.000000
+m roundsd_001 3f0f2ce5b8203000bff199999999999a ae17ffe2435999bec000000000000000 -1.100000 -2.000000
+r roundsd_010 86b5a6a102107e8ebff199999999999a 02e2121f7aa8d894bff0000000000000 -1.100000 -1.000000
+m roundsd_010 3ef813ba0fe17c57bff199999999999a 36b2573003de24bcbff0000000000000 -1.100000 -1.000000
+r roundsd_011 c4276f9d7a206608bff199999999999a a5d2c97f7788bae1bff0000000000000 -1.100000 -1.000000
+m roundsd_011 748db6b4df58784cbff199999999999a ad90647a7432d6afbff0000000000000 -1.100000 -1.000000
+r roundsd_000 aa75e46ddb16edd0bfeccccccccccccd a936258b9666b4d4bff0000000000000 -0.900000 -1.000000
+m roundsd_000 c32cf63309e40240bfeccccccccccccd f411072078b28ffabff0000000000000 -0.900000 -1.000000
+r roundsd_001 19fee7710650f247bfeccccccccccccd ec6d05a4b6a1a4cdbff0000000000000 -0.900000 -1.000000
+m roundsd_001 0937b3956de6fb92bfeccccccccccccd eb961e83edc02ffabff0000000000000 -0.900000 -1.000000
+r roundsd_010 ef23560adb3157ccbfeccccccccccccd 4fd84b29b99a6b2d8000000000000000 -0.900000 -0.000000
+m roundsd_010 270ecc3cebbd43a2bfeccccccccccccd 727e8a02b5bb95118000000000000000 -0.900000 -0.000000
+r roundsd_011 0d4312973a16fac0bfeccccccccccccd b2d6d57a7db0e9538000000000000000 -0.900000 -0.000000
+m roundsd_011 fd0f238763c9b9d1bfeccccccccccccd 692a2afdae04a39e8000000000000000 -0.900000 -0.000000
+r roundsd_000 52bffb790361bc82bfe6666666666666 f4c785f8e443fea0bff0000000000000 -0.700000 -1.000000
+m roundsd_000 6a9d96d7b56b3f7ebfe6666666666666 b0f9e0d5b9fa3702bff0000000000000 -0.700000 -1.000000
+r roundsd_001 a0f5f10f15717d72bfe6666666666666 f70c3901ccb48a72bff0000000000000 -0.700000 -1.000000
+m roundsd_001 5015078bc002b309bfe6666666666666 264b8be9b6fd329cbff0000000000000 -0.700000 -1.000000
+r roundsd_010 d648d4b952a71df1bfe6666666666666 9a04d2f816626c2c8000000000000000 -0.700000 -0.000000
+m roundsd_010 8dd9540466eef7d3bfe6666666666666 ad810a9a856e74cd8000000000000000 -0.700000 -0.000000
+r roundsd_011 d31583d898627c5ebfe6666666666666 bc0f303ba1ad862b8000000000000000 -0.700000 -0.000000
+m roundsd_011 03485ea08590e93cbfe6666666666666 23fa3e4706acddf48000000000000000 -0.700000 -0.000000
+r roundsd_000 78bee0cbc8037a19bfe00014f8b588e3 3e8e322a4ff6b6d1bff0000000000000 -0.500010 -1.000000
+m roundsd_000 90c305c2fe476aa2bfe00014f8b588e3 6917085019174d71bff0000000000000 -0.500010 -1.000000
+r roundsd_001 a6a3c9f2c2e8f683bfe00014f8b588e3 00e0ba25ff9cdd7ebff0000000000000 -0.500010 -1.000000
+m roundsd_001 15a929c7b1735a67bfe00014f8b588e3 5f3646169d10a4a4bff0000000000000 -0.500010 -1.000000
+r roundsd_010 3b2220ae6674d2fbbfe00014f8b588e3 e266a78d90ffdc918000000000000000 -0.500010 -0.000000
+m roundsd_010 725aaa117e7599ebbfe00014f8b588e3 e5bad9f874f6c1ee8000000000000000 -0.500010 -0.000000
+r roundsd_011 189dc35e9404ece2bfe00014f8b588e3 c47fd8c1e480916a8000000000000000 -0.500010 -0.000000
+m roundsd_011 8737670045ac078cbfe00014f8b588e3 db00a0567c2a86af8000000000000000 -0.500010 -0.000000
+r roundsd_000 1c7493622cfa2597bfdfffd60e94ee39 868b2e22d97fdd698000000000000000 -0.499990 -0.000000
+m roundsd_000 349f42f2e67983acbfdfffd60e94ee39 216a7d91960bd1458000000000000000 -0.499990 -0.000000
+r roundsd_001 2906701b0eb55d7abfdfffd60e94ee39 08eb890f505a9fefbff0000000000000 -0.499990 -1.000000
+m roundsd_001 58f31949403befabbfdfffd60e94ee39 96584f08a2f98312bff0000000000000 -0.499990 -1.000000
+r roundsd_010 1eb33ae9199674ecbfdfffd60e94ee39 29fec9e82973b95b8000000000000000 -0.499990 -0.000000
+m roundsd_010 d592cd65355229e8bfdfffd60e94ee39 1c28f51c80557c768000000000000000 -0.499990 -0.000000
+r roundsd_011 dadbd02a2efc4a4cbfdfffd60e94ee39 cb24ce0e442a090e8000000000000000 -0.499990 -0.000000
+m roundsd_011 89dc3ea5a31f12c3bfdfffd60e94ee39 913d502c107e9cd08000000000000000 -0.499990 -0.000000
+r roundsd_000 3edf14402e48bffabfd3333333333333 ccbe78e080dd71678000000000000000 -0.300000 -0.000000
+m roundsd_000 55324c696b018a9dbfd3333333333333 d6f4419831d4c3808000000000000000 -0.300000 -0.000000
+r roundsd_001 2a1fe48bf7d8b257bfd3333333333333 0d2ba7bfbfefcfc7bff0000000000000 -0.300000 -1.000000
+m roundsd_001 19f3d7116d5971d5bfd3333333333333 cbafa6c1c5b8d1e7bff0000000000000 -0.300000 -1.000000
+r roundsd_010 7ef922696a0f05c2bfd3333333333333 6ecc3a09dfbd048c8000000000000000 -0.300000 -0.000000
+m roundsd_010 b57fbffe8986a7cbbfd3333333333333 50cd6006aa89a5648000000000000000 -0.300000 -0.000000
+r roundsd_011 1acfac3d674a969cbfd3333333333333 cfff1221c2a9f0188000000000000000 -0.300000 -0.000000
+m roundsd_011 0937e4909fe80ce0bfd3333333333333 45af4ec7c2a821578000000000000000 -0.300000 -0.000000
+r roundsd_000 de016364cdeb4644bfb999999999999a 10271064461273cb8000000000000000 -0.100000 -0.000000
+m roundsd_000 f57a25258fdf8073bfb999999999999a 8ab45265eb7423218000000000000000 -0.100000 -0.000000
+r roundsd_001 aaee27407e51f51abfb999999999999a 10a112344c596d04bff0000000000000 -0.100000 -1.000000
+m roundsd_001 59a8632038cce2e4bfb999999999999a ff3c4b3f064d8c21bff0000000000000 -0.100000 -1.000000
+r roundsd_010 5df6d73059dd837ebfb999999999999a b1cff9f1b4ddbe238000000000000000 -0.100000 -0.000000
+m roundsd_010 14227fde7c0f1494bfb999999999999a 83a818b6f3943cb78000000000000000 -0.100000 -0.000000
+r roundsd_011 d97955953deed0d2bfb999999999999a d111a5f95efe45898000000000000000 -0.100000 -0.000000
+m roundsd_011 084857c13907f4e2bfb999999999999a f7579b2891a813448000000000000000 -0.100000 -0.000000
+r roundsd_000 fcd880ce0be4bb733fb999999999999a 51c6f6af2a1de3950000000000000000 0.100000 0.000000
+m roundsd_000 1378cc285014632f3fb999999999999a 3ca9b2f8c2eaf1270000000000000000 0.100000 0.000000
+r roundsd_001 a773373ba32026c33fb999999999999a 124ecb70f79979a70000000000000000 0.100000 0.000000
+m roundsd_001 1614be74a19641da3fb999999999999a 30ff3e8365b8b6c10000000000000000 0.100000 0.000000
+r roundsd_010 baa85b3de501ef213fb999999999999a f209069ea7d3e5203ff0000000000000 0.100000 1.000000
+m roundsd_010 f17c0c040cee6e433fb999999999999a b4b81f2b597541713ff0000000000000 0.100000 1.000000
+r roundsd_011 15dacc33b1e8f8ee3fb999999999999a d2588598182a085f0000000000000000 0.100000 0.000000
+m roundsd_011 840e9838717bc9cb3fb999999999999a a73535507f7e74970000000000000000 0.100000 0.000000
+r roundsd_000 98666b7ee7341f883fd3333333333333 919b29bf2bfec2c50000000000000000 0.300000 0.000000
+m roundsd_000 ae2d4071b09e34d13fd3333333333333 ebd55f51b7352d940000000000000000 0.300000 0.000000
+r roundsd_001 23ae157d674545523fd3333333333333 1130d272c0b0f3b10000000000000000 0.300000 0.000000
+m roundsd_001 5136e60ea8b68eb63fd3333333333333 5ff87f8ee1fa4dc70000000000000000 0.300000 0.000000
+r roundsd_010 9511ad90107c4aa93fd3333333333333 30796011b79f7a833ff0000000000000 0.300000 1.000000
+m roundsd_010 4c8b686f3a23b6d93fd3333333333333 e2ff7367dd2bb5903ff0000000000000 0.300000 1.000000
+r roundsd_011 d0f01218c3380ef03fd3333333333333 d0d6b3fdf02b399c0000000000000000 0.300000 0.000000
+m roundsd_011 7e8ba7f547468d9a3fd3333333333333 56491d3d8b2a43500000000000000000 0.300000 0.000000
+r roundsd_000 b2aa237461d970843fdfffd60e94ee39 cfa6ab954bb50e5b0000000000000000 0.499990 0.000000
+m roundsd_000 c89783ffad7ef35a3fdfffd60e94ee39 99375b70cb57d7660000000000000000 0.499990 0.000000
+r roundsd_001 1c9fc204c8c052c73fdfffd60e94ee39 0e492839a79cda200000000000000000 0.499990 0.000000
+m roundsd_001 0a0edcee4d2cc8783fdfffd60e94ee39 8c280e5e7c1153330000000000000000 0.499990 0.000000
+r roundsd_010 ee30cd29d94c92183fdfffd60e94ee39 6d1f094ae6417d4c3ff0000000000000 0.499990 1.000000
+m roundsd_010 2450922107afec543fdfffd60e94ee39 0f7c166980b896163ff0000000000000 0.499990 1.000000
+r roundsd_011 08bc254274de12d83fdfffd60e94ee39 cc893028e602d73e0000000000000000 0.499990 0.000000
+m roundsd_011 f6be84f8bb673f4f3fdfffd60e94ee39 029353f1b5ac7f6f0000000000000000 0.499990 0.000000
+r roundsd_000 4aa3aaaf78d5b0653fe00014f8b588e3 0be77b318842c8563ff0000000000000 0.500010 1.000000
+m roundsd_000 60b794d448b4a0c83fe00014f8b588e3 44cea455fc4eef9f3ff0000000000000 0.500010 1.000000
+r roundsd_001 94463cd1c7914d223fe00014f8b588e3 0a97cbc7ac5e30f50000000000000000 0.500010 0.000000
+m roundsd_001 419ca01490f7f11f3fe00014f8b588e3 b78debf535fec7050000000000000000 0.500010 0.000000
+r roundsd_010 c504bb084073c96c3fe00014f8b588e3 a8fb004a32b8ef7b3ff0000000000000 0.500010 1.000000
+m roundsd_010 7bcc8918719010b53fe00014f8b588e3 392f0631401ae5023ff0000000000000 0.500010 1.000000
+r roundsd_011 bf3e07b2c2da04a63fe00014f8b588e3 c773fa18fab0e4460000000000000000 0.500010 0.000000
+m roundsd_011 eca72f41cddddee93fe00014f8b588e3 ac14d76afd052af40000000000000000 0.500010 0.000000
+r roundsd_000 6053ff312e26dd2d3fe6666666666666 455d9993e4a5f1b83ff0000000000000 0.700000 1.000000
+m roundsd_000 768d72ee82413c1c3fe6666666666666 ee9c3c004c1c753e3ff0000000000000 0.700000 1.000000
+r roundsd_001 89a385e564b836633fe6666666666666 031cbc1bd0f7f4310000000000000000 0.700000 0.000000
+m roundsd_001 f7df3280711908ad3fe6666666666666 e02816510cc1a83d0000000000000000 0.700000 0.000000
+r roundsd_010 1a8f772c44efeda73fe6666666666666 e10d450f9d06ce0f3ff0000000000000 0.700000 1.000000
+m roundsd_010 50fd4f567ac722fc3fe6666666666666 621745bf1e53a2533ff0000000000000 0.700000 1.000000
+r roundsd_011 f376b669ae2ce35a3fe6666666666666 bf9212cf2c335fb50000000000000000 0.700000 0.000000
+m roundsd_011 6146a9d07daa6c6a3fe6666666666666 54caa9aa633342e00000000000000000 0.700000 0.000000
+r roundsd_000 f4b822f982cef9da3feccccccccccccd 7d0a04bc5edd87803ff0000000000000 0.900000 1.000000
+m roundsd_000 091a1f4f5923c5563feccccccccccccd 95a02171b9c06a423ff0000000000000 0.900000 1.000000
+r roundsd_001 fdb69b3e9f350d8a3feccccccccccccd fad6fc35116526d20000000000000000 0.900000 0.000000
+m roundsd_001 2ad99232f0910c213feccccccccccccd 07f98f74015af8db0000000000000000 0.900000 0.000000
+r roundsd_010 edcf0197e7c200c73feccccccccccccd 1855d89a262a1b0a3ff0000000000000 0.900000 1.000000
+m roundsd_010 a2e4e3d92054232a3feccccccccccccd 8836d1131b62cd0b3ff0000000000000 0.900000 1.000000
+r roundsd_011 a664346538d4b1f33feccccccccccccd b5e8784c7c8c48890000000000000000 0.900000 0.000000
+m roundsd_011 539af0a5cbcde8d13feccccccccccccd fab6c9afe737c9310000000000000000 0.900000 0.000000
+r roundsd_000 06d4130774cb026e3ff199999999999a b2edbeaaf5ec8bae3ff0000000000000 1.100000 1.000000
+m roundsd_000 1b5c9af6cf5b3c773ff199999999999a 3bda55a84439ccad3ff0000000000000 1.100000 1.000000
+r roundsd_001 ee7f7fdd7908d2973ff199999999999a f0c7891470a9c6d93ff0000000000000 1.100000 1.000000
+m roundsd_001 db89c02a0d5fff7b3ff199999999999a 2c00565c14c9b5e03ff0000000000000 1.100000 1.000000
+r roundsd_010 3ec6594828ea00ce3ff199999999999a 4dd3b8ebcc24d76b4000000000000000 1.100000 2.000000
+m roundsd_010 738244a36537113d3ff199999999999a ad8bac2d354666294000000000000000 1.100000 2.000000
+r roundsd_011 d6087fa761d26d733ff199999999999a a9732d8eebbc9fc33ff0000000000000 1.100000 1.000000
+m roundsd_011 c3a505c0b746521e3ff199999999999a 9ed8377b8811bde83ff0000000000000 1.100000 1.000000
+r roundsd_000 96a5d25b031ff9e73ff4cccccccccccd e606c65eabd1fe423ff0000000000000 1.300000 1.000000
+m roundsd_000 ab54e2e2e2e9a17d3ff4cccccccccccd df49d6a4ee899c7e3ff0000000000000 1.300000 1.000000
+r roundsd_001 5efe32c3f031858a3ff4cccccccccccd e3ed64baedc4d3473ff0000000000000 1.300000 1.000000
+m roundsd_001 0aefbd68c882e0ba3ff4cccccccccccd 4f3e6b0b450ee14a3ff0000000000000 1.300000 1.000000
+r roundsd_010 0d727f3f0669eeba3ff4cccccccccccd 7f87e70291f400324000000000000000 1.300000 2.000000
+m roundsd_010 c2d574b34771ed363ff4cccccccccccd d015d40d6e016dac4000000000000000 1.300000 2.000000
+r roundsd_011 84629830272617d93ff4cccccccccccd 9c342f9777c164643ff0000000000000 1.300000 1.000000
+m roundsd_011 b166e8214114a9503ff4cccccccccccd 4030f30c48c120053ff0000000000000 1.300000 1.000000
+r roundss_000 a42d5ff531c8df470f89573700000000 18551cd87e8cde3ca5964fc700000000 0.000000 0.000000
+m roundss_000 b803f91594cef4691ed025b600000000 80efa667b5aedab48540169000000000 0.000000 0.000000
+r roundss_001 4b33b2ee05b02563c54f424300000000 d4498d2688b44f1aa9c7aa1c00000000 0.000000 0.000000
+m roundss_001 b70b87ec21fcaee0ded12dca00000000 70b1ce7f93297a1aeff8895900000000 0.000000 0.000000
+r roundss_010 5ad5737c833dcb8d47245f3700000000 b07164e0739a975f319f2e3100000000 0.000000 0.000000
+m roundss_010 8ede7208c800b715da12557600000000 f0d64bb3c491e2964c87159200000000 0.000000 0.000000
+r roundss_011 b17280fe8bd0af2574688c7300000000 8c2c7f66219d966a1d7eba6700000000 0.000000 0.000000
+m roundss_011 1ddd99c96939ef69f2f27f1a00000000 e0bffd642647f0887e4e9a9b00000000 0.000000 0.000000
+r roundss_000 306bbad4fdc8b28c2e7caa5880000000 48dac018701d2c9c4cc5301c80000000 -0.000000 -0.000000
+m roundss_000 4467de8de308363b05d28a1780000000 20cbc3f09aaa865164adf8d580000000 -0.000000 -0.000000
+r roundss_001 b61e015fb885b42253bf994580000000 c4dc0557417a3954a0d36eb380000000 -0.000000 -0.000000
+m roundss_001 e3dd1fb618cc6becf41055cc80000000 8f5a7fba001a8250dd020fa080000000 -0.000000 -0.000000
+r roundss_010 25ee34ff9e689545c592399a80000000 df912f8374159df2f708558980000000 -0.000000 -0.000000
+m roundss_010 d99d3da4e6e56fdba00fc29a80000000 0fcd0f1f38f8c5e5caafbe5b80000000 -0.000000 -0.000000
+r roundss_011 5b3835128dd0355762546ab880000000 7a591efbe94e37d632c5c50080000000 -0.000000 -0.000000
+m roundss_011 080a18b62fb42368e72cafe080000000 7e83558122a32f710b14e76680000000 -0.000000 -0.000000
+r roundss_000 3a5ee3fa671d74b80b650cfe7f800000 7695b11f8084e96131699e777f800000 inf inf
+m roundss_000 4e81904cd19865f4aac9fdff7f800000 bddc2f3f9e7ca053809068217f800000 inf inf
+r roundss_001 a0bf1d170ab031c7a026fecd7f800000 b1a4ca4f181791f3d454c04f7f800000 inf inf
+m roundss_001 8c6485c6adf116dec9468c557f800000 ac397eba8be1f8ec098322ed7f800000 inf inf
+r roundss_010 6ebcc4c757e84ee401f622847f800000 0ce747ec936710ebfbe70be77f800000 inf inf
+m roundss_010 a213d785a320168623013c457f800000 2bf92251cb35169b864df5297f800000 inf inf
+r roundss_011 84b4b96d2e26a96f0d3556837f800000 67bd0a55cfd546a986815ea07f800000 inf inf
+m roundss_011 70ed65e99385444d9a5ced2c7f800000 1a7dfb643cd5dcc0d64fc1367f800000 inf inf
+r roundss_000 c208da666ec923c9a6447b2bff800000 a286f1ebadc1138d54839bd8ff800000 -inf -inf
+m roundss_000 d55211505c7e82920db77e6cff800000 5924e954bf2328bcdbe96673ff800000 -inf -inf
+r roundss_001 07170714f9319c52aa8271dbff800000 9ca3dd0d0d8957f8464ca0f2ff800000 -inf -inf
+m roundss_001 b3a2b91de06daeb55b71d164ff800000 c74ecb80347fdbee7379c440ff800000 -inf -inf
+r roundss_010 354122d6adbff468fb4f18f4ff800000 3773ae1bcf8ff14a3d3c4e4bff800000 -inf -inf
+m roundss_010 e93e3eadfdb2aa1765eac475ff800000 465c83497b47d5b77f61bafeff800000 -inf -inf
+r roundss_011 2ae60a0d6cd20b6d770c50d4ff800000 51564476d333c3e117b48545ff800000 -inf -inf
+m roundss_011 5685816295ab54170b8338feff800000 b4adef0e74ddf675df012a0cff800000 -inf -inf
+r roundss_000 c8679e1814cac1c1ff19f9deffc00000 cbad7f7df9d3ab1fb513253fffc00000 -nan -nan
+m roundss_000 dbd8609b86ba8d162d9b0d5fffc00000 f2a2f02ffea11e8b73b8f2cbffc00000 -nan -nan
+r roundss_001 ed24c0578608f5c373d4f26fffc00000 86d73e9120d28a64f7ba0e9affc00000 -nan -nan
+m roundss_001 5896bbb9b13f3573ab9223f9ffc00000 e19a660dfbf22d561be6f39affc00000 -nan -nan
+r roundss_010 7a7b4e2ba2eb89d3b39f1de9ffc00000 603563102a8d410ebd081fb5ffc00000 -nan -nan
+m roundss_010 ad1f741bf6992c8e65c95a2bffc00000 5ff5310749300238b7eb0dd9ffc00000 -nan -nan
+r roundss_011 4fce29f348d45b519eda58acffc00000 3926cc5df566ae80e65d3af1ffc00000 -nan -nan
+m roundss_011 bad46a21352852c83b9f9256ffc00000 4c13317dcabb7f91272820e9ffc00000 -nan -nan
+r roundss_000 4c7d311058224c9e16e484167fc00000 f30a5bd562bcb117541a3dac7fc00000 nan nan
+m roundss_000 5f147c2c4d4d86800c74abd97fc00000 8a5546d05cf482bf4afd0c297fc00000 nan nan
+r roundss_001 50e746e1b1353c1af91d81897fc00000 6d42eeda52f02c35e59e09497fc00000 nan nan
+m roundss_001 7b408c9b2067aa17b9a984147fc00000 f81b4f5fe03bec2401c8b1f97fc00000 nan nan
+r roundss_010 3d6c48c6356e0b2329e52f657fc00000 862d66cca261fe397b497f257fc00000 nan nan
+m roundss_010 f0b778ce8cd69cec239dff687fc00000 75c32e8b36ee9d202debefba7fc00000 nan nan
+r roundss_011 f16c1720c22c991b849d6e097fc00000 202ba309356f0684f47c7da27fc00000 nan nan
+m roundss_011 9cd9212673fb3d5f28b1fa347fc00000 e2b0c1b33d707512acc6a5cb7fc00000 nan nan
+r roundss_000 4d48924e39cfc662eba41ed5bfa66666 199d84f3ea7b26753196e420bf800000 -1.300000 -1.000000
+m roundss_000 61076702b3356dd0a94456d8bfa66666 203fe937d71e545a5fb8b48cbf800000 -1.300000 -1.000000
+r roundss_001 32609bb07bb871573e5b1e29bfa66666 52e2ebeaa1e43c6c12f793fdc0000000 -1.300000 -2.000000
+m roundss_001 1da02ac32de40ca086b6f3b5bfa66666 0dd28678e35a1a582621fd5ec0000000 -1.300000 -2.000000
+r roundss_010 7e1210a766467c5a5d215066bfa66666 ab5bb74d390b29ca76006c9bbf800000 -1.300000 -1.000000
+m roundss_010 b10449c8c169fa2f9e68b12abfa66666 8ac878d54083a66de0615ea0bf800000 -1.300000 -1.000000
+r roundss_011 12c1d292dadac5cb275692ecbfa66666 0467c77c934fcdee3f104d5abf800000 -1.300000 -1.000000
+m roundss_011 fd94a6714f2317dcd3b96f98bfa66666 76829faecffadaf96fd9b8b3bf800000 -1.300000 -1.000000
+r roundss_000 cdcac1d1b9d32d0b7e5bc51abf8ccccd 3d66fcd8901008394c881899bf800000 -1.100000 -1.000000
+m roundss_000 e0af201fb673430704090f5ebf8ccccd b35fdb64701e945ab1e9eaf6bf800000 -1.100000 -1.000000
+r roundss_001 918fbdc5e291947a408fc950bf8ccccd 36b936c00eafba0a7cc7abb8c0000000 -1.100000 -2.000000
+m roundss_001 3cb59631d8b85d1010b970dcbf8ccccd 20bf0b56034fb5f388efd6c9c0000000 -1.100000 -2.000000
+r roundss_010 3d6fa6ce3475da764f537eeebf8ccccd cebf5594ee8bc3c1b02de717bf800000 -1.100000 -1.000000
+m roundss_010 ef07e90793524658d8287172bf8ccccd 9c0311e568ee1d21d24d5b8dbf800000 -1.100000 -1.000000
+r roundss_011 b0cb5c4a91dedf618906c455bf8ccccd e6d839b5100402bfc81bac17bf800000 -1.100000 -1.000000
+m roundss_011 db05f902c9a2df3e3cb7f382bf8ccccd 098acb707f5aac46706358a1bf800000 -1.100000 -1.000000
+r roundss_000 cb02be9bd72c829bcf087be4bf666666 5f65c282537b5863a5f0da18bf800000 -0.900000 -1.000000
+m roundss_000 de0da681580706231cc5d669bf666666 45b41a5728f342c14290ae66bf800000 -0.900000 -1.000000
+r roundss_001 6f74ad21e7c0a58301ba82fcbf666666 17c5d05b994fa60d240d5178bf800000 -0.900000 -1.000000
+m roundss_001 d981d0e521e29c6658b2fa89bf666666 31e2defb421abff328343e3bbf800000 -0.900000 -1.000000
+r roundss_010 7a820a3aa1f92679ff7bbbfcbf666666 ef5942a1c0e0ca1e28d1f19980000000 -0.900000 -0.000000
+m roundss_010 acc1578d04928167d0df3f41bf666666 ad74f7bbaf2e023b02afe68080000000 -0.900000 -0.000000
+r roundss_011 cd8bb349e538e7dda8ab0444bf666666 c77ffab3aa8fa5f5909c99db80000000 -0.900000 -0.000000
+m roundss_011 372b1ad9e177948764ab85f1bf666666 99c845f74d90edf9af62879680000000 -0.900000 -0.000000
+r roundss_000 47ef89ab93dcc610deab3e35bf333333 7f9ad6f235bc17f33bcf2b9dbf800000 -0.700000 -1.000000
+m roundss_000 5a22fb2a97f2b725f377acfabf333333 d440a810fd9f5e8e11ad01dcbf800000 -0.700000 -1.000000
+r roundss_001 ca0f6cc28a45a4727fda492ebf333333 f607b7bd42c5ff760bc9853fbf800000 -0.700000 -1.000000
+m roundss_001 f403d8df0862c9a25fa293bcbf333333 403cff659fbb365906ee33b2bf800000 -0.700000 -1.000000
+r roundss_010 354a3cedacd461616d99058fbf333333 0e287d74b10c3fe1deea882180000000 -0.700000 -0.000000
+m roundss_010 e73092581227a95d868c1b95bf333333 bb1a2c57134556ba6f87ff7980000000 -0.700000 -0.000000
+r roundss_011 6701d88dd7e8dd3f864752b9bf333333 a55d087862f1b691959314a480000000 -0.700000 -0.000000
+m roundss_011 11080af697a238b6499525e7bf333333 273c0d45399c9b122cd8439080000000 -0.700000 -0.000000
+r roundss_000 41932201ece1f76cab44100bbf0000a8 9c05382834d243e810230928bf800000 -0.500010 -1.000000
+m roundss_000 53ec1d197532560d881e8f12bf0000a8 6202838ff120e8c01d40e157bf800000 -0.500010 -1.000000
+r roundss_001 a360f8a9cb209147bcf11ee6bf0000a8 d380ece50912c7462ffa470bbf800000 -0.500010 -1.000000
+m roundss_001 8e3bae1f8d37e3c323873a75bf0000a8 4dcb6e961a321c25221fb72fbf800000 -0.500010 -1.000000
+r roundss_010 6ec93ce65404893099ad5ea9bf0000a8 2b2e060ec00e220ad279adaf80000000 -0.500010 -0.000000
+m roundss_010 9f559c6abf12bf38fa2e0670bf0000a8 c8f7aeb9953117a01bd5a67880000000 -0.500010 -0.000000
+r roundss_011 7f2dcc1767eec18721d8aeb4bf0000a8 8170640338283494d9001d7480000000 -0.500010 -0.000000
+m roundss_011 699bc759eb22cacbec75d263bf0000a8 b3e72358437eb891e7c38e9080000000 -0.500010 -0.000000
+r roundss_000 b9ec899de43c17ad36d3ef68befffeb0 b8a6e72552bfdd4423ed75b980000000 -0.499990 -0.000000
+m roundss_000 cb6c0e4df0c8e3dcdbbc80afbefffeb0 eefaadd40278e05968494fd980000000 -0.499990 -0.000000
+r roundss_001 fb6753d7ab516c02b6fd0124befffeb0 af2e6fd3ee34fd7b92a297debf800000 -0.499990 -1.000000
+m roundss_001 a52952a5b063eccba562eeb3befffeb0 58902b8cb37f70577cc5c8b3bf800000 -0.499990 -1.000000
+r roundss_010 24fd09259b8aa0e483b6c449befffeb0 456adc6dece67498047f614380000000 -0.499990 -0.000000
+m roundss_010 d63174c20953c3f92bc7fed0befffeb0 d30a7fe136f446eb0499db7c80000000 -0.499990 -0.000000
+r roundss_011 160f8de8964a92b57b5f1836befffeb0 5cba0e542c3521fc5ae2b44980000000 -0.499990 -0.000000
+m roundss_011 40e45202dcf949c54d4c8e65befffeb0 3dc787326b364376e125679680000000 -0.499990 -0.000000
+r roundss_000 affcbe7f7aee24d57f58dd4bbe99999a d27de5e78e82e606742d705080000000 -0.300000 -0.000000
+m roundss_000 c1a3cdc80ab45f90eb507fd3be99999a 772724df31a64658f1c84b6180000000 -0.300000 -0.000000
+r roundss_001 d0247b4a28d835a36ffff2e8be99999a 88134186f12ca11732c074b6bf800000 -0.300000 -1.000000
+m roundss_001 3acdc57171e5e3b9e533b178be99999a 618b36496aa231ef14e2683cbf800000 -0.300000 -1.000000
+r roundss_010 59e8a5aa8067a47f2bb6396ebe99999a 5edc01923794338d74faa2dd80000000 -0.300000 -0.000000
+m roundss_010 8bc2195ff2ebb5a01b5604b6be99999a db529dcff48de39d2cd39e8780000000 -0.300000 -0.000000
+r roundss_011 2aa71dfe62fc52c992dd903dbe99999a 3439076a3e197cca193bd92580000000 -0.300000 -0.000000
+m roundss_011 94e3abf26c26b7a66d1858edbe99999a c5dd39d1b0c43bc118fccda380000000 -0.300000 -0.000000
+r roundss_000 23c1c1a6aef520e286d3d8b3bdcccccd ea8a316fe71b5c2e03e4f8ed80000000 -0.100000 -0.000000
+m roundss_000 348f5988c1f6c82abad98c7cbdcccccd ff8beab07fa91abcb7bdd5ef80000000 -0.100000 -0.000000
+r roundss_001 2497720343b5ec2ae5f8f133bdcccccd 5f2d600012fbb3181054e095bf800000 -0.100000 -1.000000
+m roundss_001 4d260583d0bcc78de4fa82c3bdcccccd 68bc8fcb3f9c61edeb7496cbbf800000 -0.100000 -1.000000
+r roundss_010 0c880f75039997ff91acbb1abdcccccd 7584747d9f1860e822eb717d80000000 -0.100000 -0.000000
+m roundss_010 be098d4378d8962ec9da1823bdcccccd e2d10a83d1fbeeb59283ef9880000000 -0.100000 -0.000000
+r roundss_011 bdf57a5acc0300c3685016cabdcccccd 0aef4d476ed245ff170a8b0680000000 -0.100000 -0.000000
+m roundss_011 6698d2279aa9136d4ada30fbbdcccccd 4b2939371428a2738d4ac2b580000000 -0.100000 -0.000000
+r roundss_000 153d92147f5309d64b43e1a23dcccccd 00cccbbd5f8a40bcd0100e9000000000 0.100000 0.000000
+m roundss_000 2631b48f178f1faa4759a8ab3dcccccd 8425fd47ea835d87bc28ed8200000000 0.100000 0.000000
+r roundss_001 f5c03603fce891971ae6fe033dcccccd 357ecd40529f337f2d5dda7900000000 0.100000 0.000000
+m roundss_001 de3613dbcdea9a46a0b761943dcccccd 6d233614316bfe51ff7d516000000000 0.100000 0.000000
+r roundss_010 3ddf478523227766b5984b4c3dcccccd 8a62352f2672fca90e52cf233f800000 0.100000 1.000000
+m roundss_010 6e07cf6c9d1b64a135553a153dcccccd e686c4fdcb40673235a9ceaf3f800000 0.100000 1.000000
+r roundss_011 cdf9a5fdd4619ca3fbbaaadd3dcccccd dfdae1eabc617c99524fccee00000000 0.100000 0.000000
+m roundss_011 b602c7a266815d1ae592158f3dcccccd cfab87629662768a400d44cd00000000 0.100000 0.000000
+r roundss_000 856f30c8ef06e0afceaaf9173e99999a 1345b2d1f5cf93b0dbb2b33900000000 0.300000 0.000000
+m roundss_000 968adddb0a7d641192ced1613e99999a 08f45fa473320db7fe09931c00000000 0.300000 0.000000
+r roundss_001 459fc848547124ea0cca19593e99999a 08048945af19204d87dd626400000000 0.300000 0.000000
+m roundss_001 eefcef7a686e5be61a6a4deb3e99999a 70c12b2242100a1b51fb9bfc00000000 0.300000 0.000000
+r roundss_010 ecec4ddce20045b2977aea033e99999a 9d7644a6cba105d03730bacf3f800000 0.300000 1.000000
+m roundss_010 9dbadedc5fb420fa5ec66b8e3e99999a e970cd3de35a4e1617453bcb3f800000 0.300000 1.000000
+r roundss_011 5cb39fe57b1526694d194c763e99999a b1fcc35228c7219acc099bdb00000000 0.300000 0.000000
+m roundss_011 84238a63d0b094ac3e4009a93e99999a 516423533673b907314755ec00000000 0.300000 0.000000
+r roundss_000 73569dc2fd10a66f0f071e113efffeb0 25f4e8aca8ea530a24cae5e800000000 0.499990 0.000000
+m roundss_000 8498d36e9cc1975d9a3a089c3efffeb0 89fa0ec71bb82b4e7f60c7bc00000000 0.499990 0.000000
+r roundss_001 123429d34950a423bda542353efffeb0 d9c192112a6a7c8020d3785400000000 0.499990 0.000000
+m roundss_001 7b78995ea148096c521348c83efffeb0 71946ef6718b834ce1f0729d00000000 0.499990 0.000000
+r roundss_010 19ae21793f3502e5375296413efffeb0 adc0a0e38da77c5d9f8333813f800000 0.499990 1.000000
+m roundss_010 4a23bc92c0a3ca39462ca98c3efffeb0 e99123421a4ba360375837ee3f800000 0.499990 1.000000
+r roundss_011 68236613bf1f9e155c6efc953efffeb0 8153f481b3023300833af8cf00000000 0.499990 0.000000
+m roundss_011 d1fa1c6ad835ba2556e40b493efffeb0 d1520d0bf45969ea60f6f31000000000 0.499990 0.000000
+r roundss_000 dff4d802a96f59140e5a52923f0000a8 35d96c4c7ada81c9ab59a59d3f800000 0.500010 1.000000
+m roundss_000 ef5c9847cb5bb98f619c4d5e3f0000a8 09360cb0e014b74b3e2d89623f800000 0.500010 1.000000
+r roundss_001 5e7f57a5dc8513422b7579973f0000a8 a9b3e9a3c3904619f63f1c4b00000000 0.500010 0.000000
+m roundss_001 86aa11887877a6d849b3512b3f0000a8 719d0091bedc6be2af5ad84400000000 0.500010 0.000000
+r roundss_010 c427c35c3abfacfd952051053f0000a8 bc404be66e836250454c3b393f800000 0.500010 1.000000
+m roundss_010 7443688dbee9625eec89f5103f0000a8 e8e8c80e6e12660f94e0c0173f800000 0.500010 1.000000
+r roundss_011 f349fc88a17f04a72ababa3a3f0000a8 50e072765b13b4cc78e1e3c800000000 0.500010 0.000000
+m roundss_011 9b877bb77e0fce842b7e1a6e3f0000a8 4f764588d0158833cd1c203a00000000 0.500010 0.000000
+r roundss_000 c947e188f225fba0cba393993f333333 43f43eb269a11eef6f5df4583f800000 0.700000 1.000000
+m roundss_000 d9d62b65994cc8a7e6f3a0a53f333333 87a7575fc345b1ad3a70d90e3f800000 0.700000 1.000000
+r roundss_001 278154bc0d107047583cbe7f3f333333 76db8efa7a8c7e190a204d4700000000 0.700000 0.000000
+m roundss_001 0f9158f8edfd3129fd4867143f333333 6edcdff12903c0debb3bccf100000000 0.700000 0.000000
+r roundss_010 ed553385d2a045fcb1e4194e3f333333 c9f644af6c35b5a9298bd0f83f800000 0.700000 1.000000
+m roundss_010 1d18e1cf5b84e96a50db4f1b3f333333 e575baa0e0ae972530ded7463f800000 0.700000 1.000000
+r roundss_011 fb255f422135581fb5fb86663f333333 1ca43e3121fba3ffacfe5cc800000000 0.700000 0.000000
+m roundss_011 e3caa84ac240cfc8be0f381a3f333333 cbd0cbcccaa715e279b7db6a00000000 0.700000 0.000000
+r roundss_000 3151b853da308a1146e2e3253f666666 4f455ede773e287b72d7d0193f800000 0.900000 1.000000
+m roundss_000 41078bca0492c5a6294102723f666666 024ff1d4c54d19767529b7bf3f800000 0.900000 1.000000
+r roundss_001 6f381e19ddf1bb3242f811ed3f666666 413a82184f5f247e5d780d4a00000000 0.900000 0.000000
+m roundss_001 162f6cae00d9a9616fd38c833f666666 69510c18b200844005914da500000000 0.900000 0.000000
+r roundss_010 943a71f409d6cbe08b9ef01e3f666666 d4e28b3f89bd76674b41f3bc3f800000 0.900000 1.000000
+m roundss_010 44a3295695755d5b7124b8ab3f666666 df37fbf8712136a00a527c7a3f800000 0.900000 1.000000
+r roundss_011 81b790423f419a7dff3260173f666666 e69d59b105b800971d9062cd00000000 0.900000 0.000000
+m roundss_011 a9c2a323a4c7bff31095644c3f666666 45609fd5e10f0ff762c923a100000000 0.900000 0.000000
+r roundss_000 17105d65609208697f1740383f8ccccd 59cccbd0a3b1a06db3c73ae03f800000 1.100000 1.000000
+m roundss_000 26edba740e2eb08a2a8571c63f8ccccd 7c2dd90fe42aefa4ee5824773f800000 1.100000 1.000000
+r roundss_001 34a5b6bd4a28f403ebaa72e23f8ccccd 0bcec3fc42073749ed465b523f800000 1.100000 1.000000
+m roundss_001 9c834eaab10a107f9f54bf773f8ccccd 62fd870459d3b6088d5e5d5e3f800000 1.100000 1.000000
+r roundss_010 b9d47da8de6340ab234dd4743f8ccccd dd041f94c41ba68cab6ca58640000000 1.100000 2.000000
+m roundss_010 e9e53f246ebcbf3251632ec23f8ccccd d8308a161f694382213cafb540000000 1.100000 2.000000
+r roundss_011 86ff9089fca3cac10660484e3f8ccccd afcdc1f8074ccb95cd99f7d93f800000 1.100000 1.000000
+m roundss_011 ed716c4224a49d041f119e043f8ccccd be27c1a5174d78728950fadd3f800000 1.100000 1.000000
+r roundss_000 7b86d0bd834973a67642acd13fa66666 60898789ecfa86c5322e33ad3f800000 1.300000 1.000000
+m roundss_000 8a89b765b5208954e8beee9f3fa66666 f3400e1021de3339a4fd1e353f800000 1.300000 1.000000
+r roundss_001 77c81da655b51bba5253e15c3fa66666 d29952a65385b97bbb8a37613f800000 1.300000 1.000000
+m roundss_001 9f8dfeec009265838ecb00f23fa66666 59de50b71e7c553654a0fa1d3f800000 1.300000 1.000000
+r roundss_010 5c2557a35145a25b79f3c74f3fa66666 e45c02af1c4e4317490de45640000000 1.300000 2.000000
+m roundss_010 0bdc2237e45a0fefef97b25e3fa66666 ce5f66faeb88beca779c70f640000000 1.300000 2.000000
+r roundss_011 08fe5d15565be8ebcc833e0b3fa66666 7532770527b503faba181aeb3f800000 1.300000 1.000000
+m roundss_011 b0d603a742d668fbec83e5423fa66666 3423313a6b614e53ee4e5e1f3f800000 1.300000 1.000000
+r (rm=0) roundsd_1XX 5db2115b4557cdca0000000000000000 667c91075419db830000000000000000 0.000000 0.000000
+m (rm=0) roundsd_1XX 6cdc819cfa6850040000000000000000 698a92d77d68e5340000000000000000 0.000000 0.000000
+r (rm=1) roundsd_1XX 39a151d5fe9830570000000000000000 9799301582daa9120000000000000000 0.000000 0.000000
+m (rm=1) roundsd_1XX 204d7c74ed70a76c0000000000000000 4ef5672f00fb63ca0000000000000000 0.000000 0.000000
+r (rm=2) roundsd_1XX 7d2cfee4617ef2f20000000000000000 e8ea339093584e080000000000000000 0.000000 0.000000
+m (rm=2) roundsd_1XX ac89d491f84d4d930000000000000000 c3c391a4d67da7770000000000000000 0.000000 0.000000
+r (rm=3) roundsd_1XX 09b2f9e74e69f4fb0000000000000000 39ce7bd765f4aac40000000000000000 0.000000 0.000000
+m (rm=3) roundsd_1XX f0f16952fe5f22d70000000000000000 a855ef96dd4b939b0000000000000000 0.000000 0.000000
+r (rm=0) roundsd_1XX bd93203fa5ba14d38000000000000000 6aa5e94bd90e9da78000000000000000 -0.000000 -0.000000
+m (rm=0) roundsd_1XX cce41a18de07069b8000000000000000 dc0a6363f6c705948000000000000000 -0.000000 -0.000000
+r (rm=1) roundsd_1XX 7830544b46d033d98000000000000000 5bd05b4bcf0407108000000000000000 -0.000000 -0.000000
+m (rm=1) roundsd_1XX 1fc3c84278a4d83c8000000000000000 4142cc6e0151dec48000000000000000 -0.000000 -0.000000
+r (rm=2) roundsd_1XX 1ce8746b100c316e8000000000000000 ebaeb2372738c75f8000000000000000 -0.000000 -0.000000
+m (rm=2) roundsd_1XX cbec5431ab96791c8000000000000000 b55e0914de47fe8b8000000000000000 -0.000000 -0.000000
+r (rm=3) roundsd_1XX 871c6200e4cdeef18000000000000000 fc9fce70c10abff58000000000000000 -0.000000 -0.000000
+m (rm=3) roundsd_1XX aec29c43583eca9a8000000000000000 1abdfbb76d0b45488000000000000000 -0.000000 -0.000000
+r (rm=0) roundsd_1XX 9b2bfd69a37449c37ff0000000000000 6c048e557dd8cd317ff0000000000000 inf inf
+m (rm=0) roundsd_1XX a9a281db5ffba9177ff0000000000000 4ec083b68efd935b7ff0000000000000 inf inf
+r (rm=1) roundsd_1XX 367524062b5f24427ff0000000000000 1c3cd4473b05d3737ff0000000000000 inf inf
+m (rm=1) roundsd_1XX 9ceee356a12df7f27ff0000000000000 32c57f72207cc8257ff0000000000000 inf inf
+r (rm=2) roundsd_1XX 395bb8385df15dd17ff0000000000000 eca87fa5daeeaf1c7ff0000000000000 inf inf
+m (rm=2) roundsd_1XX 6706a116fb35948b7ff0000000000000 a62fd04a04e8c3047ff0000000000000 inf inf
+r (rm=3) roundsd_1XX 843c995e1987d6cd7ff0000000000000 bca76ecf3bf5428b7ff0000000000000 inf inf
+m (rm=3) roundsd_1XX ea499d7b50735f437ff0000000000000 8a5b559f1ba1665b7ff0000000000000 inf inf
+r (rm=0) roundsd_1XX f778a7d83e836d98fff0000000000000 6c9982253f796c20fff0000000000000 -inf -inf
+m (rm=0) roundsd_1XX 0517b5e37f453a79fff0000000000000 beabf0cf43088f88fff0000000000000 -inf -inf
+r (rm=1) roundsd_1XX 7170c207ae440391fff0000000000000 dbdf9b08c4db0c3cfff0000000000000 -inf -inf
+m (rm=1) roundsd_1XX 98d0cbb0670d038efff0000000000000 217f803d5d7d1febfff0000000000000 -inf -inf
+r (rm=2) roundsd_1XX d483ca4b472b7819fff0000000000000 ebd899d8ab7a043ffff0000000000000 -inf -inf
+m (rm=2) roundsd_1XX 82d5bd42ea2a9ce0fff0000000000000 9535e446495ef6e4fff0000000000000 -inf -inf
+r (rm=3) roundsd_1XX fe129f02eb97ac8ffff0000000000000 7ae45cf4d3b63387fff0000000000000 -inf -inf
+m (rm=3) roundsd_1XX a4856cf8e6fde3d2fff0000000000000 f82ffe4ce70ef4d4fff0000000000000 -inf -inf
+r (rm=0) roundsd_1XX d17c208e78e97e54fff8000000000000 6a64c4bc1ef07876fff8000000000000 -nan -nan
+m (rm=0) roundsd_1XX df41b8323ce5b9c1fff8000000000000 2bcdacae16eaf91afff8000000000000 -nan -nan
+r (rm=1) roundsd_1XX 2b212f4fcf7fd0c6fff8000000000000 99b7b1906b87b46cfff8000000000000 -nan -nan
+m (rm=1) roundsd_1XX 11688150cc43fe0ffff8000000000000 0e6ecfcdb854e517fff8000000000000 -nan -nan
+r (rm=2) roundsd_1XX ed62aaa3d0bc8048fff8000000000000 e83e02d199dcc7c7fff8000000000000 -nan -nan
+m (rm=2) roundsd_1XX 1b5aa7b37676921cfff8000000000000 81724708abab982afff8000000000000 -nan -nan
+r (rm=3) roundsd_1XX f79e72ed5bfd7037fff8000000000000 375799de8a4e91eafff8000000000000 -nan -nan
+m (rm=3) roundsd_1XX dd7809bb1ade5546fff8000000000000 643af4c0d050f1b3fff8000000000000 -nan -nan
+r (rm=0) roundsd_1XX 2835678a50a47ef57ff8000000000000 656554181c3df2327ff8000000000000 nan nan
+m (rm=0) roundsd_1XX 362189c698dc26f07ff8000000000000 9725b55308a2d1137ff8000000000000 nan nan
+r (rm=1) roundsd_1XX 628869dc8e108be17ff8000000000000 54c514de300aca017ff8000000000000 nan nan
+m (rm=1) roundsd_1XX 08b60537cfcfe7777ff8000000000000 f9936c23310119a97ff8000000000000 nan nan
+r (rm=2) roundsd_1XX 84f65842f7a2775c7ff8000000000000 e3d9b990a614f9b67ff8000000000000 nan nan
+m (rm=2) roundsd_1XX 31965e6ba117763d7ff8000000000000 6ce5f7902ccea7d57ff8000000000000 nan nan
+r (rm=3) roundsd_1XX 6de0141d69b921c57ff8000000000000 f101238f5ebb5eb27ff8000000000000 nan nan
+m (rm=3) roundsd_1XX 932174c4ec15b4a17ff8000000000000 ce7a38f9d8685cf87ff8000000000000 nan nan
+r (rm=0) roundsd_1XX fea57cccc6b66b7dbff4cccccccccccd 5f9c323a3760db54bff0000000000000 -1.300000 -1.000000
+m (rm=0) roundsd_1XX 0cb827a191288204bff4cccccccccccd 00b20dbe172f1771bff0000000000000 -1.300000 -1.000000
+r (rm=1) roundsd_1XX 18a572afecf734e2bff4cccccccccccd 0d0ac5f213624efcc000000000000000 -1.300000 -2.000000
+m (rm=1) roundsd_1XX 7dba576370b0bec5bff4cccccccccccd e2ee5740c884baa1c000000000000000 -1.300000 -2.000000
+r (rm=2) roundsd_1XX 9941d427bcdf5b57bff4cccccccccccd dbabbe15d021980bbff0000000000000 -1.300000 -1.000000
+m (rm=2) roundsd_1XX c687e469690e4844bff4cccccccccccd 548df6decac624e7bff0000000000000 -1.300000 -1.000000
+r (rm=3) roundsd_1XX 62d8839316cbc139bff4cccccccccccd a9e0fb0650fe99e0bff0000000000000 -1.300000 -1.000000
+m (rm=3) roundsd_1XX c780ad135ca102e2bff4cccccccccccd 36f0caf8fe5634a3bff0000000000000 -1.300000 -1.000000
+r (rm=0) roundsd_1XX 52ca5f54d91d47eabff199999999999a 57095d22715931dcbff0000000000000 -1.100000 -1.000000
+m (rm=0) roundsd_1XX 600494c229cacbfebff199999999999a 6876b2ef4493cb36bff0000000000000 -1.100000 -1.000000
+r (rm=1) roundsd_1XX 4b7848c9e734cbc9bff199999999999a c584c4cb1490405ec000000000000000 -1.100000 -2.000000
+m (rm=1) roundsd_1XX 707377d5afe882f8bff199999999999a c97f90227cddcaffc000000000000000 -1.100000 -2.000000
+r (rm=2) roundsd_1XX 2c421e521e712e37bff199999999999a d2b310611905a5c6bff0000000000000 -1.100000 -1.000000
+m (rm=2) roundsd_1XX d92e37acd05b0931bff199999999999a 3b6c42f286950f5fbff0000000000000 -1.100000 -1.000000
+r (rm=3) roundsd_1XX d486c05060334f93bff199999999999a 60f6214260184275bff0000000000000 -1.100000 -1.000000
+m (rm=3) roundsd_1XX 7995b5a86a843e09bff199999999999a 9c9caabe421a7bb4bff0000000000000 -1.100000 -1.000000
+r (rm=0) roundsd_1XX 24a610228bdb103ebfeccccccccccccd 4dacd7d0c927f5cabff0000000000000 -0.900000 -1.000000
+m (rm=0) roundsd_1XX 3106cf285ec202debfeccccccccccccd cd70a6e690ccee61bff0000000000000 -0.900000 -1.000000
+r (rm=1) roundsd_1XX fc01ec2880c75096bfeccccccccccccd 7a35126b3395a025bff0000000000000 -0.900000 -1.000000
+m (rm=1) roundsd_1XX e2e3658d8c763512bfeccccccccccccd af4717cb4f0c47c3bff0000000000000 -0.900000 -1.000000
+r (rm=2) roundsd_1XX 3df836c31f59eefebfeccccccccccccd c7f1b17280bf21e78000000000000000 -0.900000 -0.000000
+m (rm=2) roundsd_1XX 6a8c5936d4ffb705bfeccccccccccccd 1f81ddcc6139683c8000000000000000 -0.900000 -0.000000
+r (rm=3) roundsd_1XX c4eacc5248f1cbd3bfeccccccccccccd 144196458e07596f8000000000000000 -0.900000 -0.000000
+m (rm=3) roundsd_1XX a95f8a8316bd6715bfeccccccccccccd 007ed849a4b42f2c8000000000000000 -0.900000 -0.000000
+r (rm=0) roundsd_1XX 74388f35dbeec777bfe6666666666666 41859f453ecc281ebff0000000000000 -0.700000 -1.000000
+m (rm=0) roundsd_1XX 81bfd7d5321027a4bfe6666666666666 319fe7a3f9dc7ef1bff0000000000000 -0.700000 -1.000000
+r (rm=1) roundsd_1XX 2c405fcdb7b0c249bfe6666666666666 2d1badd1706f6d52bff0000000000000 -0.700000 -1.000000
+m (rm=1) roundsd_1XX d109228b0759d612bfe6666666666666 9244ec39401133edbff0000000000000 -0.700000 -1.000000
+r (rm=2) roundsd_1XX cb651c7abe989caabfe6666666666666 ba65a049044f0a6e8000000000000000 -0.700000 -0.000000
+m (rm=2) roundsd_1XX 789f490577f853bebfe6666666666666 02ccc56c59b42f808000000000000000 -0.700000 -0.000000
+r (rm=3) roundsd_1XX 3304a59ace0535f9bfe6666666666666 c6c3580edaccddcf8000000000000000 -0.700000 -0.000000
+m (rm=3) roundsd_1XX 58e02da4604c7f08bfe6666666666666 6297549b242452098000000000000000 -0.700000 -0.000000
+r (rm=0) roundsd_1XX 427fdc8fc8576d97bfe00014f8b588e3 3393b57fd247c8d7bff0000000000000 -0.500010 -1.000000
+m (rm=0) roundsd_1XX 4f2daec7a3b53a51bfe00014f8b588e3 9305772680c27ce8bff0000000000000 -0.500010 -1.000000
+r (rm=1) roundsd_1XX d9369fb98def23e2bfe00014f8b588e3 df3896fccb1fa9e6bff0000000000000 -0.500010 -1.000000
+m (rm=1) roundsd_1XX 3ee5accf209364f8bfe00014f8b588e3 73770f6e4fec8c7dbff0000000000000 -0.500010 -1.000000
+r (rm=2) roundsd_1XX d887cf76fb2c393dbfe00014f8b588e3 ab0fdde6a7b5615b8000000000000000 -0.500010 -0.000000
+m (rm=2) roundsd_1XX 0568061bb747dd5dbfe00014f8b588e3 e34cfcd26f0564298000000000000000 -0.500010 -0.000000
+r (rm=3) roundsd_1XX 1fd44d29f26f8d05bfe00014f8b588e3 777a689d4468d0968000000000000000 -0.500010 -0.000000
+m (rm=3) roundsd_1XX 84179e0b483085e1bfe00014f8b588e3 c2e51eb2c26ae24c8000000000000000 -0.500010 -0.000000
+r (rm=0) roundsd_1XX 8e7df72f5417009cbfdfffd60e94ee39 22d8187f8398d6f78000000000000000 -0.499990 -0.000000
+m (rm=0) roundsd_1XX 9b515300b3af3be3bfdfffd60e94ee39 f2a1546f267de8448000000000000000 -0.499990 -0.000000
+r (rm=1) roundsd_1XX 05e1aeea00847261bfdfffd60e94ee39 8e8aceee45a653dfbff0000000000000 -0.499990 -1.000000
+m (rm=1) roundsd_1XX 29770459d723e1c3bfdfffd60e94ee39 52e080687c9d5474bff0000000000000 -0.499990 -1.000000
+r (rm=2) roundsd_1XX 636051b9d517c3b5bfdfffd60e94ee39 9aef684968f127ae8000000000000000 -0.499990 -0.000000
+m (rm=2) roundsd_1XX 10e8927696ec55e2bfdfffd60e94ee39 c10380fea42b07398000000000000000 -0.499990 -0.000000
+r (rm=3) roundsd_1XX 8a5ac2fdb52fd3f7bfdfffd60e94ee39 2568c6f1ccd931c28000000000000000 -0.499990 -0.000000
+m (rm=3) roundsd_1XX 2e04ddb8ce6b79a0bfdfffd60e94ee39 216936907d86e1f58000000000000000 -0.499990 -0.000000
+r (rm=0) roundsd_1XX 5830e0157e2c8288bfd3333333333333 1053ca4553bf527d8000000000000000 -0.300000 -0.000000
+m (rm=0) roundsd_1XX 642cc57f60ff2b5bbfd3333333333333 5073807ee90fc2078000000000000000 -0.300000 -0.000000
+r (rm=1) roundsd_1XX ae428a61116fafc6bfd3333333333333 3b1353a6dc026b3fbff0000000000000 -0.300000 -1.000000
+m (rm=1) roundsd_1XX 92bf2a292c094c75bfd3333333333333 2f7f3f29c72589d0bff0000000000000 -0.300000 -1.000000
+r (rm=2) roundsd_1XX 6ceea1424e573c14bfd3333333333333 8605407346035a668000000000000000 -0.300000 -0.000000
+m (rm=2) roundsd_1XX 981dec1812e8bc4ebfd3333333333333 9ef053f0f62818af8000000000000000 -0.300000 -0.000000
+r (rm=3) roundsd_1XX 72960517154507cfbfd3333333333333 d18b730c722000558000000000000000 -0.300000 -0.000000
+m (rm=3) roundsd_1XX 56a7eaabf2fc5a44bfd3333333333333 7d239c3357784d048000000000000000 -0.300000 -0.000000
+r (rm=0) roundsd_1XX a09a97414698f159bfb999999999999a fc04cad241bc3d698000000000000000 -0.100000 -0.000000
+m (rm=0) roundsd_1XX acbc0643aca508b9bfb999999999999a ab7af953ca760a308000000000000000 -0.100000 -0.000000
+r (rm=1) roundsd_1XX d659341fc0b0da11bfb999999999999a e7d126249134f104bff0000000000000 -0.100000 -1.000000
+m (rm=1) roundsd_1XX 7abc1e3f1f44a40dbfb999999999999a 0a554caf30822d92bff0000000000000 -0.100000 -1.000000
+r (rm=2) roundsd_1XX f333bf1165eea258bfb999999999999a 7151676243eafb858000000000000000 -0.100000 -0.000000
+m (rm=2) roundsd_1XX 9f0813002d39109fbfb999999999999a 781273a866fa978a8000000000000000 -0.100000 -0.000000
+r (rm=3) roundsd_1XX d989177813b1298dbfb999999999999a 7ce46ded373e3d4d8000000000000000 -0.100000 -0.000000
+m (rm=3) roundsd_1XX fc00c6e4b4e22acfbfb999999999999a d713509d4f4028798000000000000000 -0.100000 -0.000000
+r (rm=0) roundsd_1XX 66b91bb3ab594f113fb999999999999a e6eb18244c8f95bb0000000000000000 0.100000 0.000000
+m (rm=0) roundsd_1XX 7202154e95a2d3fe3fb999999999999a 05b8c1eecab4c0be0000000000000000 0.100000 0.000000
+r (rm=1) roundsd_1XX 7b26ad220e47f3423fb999999999999a 90c54767643de42f0000000000000000 0.100000 0.000000
+m (rm=1) roundsd_1XX df70e09bb0d6eb8b3fb999999999999a e360a7fcb6b53fba0000000000000000 0.100000 0.000000
+r (rm=2) roundsd_1XX f82dab261adaf7833fb999999999999a 5ad3dc175da80b0a3ff0000000000000 0.100000 1.000000
+m (rm=2) roundsd_1XX 24aa092de5e052d63fb999999999999a 516be226f5a384cc3ff0000000000000 0.100000 1.000000
+r (rm=3) roundsd_1XX bd31f61eaf7339313fb999999999999a 2474b5931931e8ab0000000000000000 0.100000 0.000000
+m (rm=3) roundsd_1XX 210e6f64141fe8403fb999999999999a 2f3a52cc65df71540000000000000000 0.100000 0.000000
+r (rm=0) roundsd_1XX aa8f6e6aaf719aae3fd3333333333333 ce08b43c76375b730000000000000000 0.300000 0.000000
+m (rm=0) roundsd_1XX b5fff19e1df48c283fd3333333333333 5c2cd74fe7c8e4b30000000000000000 0.300000 0.000000
+r (rm=1) roundsd_1XX 9fa9f36bf934fa593fd3333333333333 37f0b771551b46c10000000000000000 0.300000 0.000000
+m (rm=1) roundsd_1XX c2da713ddfbe20ee3fd3333333333333 baa1500e5bbebe480000000000000000 0.300000 0.000000
+r (rm=2) roundsd_1XX 7bde65816c1d39933fd3333333333333 418b9f92963c88f53ff0000000000000 0.300000 1.000000
+m (rm=2) roundsd_1XX 2601cda13cdd82f33fd3333333333333 28fa9f6aa122df733ff0000000000000 0.300000 1.000000
+r (rm=3) roundsd_1XX 208fa40aea8b37bb3fd3333333333333 ca394c0019fa00700000000000000000 0.300000 0.000000
+m (rm=3) roundsd_1XX c3d3e62912b293973fd3333333333333 8596a2c2995327950000000000000000 0.300000 0.000000
+r (rm=0) roundsd_1XX 6c1b8f6851ded3323fdfffd60e94ee39 b35b9d1abdb690910000000000000000 0.499990 0.000000
+m (rm=0) roundsd_1XX 77b19c35429c33383fdfffd60e94ee39 b2d53a7623b1760e0000000000000000 0.499990 0.000000
+r (rm=1) roundsd_1XX 40e208fb8277ef563fdfffd60e94ee39 dd50744164cf16b80000000000000000 0.499990 0.000000
+m (rm=1) roundsd_1XX 23facf25acfc42383fdfffd60e94ee39 8f1847e71e9dac3c0000000000000000 0.499990 0.000000
+r (rm=2) roundsd_1XX 7c45ed215db5698a3fdfffd60e94ee39 2679afd4eda673463ff0000000000000 0.499990 1.000000
+m (rm=2) roundsd_1XX a70e5e5a3030a0f73fdfffd60e94ee39 fcbea9746b76a8813ff0000000000000 0.499990 1.000000
+r (rm=3) roundsd_1XX 00a31f3dc2f9232b3fdfffd60e94ee39 6f353033379a879a0000000000000000 0.499990 0.000000
+m (rm=3) roundsd_1XX e34e2b34ae9b2dd33fdfffd60e94ee39 d928407deb9d4c3c0000000000000000 0.499990 0.000000
+r (rm=0) roundsd_1XX ac5c7eac91a2fb9b3fe00014f8b588e3 97e4d5be230b32153ff0000000000000 0.500010 1.000000
+m (rm=0) roundsd_1XX b7191411069ac92e3fe00014f8b588e3 06b5ec637c7176ce3ff0000000000000 0.500010 1.000000
+r (rm=1) roundsd_1XX 60d1ead0a910d2393fe00014f8b588e3 80e77fd6915a54150000000000000000 0.500010 0.000000
+m (rm=1) roundsd_1XX 02d0fb54178f53683fe00014f8b588e3 62c58c85ff5207960000000000000000 0.500010 0.000000
+r (rm=2) roundsd_1XX fb614308eca488663fe00014f8b588e3 089d0edb61e6ccfd3ff0000000000000 0.500010 1.000000
+m (rm=2) roundsd_1XX a6d2be5ac3daace03fe00014f8b588e3 cfb9024454a1dff53ff0000000000000 0.500010 1.000000
+r (rm=3) roundsd_1XX 5f6d68b538bdfd813fe00014f8b588e3 1166622b730f7c2a0000000000000000 0.500010 0.000000
+m (rm=3) roundsd_1XX 817f3e85e8d9b5f63fe00014f8b588e3 2bf02cfe5bbdde4a0000000000000000 0.500010 0.000000
+r (rm=0) roundsd_1XX 6a543b366ebb10eb3fe6666666666666 79a35b29a73642fe3ff0000000000000 0.700000 1.000000
+m (rm=0) roundsd_1XX 74375b3467ee4c0b3fe6666666666666 57cbeb16f306e4f53ff0000000000000 0.700000 1.000000
+r (rm=1) roundsd_1XX fd769aeb6effa3023fe6666666666666 21b3d932dcba00d90000000000000000 0.700000 0.000000
+m (rm=1) roundsd_1XX 605bf5c82079527e3fe6666666666666 33a91fe9feddd1560000000000000000 0.700000 0.000000
+r (rm=2) roundsd_1XX f834673518e894293fe6666666666666 e9f7bba8f4fc941a3ff0000000000000 0.700000 1.000000
+m (rm=2) roundsd_1XX 234beca0f3d9a7af3fe6666666666666 9feaa8da5aa184ce3ff0000000000000 0.700000 1.000000
+r (rm=3) roundsd_1XX 3bed80734cd7c5bd3fe6666666666666 b1cee2eacd5bdf210000000000000000 0.700000 0.000000
+m (rm=3) roundsd_1XX 9d661f1cc06e2aff3fe6666666666666 7bee6646e8b3dfbd0000000000000000 0.700000 0.000000
+r (rm=0) roundsd_1XX a601c606ea2b14203feccccccccccccd 59982f594837c14e3ff0000000000000 0.900000 1.000000
+m (rm=0) roundsd_1XX b00c709d6799bdcd3feccccccccccccd a716398f8972c0813ff0000000000000 0.900000 1.000000
+r (rm=1) roundsd_1XX 18d1194dd24462b13feccccccccccccd c1b6805445f019020000000000000000 0.900000 0.000000
+m (rm=1) roundsd_1XX 3b9dbd82c7b93e793feccccccccccccd 02c200141b3e087c0000000000000000 0.900000 0.000000
+r (rm=2) roundsd_1XX 73bc59a8e3838fd13feccccccccccccd c887b63ba4e7c99c3ff0000000000000 0.900000 1.000000
+m (rm=2) roundsd_1XX 1d7ae72bc22e8f643feccccccccccccd 6e509d357f78970e3ff0000000000000 0.900000 1.000000
+r (rm=3) roundsd_1XX 95236578ff477bdf3feccccccccccccd 506bb16f457cb07d0000000000000000 0.900000 0.000000
+m (rm=3) roundsd_1XX 3802cef936598eed3feccccccccccccd c923ee53947f4d960000000000000000 0.900000 0.000000
+r (rm=0) roundsd_1XX 60651f1c04f0053c3ff199999999999a 37c3504f080ead043ff0000000000000 1.100000 1.000000
+m (rm=0) roundsd_1XX 6a96524b04991c753ff199999999999a f498d4ce3cb40a743ff0000000000000 1.100000 1.000000
+r (rm=1) roundsd_1XX b2e265f4d3df0f463ff199999999999a 5eee753bcdfda1923ff0000000000000 1.100000 1.000000
+m (rm=1) roundsd_1XX 949553820c4e195b3ff199999999999a cf112f045675ae093ff0000000000000 1.100000 1.000000
+r (rm=2) roundsd_1XX 6cfb19614c73775f3ff199999999999a a54dff9473a96c854000000000000000 1.100000 2.000000
+m (rm=2) roundsd_1XX 9660b1fd2ed965ff3ff199999999999a 3aeddf57c12519b44000000000000000 1.100000 2.000000
+r (rm=3) roundsd_1XX 6e0f19c24f0d1ee73ff199999999999a ec3fcdbadb73ee3f3ff0000000000000 1.100000 1.000000
+m (rm=3) roundsd_1XX 50554c1c4a9ae0c23ff199999999999a 158dc4275e212ad53ff0000000000000 1.100000 1.000000
+r (rm=0) roundsd_1XX 987e4677bc0ce53d3ff4cccccccccccd 1324c00be6bb07203ff0000000000000 1.300000 1.000000
+m (rm=0) roundsd_1XX a2d6034040ef69033ff4cccccccccccd 4050bed30dcbc2cd3ff0000000000000 1.300000 1.000000
+r (rm=1) roundsd_1XX c9a980e172d0aac13ff4cccccccccccd f95db8e972df97873ff0000000000000 1.300000 1.000000
+m (rm=1) roundsd_1XX 6b43b7c8ef3ae2233ff4cccccccccccd 9b96acbbae82c2fb3ff0000000000000 1.300000 1.000000
+r (rm=2) roundsd_1XX e3efa66053ba4ed43ff4cccccccccccd 804995b460417ed44000000000000000 1.300000 2.000000
+m (rm=2) roundsd_1XX 8dfb491439db29813ff4cccccccccccd 05c0703f21a708bf4000000000000000 1.300000 2.000000
+r (rm=3) roundsd_1XX c4b19a523d29b0d53ff4cccccccccccd 864837ca8f419b683ff0000000000000 1.300000 1.000000
+m (rm=3) roundsd_1XX e65e9785fc301f7d3ff4cccccccccccd 5f2de8c04699757a3ff0000000000000 1.300000 1.000000
+r (rm=0) roundss_1XX 4e4e3b19117db2247f546bff00000000 ecbb7e8de13dd0a271969b9000000000 0.000000 0.000000
+m (rm=0) roundss_1XX 57cd827a199ba578e424469f00000000 8a3df59efdb9e88be508aeba00000000 0.000000 0.000000
+r (rm=1) roundss_1XX 5f266815af1733225facf1cd00000000 93014a5d3598fbe21ed80f2700000000 0.000000 0.000000
+m (rm=1) roundss_1XX c0a7ea54707c98d1ceb7e87500000000 6451773725664353f9d23bc400000000 0.000000 0.000000
+r (rm=2) roundss_1XX d89a02a4f756122e0b13a78300000000 597a7a996aaffd8950c2ad7e00000000 0.000000 0.000000
+m (rm=2) roundss_1XX 014cae72e132dbe8f38aabe300000000 cec94eeda00065310174e14000000000 0.000000 0.000000
+r (rm=3) roundss_1XX 9909ea29c99b30a963e96f8100000000 1e87f0a162e4b6f6e6b353f600000000 0.000000 0.000000
+m (rm=3) roundss_1XX fa1db0344c1d4d1e35fc6f4a00000000 a7035a204ce72d85dc4d808b00000000 0.000000 0.000000
+r (rm=0) roundss_1XX 82d4fe0105456ef2468f272880000000 c4888ad6fb96068abf0ce3ed80000000 -0.000000 -0.000000
+m (rm=0) roundss_1XX 8b79cefb919eced2736d130980000000 d1617b2f0a7c7cb06cbdf80780000000 -0.000000 -0.000000
+r (rm=1) roundss_1XX 72591e8e8bb4aa699664b0d780000000 2adb29971626cda4bd2c3bc680000000 -0.000000 -0.000000
+m (rm=1) roundss_1XX 94c1ea268f143d648c3e798080000000 2b42907aba1f33118f25291480000000 -0.000000 -0.000000
+r (rm=2) roundss_1XX 4bfb2c2f3a49c56f31c8eaef80000000 2fe2ad4493f3eaa4be733cde80000000 -0.000000 -0.000000
+m (rm=2) roundss_1XX f453e21628df7c3561ce7f1080000000 94077b613c2e300826e4f21180000000 -0.000000 -0.000000
+r (rm=3) roundss_1XX eb170745f4639e63f81cb5cf80000000 b5fdf63e525d3feba342c69780000000 -0.000000 -0.000000
+m (rm=3) roundss_1XX 8c9297293a6069a4d27e061880000000 ed0f1a45700b54f6115a355e80000000 -0.000000 -0.000000
+r (rm=0) roundss_1XX 340f8e2f976217a5cbc0f0d77f800000 9a8be4e432c5aad84cf8b9507f800000 inf inf
+m (rm=0) roundss_1XX 3ddbe9c2a6f6e512bfadeff87f800000 17bb4e8635167e3a30e8d05b7f800000 inf inf
+r (rm=1) roundss_1XX 0442a34d04a70f968a127d677f800000 bfec5696158a0ccb99f6f56a7f800000 inf inf
+m (rm=1) roundss_1XX e590b83e4c01d0de08bb18117f800000 f06af7826dae903563eda4697f800000 inf inf
+r (rm=2) roundss_1XX 3c1124001b91659515743ae07f800000 04802eb5d90d46256a9a5a447f800000 inf inf
+m (rm=2) roundss_1XX 6511e4ff0ce20a688d0961c27f800000 597cf59bf63369468aca91e77f800000 inf inf
+r (rm=3) roundss_1XX bcdbf2a7bc81fa034c4609a27f800000 49a84aa060ad36459f47c73f7f800000 inf inf
+m (rm=3) roundss_1XX 9dbd4c64c6f872112ef6ac6b7f800000 32522831b206e8cd84de77367f800000 inf inf
+r (rm=0) roundss_1XX 6301eda3c6d6ae3f0ee7c80bff800000 6ec48bb888cabd8b175a1eb9ff800000 -inf -inf
+m (rm=0) roundss_1XX 6cf4d2ce5aa4ea38cae3d86dff800000 5a4b70a27f86ef2b338936b5ff800000 -inf -inf
+r (rm=1) roundss_1XX 13e2f5531bf061a93db7587dff800000 5332d25c32c5ba58b4353d15ff800000 -inf -inf
+m (rm=1) roundss_1XX b416549ca745513e432fc428ff800000 b3c7ac513e135cbf752caec4ff800000 -inf -inf
+r (rm=2) roundss_1XX abdeea179a30f3a2b7169958ff800000 d754fdec3efd0f0c543805b0ff800000 -inf -inf
+m (rm=2) roundss_1XX 5384b32f8f3b8682773a52faff800000 1b27be9bcf0e10ea2b26bec4ff800000 -inf -inf
+r (rm=3) roundss_1XX 0a55ac5022f544895d656bfbff800000 db8aecc98cd29a05d8c156ecff800000 -inf -inf
+m (rm=3) roundss_1XX 2b9dcfe6f0e76a6447646045ff800000 74ca84e211d6eb0a36d74814ff800000 -inf -inf
+r (rm=0) roundss_1XX 11a81a5d949f34be0f03adc6ffc00000 40338152fca53da520331028ffc00000 -nan -nan
+m (rm=0) roundss_1XX 1ac28821aba8dd45930ecf69ffc00000 9c10df85e6cbcd8274a02a15ffc00000 -nan -nan
+r (rm=1) roundss_1XX a137169ed08fa2a2ad51411affc00000 e4af9be86dd5d64c0ceb13c5ffc00000 -nan -nan
+m (rm=1) roundss_1XX 0152be40a0dfbf843b987fc5ffc00000 745aafe52d4e95afc5e04526ffc00000 -nan -nan
+r (rm=2) roundss_1XX 98607e74b624709417ae0556ffc00000 a85e19eac1c246587c4b3e22ffc00000 -nan -nan
+m (rm=2) roundss_1XX c0ad51a4afebf0811f6050b9ffc00000 dc07d461c5be25f30bf879a7ffc00000 -nan -nan
+r (rm=3) roundss_1XX d785333e26bf7cf52d7adbdaffc00000 6ca1ddb8d6cd6d2c4fb273a0ffc00000 -nan -nan
+m (rm=3) roundss_1XX 373421adb82c509d1ec822a5ffc00000 b4782e5a8f7c5bae2547a6f8ffc00000 -nan -nan
+r (rm=0) roundss_1XX 3d06155c00bfa724ce16a1077fc00000 10d7c5b28d562b256781909d7fc00000 nan nan
+m (rm=0) roundss_1XX 46460db99b03be371a30d4ea7fc00000 db0c9d2e6be7193ef22dac7a7fc00000 nan nan
+r (rm=1) roundss_1XX ac42042f2484d181dce1383c7fc00000 7361b239c6bb60a5a217767c7fc00000 nan nan
+m (rm=1) roundss_1XX cc44f62a37cf1caff1f748e77fc00000 332300403a5f3d05540b6b8d7fc00000 nan nan
+r (rm=2) roundss_1XX 0399e017716fda6d353c80d97fc00000 779e84ad615eec0be2d4069a7fc00000 nan nan
+m (rm=2) roundss_1XX ab8dbd606ef04866847d5cfd7fc00000 9a1e39edd945a8632940c3907fc00000 nan nan
+r (rm=3) roundss_1XX 216b8972c8dfa247ba86593f7fc00000 faef1b6d3e9faeb805191e597fc00000 nan nan
+m (rm=3) roundss_1XX c18140ba1ec724bbb323f18b7fc00000 f25c26972bf83ab7522c93e37fc00000 nan nan
+r (rm=0) roundss_1XX e719dea20a34096f4b1fa2cdbfa66666 ddb257d93ddc870bec459f18bf800000 -1.300000 -1.000000
+m (rm=0) roundss_1XX ef81609828b38e0f5e48e7f2bfa66666 193ea89d0fd8d361af30bce6bf800000 -1.300000 -1.000000
+r (rm=1) roundss_1XX 3603c00715cfee46c8683de4bfa66666 014a17513d78586477b96838c0000000 -1.300000 -2.000000
+m (rm=1) roundss_1XX 16ecfd5a6c1467c1654c1e90bfa66666 f0229f60644652c220ab1ffac0000000 -1.300000 -2.000000
+r (rm=2) roundss_1XX ec8710ffca0f332b11c008e3bfa66666 44143d3620d0ff2486d35b18bf800000 -1.300000 -1.000000
+m (rm=2) roundss_1XX 1422f661ca4b8e31a89076c8bfa66666 576beb3f0ca1993884fe9a7ebf800000 -1.300000 -1.000000
+r (rm=3) roundss_1XX e908aced0955b67f0687e52abfa66666 8672a7e7c4465daaf8f65719bf800000 -1.300000 -1.000000
+m (rm=3) roundss_1XX c9842d0d22b7e5c00773cff7bfa66666 2e766c9be54a8626bd880ed3bf800000 -1.300000 -1.000000
+r (rm=0) roundss_1XX 0fe3752eb1ff58a1861eb21abf8ccccd a9c336c50a395257af7f3b99bf800000 -1.100000 -1.000000
+m (rm=0) roundss_1XX 177180bc53b94bcd6155097fbf8ccccd 55a502d2d0a0fbeaa9a95a58bf800000 -1.100000 -1.000000
+r (rm=1) roundss_1XX 3d7a4b24a470f9f173e45012bf8ccccd 8c68cb2fd20abe8a89d0e8fbc0000000 -1.100000 -2.000000
+m (rm=1) roundss_1XX dd49d1d13fb09fb9989703bfbf8ccccd ab588d47ad03d6e42ac2606dc0000000 -1.100000 -2.000000
+r (rm=2) roundss_1XX 532c0e2ec10579d0ab3a9f73bf8ccccd 0ec04485fc1880a367493e9cbf800000 -1.100000 -1.000000
+m (rm=2) roundss_1XX fa6dfea9c4fcc3e38a989f18bf8ccccd 12edec575cd4f8741e32ff73bf800000 -1.100000 -1.000000
+r (rm=3) roundss_1XX 305a9dade721b89d0f7f7f9bbf8ccccd 112c822868c37a032a491ddebf800000 -1.100000 -1.000000
+m (rm=3) roundss_1XX 503de8a6c4fe95ab18b9bbe9bf8ccccd 68c60064bd7241fb665916c9bf800000 -1.100000 -1.000000
+r (rm=0) roundss_1XX b563da00f72196b87f13cfedbf666666 730a6477f66c8a09b0306520bf800000 -0.900000 -1.000000
+m (rm=0) roundss_1XX bd176f271d15f67222593892bf666666 8e43a9cdb03e91d8e29887d0bf800000 -0.900000 -1.000000
+r (rm=1) roundss_1XX c2a7a387d167f282db5771c6bf666666 15bcccd386729115da5ef6c3bf800000 -0.900000 -1.000000
+m (rm=1) roundss_1XX 225d738db0a2c69788d8f674bf666666 64c3c8f31496c86c724e30e7bf800000 -0.900000 -1.000000
+r (rm=2) roundss_1XX 3787daa35552ae5a03aa4388bf666666 d7a2989af7366f888734b02680000000 -0.900000 -0.000000
+m (rm=2) roundss_1XX 5f6fd4375d04e57a2a97d5eebf666666 caa63a35caddc516f6dcf26e80000000 -0.900000 -0.000000
+r (rm=3) roundss_1XX f4625db36342a8a1d76c2693bf666666 991baa2f2a1704c1991172aa80000000 -0.900000 -0.000000
+m (rm=3) roundss_1XX 54ab7185049b337ce7f5b461bf666666 a04de2f3b3706a364da1adc680000000 -0.900000 -0.000000
+r (rm=0) roundss_1XX d9980d18db98c1b637fefb45bf333333 3b87e0ef00753021ee561eaebf800000 -0.700000 -1.000000
+m (rm=0) roundss_1XX e1742cd884c78ffca152752cbf333333 c6179f8eadb1952d59fd414ebf800000 -0.700000 -1.000000
+r (rm=1) roundss_1XX c68aca319cb4d9f902bfa000bf333333 9d471b3c57b1d30768629292bf800000 -0.700000 -1.000000
+m (rm=1) roundss_1XX e527e38fbfe9db5a360ff7afbf333333 1b64516599ff275af8518d66bf800000 -0.700000 -1.000000
+r (rm=2) roundss_1XX 9a97735e88f4d0cb190ff624bf333333 9eba3b76102acdd3e595afb680000000 -0.700000 -0.000000
+m (rm=2) roundss_1XX 4226770a9361f5f7878c194bbf333333 8195d7d957bb001d0bfc736f80000000 -0.700000 -0.000000
+r (rm=3) roundss_1XX 3720ea007dba868b5c4fdc10bf333333 1f4020fb0a40fde54650557b80000000 -0.700000 -0.000000
+m (rm=3) roundss_1XX d6d0c8aae28ebe327427bc5fbf333333 d6091249c74400d7725ed1c880000000 -0.700000 -0.000000
+r (rm=0) roundss_1XX 7b840e765d66da99acdf3424bf0000a8 013aaa2e2754459e6bf26441bf800000 -0.500010 -1.000000
+m (rm=0) roundss_1XX 8286b6ce8ad0166cde42c04bbf0000a8 fb20e315c8fb07e70dd889d1bf800000 -0.500010 -1.000000
+r (rm=1) roundss_1XX 4723be200657ae56e61dddc1bf0000a8 2207b86c46c5835e34dcbc66bf800000 -0.500010 -1.000000
+m (rm=1) roundss_1XX 26a721d76c87dd04a23c0570bf0000a8 d03b289e3c3ff5aebcc979ebbf800000 -0.500010 -1.000000
+r (rm=2) roundss_1XX 7b5edb5f59ede021ed6bb645bf0000a8 63082c1746f49884816d3c4c80000000 -0.500010 -0.000000
+m (rm=2) roundss_1XX a293e9246814f35aa3766b2dbf0000a8 35b9c2430170a98b5f92827580000000 -0.500010 -0.000000
+r (rm=3) roundss_1XX f79446923688525ba029a013bf0000a8 a49ce48e093f64703205c65380000000 -0.500010 -0.000000
+m (rm=3) roundss_1XX d6abed155ed638cfc04fd2e3bf0000a8 0afb9064f8ee05ded69284d080000000 -0.500010 -0.000000
+r (rm=0) roundss_1XX 9b25dd197c89e263dfb67c89befffeb0 c523c2326d09c782260438da80000000 -0.499990 -0.000000
+m (rm=0) roundss_1XX a24e0f0b2d2e8cc2d8281af1befffeb0 2f607462021ae70800295f5b80000000 -0.499990 -0.000000
+r (rm=1) roundss_1XX 477280550d50719989722807befffeb0 a5fea46253afa11b3fcb7441bf800000 -0.499990 -1.000000
+m (rm=1) roundss_1XX e6dd2d65b77bce94cd6022b7befffeb0 83484d9cfd543068beb8f376bf800000 -0.499990 -1.000000
+r (rm=2) roundss_1XX dada11a6c73bdf5e7fbd85edbefffeb0 268c6b7e9b93d19b5bba58e880000000 -0.499990 -0.000000
+m (rm=2) roundss_1XX 81b72983da1ddfa47d57cb96befffeb0 e814fa73cafac05ff19e1f8280000000 -0.499990 -0.000000
+r (rm=3) roundss_1XX 36be6f6a8cac0c11a1f8729cbefffeb0 262df7e7251539605b30c53080000000 -0.499990 -0.000000
+m (rm=3) roundss_1XX 543ce1c67875a052c96df6edbefffeb0 3c235c46486e774b773bc5de80000000 -0.499990 -0.000000
+r (rm=0) roundss_1XX 397d79033a03d712d082d173be99999a 864227fcd094b7cc1f8d9b7980000000 -0.300000 -0.000000
+m (rm=0) roundss_1XX 40cd368d6fe2effe9103811cbe99999a 60d654755910358f31f0c3eb80000000 -0.300000 -0.000000
+r (rm=1) roundss_1XX c47711d1b29f22c2e9bc81d3be99999a 262add1d7e702d3f8731b921bf800000 -0.300000 -1.000000
+m (rm=1) roundss_1XX 23c90739a0c5ad09b5794d84be99999a 358cc061dc3fda88fe1cfa08bf800000 -0.300000 -1.000000
+r (rm=2) roundss_1XX b70d1532d4e0cb80cf05611bbe99999a e746f8ab0d097917737d018a80000000 -0.300000 -0.000000
+m (rm=2) roundss_1XX de903629eb7cbad3152d3a84be99999a 98a58169b05b4598c0204a9580000000 -0.300000 -0.000000
+r (rm=3) roundss_1XX f29e66898026b4ad61be52abbe99999a a6f557065fc07cb7c3d0521480000000 -0.300000 -0.000000
+m (rm=3) roundss_1XX 5183a2bd306af5bb9081277cbe99999a 6c8176edb6c5581f565b93f380000000 -0.300000 -0.000000
+r (rm=0) roundss_1XX 558ae43396d2bba87f4535e4bdcccccd 4697db8c52f4167c568b8b1e80000000 -0.100000 -0.000000
+m (rm=0) roundss_1XX 5b012a564eec402108d5f6cdbdcccccd 9081814ecedcf17b9f2db58180000000 -0.100000 -0.000000
+r (rm=1) roundss_1XX c0326f92f544c1d108fce825bdcccccd a68d649fc70626c80d0d8d08bf800000 -0.100000 -1.000000
+m (rm=1) roundss_1XX de6ab053276479655b8885d7bdcccccd e40581ebd800f10e7df7909fbf800000 -0.100000 -1.000000
+r (rm=2) roundss_1XX 12f5e7057fdaa689dd434ccebdcccccd a536d29e9e558efac9b6383280000000 -0.100000 -0.000000
+m (rm=2) roundss_1XX b81f1215993282e86afab6f8bdcccccd 476c5525b4923838ce1803ae80000000 -0.100000 -0.000000
+r (rm=3) roundss_1XX 2d342ced12f64a2fdf794040bdcccccd 25f205eab7412d7368e76cfd80000000 -0.100000 -0.000000
+m (rm=3) roundss_1XX cb8031fa86b43909168c6792bdcccccd 9a16de5b42f1a65873f0f00d80000000 -0.100000 -0.000000
+r (rm=0) roundss_1XX ef4e1da990f88c23ecfea6db3dcccccd 0422dde2f22be292cbff09c900000000 0.100000 0.000000
+m (rm=0) roundss_1XX f5ebed65cc4d7f293d9d79053dcccccd be63fded627d1bce4ce0351c00000000 0.100000 0.000000
+r (rm=1) roundss_1XX 39a39c99d73f4ec6e5335dfd3dcccccd 23253ae72e728eb7d25feff400000000 0.100000 0.000000
+m (rm=1) roundss_1XX 17c226b34c5a34a7bf8dccb03dcccccd 91b4903cf39777fa3947b33c00000000 0.100000 0.000000
+r (rm=2) roundss_1XX eb94871ec82b6e77a97744083dcccccd 625cfb584d7711435d66fee03f800000 0.100000 1.000000
+m (rm=2) roundss_1XX 1165bb46e63d38e37ebd40f33dcccccd f46878a7d79e993d19864acd3f800000 0.100000 1.000000
+r (rm=3) roundss_1XX e580bf97431ccd971a2a3c5b3dcccccd a12601952d994b954b7415ed00000000 0.100000 0.000000
+m (rm=3) roundss_1XX c3328e7d7a556b3e598cb52e3dcccccd c6e0948eecf363f7cefcda2d00000000 0.100000 0.000000
+r (rm=0) roundss_1XX 07c8246527734c8517ad25573e99999a c0e32dffaf381c0e7ee9167a00000000 0.300000 0.000000
+m (rm=0) roundss_1XX 0d8c7eb9e703ac172f5a0ac23e99999a e97bc65213f5b386370943be00000000 0.300000 0.000000
+r (rm=1) roundss_1XX 31ca96e75690c9a17f5fe05b3e99999a 9ef45df5b3b5640dd426dfe700000000 0.300000 0.000000
+m (rm=1) roundss_1XX ced06a590fa6ddcfe288210e3e99999a 3c99ed522c046a4d330e65e000000000 0.300000 0.000000
+r (rm=2) roundss_1XX 42e9f57daed1254c33a14ac83e99999a 1db872d7196f03f22f8b51943f800000 0.300000 1.000000
+m (rm=2) roundss_1XX e86033bed09edcc55075d8733e99999a 9e9be8ef178169a9a36a1ff13f800000 0.300000 1.000000
+r (rm=3) roundss_1XX 1c82218811983fe514d246fd3e99999a 1b8f4c06c1c6d81e6d774ce200000000 0.300000 0.000000
+m (rm=3) roundss_1XX 399bb9470c4c8a595a8210503e99999a f1e09988b4cb8efc677d535300000000 0.300000 0.000000
+r (rm=0) roundss_1XX 9df7f9675d45f9cc0052b35a3efffeb0 7adacbe18b1bc5f06f4ab03100000000 0.499990 0.000000
+m (rm=0) roundss_1XX a2e2dc54a10fc7ebe00eaa063efffeb0 13c9de7de242b9a55fa8df6600000000 0.499990 0.000000
+r (rm=1) roundss_1XX a6a75f7a73373262d882703f3efffeb0 18f8cec856cda8c815645ddf00000000 0.499990 0.000000
+m (rm=1) roundss_1XX 04947c45704773dcc27984f33efffeb0 e5b4982f8347cc056b4aa48900000000 0.499990 0.000000
+r (rm=2) roundss_1XX 17f3312233cec9067bc15f0d3efffeb0 d64a371c043d62073e26324e3f800000 0.499990 1.000000
+m (rm=2) roundss_1XX 3d11797b59556e8ce0247e793efffeb0 4704a7fd7539a67b6bc4831c3f800000 0.499990 1.000000
+r (rm=3) roundss_1XX d03a50be7d6a9f19cb6f5e243efffeb0 942fe43c73cad30cccef11de00000000 0.499990 0.000000
+m (rm=3) roundss_1XX 2dbab2563c99985a196e7af83efffeb0 1916eb479a7926673e755a8000000000 0.499990 0.000000
+r (rm=0) roundss_1XX b1dd9cae316c95faa7ed4ee23f0000a8 3107b68984d4db389e20d8ee3f800000 0.500010 1.000000
+m (rm=0) roundss_1XX b6ee0934f871d1a64fb757cf3f0000a8 3a4c436ed0662d2ac6bd09143f800000 0.500010 1.000000
+r (rm=1) roundss_1XX 993af5532e348909ee9a0faa3f0000a8 8f328d6218bb5ae9931869de00000000 0.500010 0.000000
+m (rm=1) roundss_1XX b70e5c776f3ff8d06060f45e3f0000a8 8c0691d1f8609c23e1fd723800000000 0.500010 0.000000
+r (rm=2) roundss_1XX 6ab43b0d56205ba781d781d93f0000a8 8d1249270de02f828c37a20e3f800000 0.500010 1.000000
+m (rm=2) roundss_1XX 0f798c7f7f63ef392dc933063f0000a8 eda2b3d1f2c851b27094744d3f800000 0.500010 1.000000
+r (rm=3) roundss_1XX 02a84d3a8792ed33410284d13f0000a8 0a04ca3943a33c6069de64df00000000 0.500010 0.000000
+m (rm=3) roundss_1XX a08f7aab0a3b94409750f2263f0000a8 3f828bcd9dfd2d3853e2eeb200000000 0.500010 0.000000
+r (rm=0) roundss_1XX 43780d3ca2ea1e0d0c7ef8f13f333333 e76af0f79c635fe50a6c8fb13f800000 0.700000 1.000000
+m (rm=0) roundss_1XX 48b0045bee29c8467c57121e3f333333 6006f725db600f146a48c1c83f800000 0.700000 1.000000
+r (rm=1) roundss_1XX 0b8459738887cd96c3a8bc9a3f333333 04a39bc2f78079714f4202e200000000 0.700000 0.000000
+m (rm=1) roundss_1XX e83d0aef0c8d6baabc3d734f3f333333 318dd83a8b4fd9a79525ceed00000000 0.700000 0.000000
+r (rm=2) roundss_1XX 3b2a133d17c9dc2d45e2b22b3f333333 410faaf9335a6b6318bf9fd43f800000 0.700000 1.000000
+m (rm=2) roundss_1XX 60966ec844c65dcc3963f5183f333333 92770e6b8c2d6a50b4daf3843f800000 0.700000 1.000000
+r (rm=3) roundss_1XX b3cc19fd2f102933748cb8043f333333 7e0ffffc3152131b454345e700000000 0.700000 0.000000
+m (rm=3) roundss_1XX 901a0f4676347d0dd22878da3f333333 63257918bf57a16fa7c611ea00000000 0.700000 0.000000
+r (rm=0) roundss_1XX 53ca4c10b2bd95072f05af863f666666 9b03782bd2c751f9b52ed37a3f800000 0.900000 1.000000
+m (rm=0) roundss_1XX 5829ccc78138adcc66eddbf43f666666 83f6f8a2042f60654d4908813f800000 0.900000 1.000000
+r (rm=1) roundss_1XX fa838cd87f2f000955ad77103f666666 7849f6e7f41a075e4ae12aed00000000 0.900000 0.000000
+m (rm=1) roundss_1XX 972387ae4731cc6ad71100c63f666666 d44a6d683c14859187c4b7a900000000 0.900000 0.000000
+r (rm=2) roundss_1XX 8a57b9b475c74a9ac7e4f0023f666666 f443599078aa14a9e2bc2aa03f800000 0.900000 1.000000
+m (rm=2) roundss_1XX 2f691e58a67fb94603f4c5b13f666666 3582b6cb4467f153369600c03f800000 0.900000 1.000000
+r (rm=3) roundss_1XX e1a6b20576e45319660bfabd3f666666 f15181843ed8573b5e1eb3f400000000 0.900000 0.000000
+m (rm=3) roundss_1XX fe5a7227808355c0cbf60b143f666666 85fdb529ff87840c381fc12900000000 0.900000 0.000000
+r (rm=0) roundss_1XX e1d1592a60e7fbe6108175a03f8ccccd 4dd24e262502b2739e67a5493f800000 1.100000 1.000000
+m (rm=0) roundss_1XX e557637ab39c80380f78b24f3f8ccccd a51b48e54cd51e1c6ec0dc413f800000 1.100000 1.000000
+r (rm=1) roundss_1XX 68388c83142e2162a6a7400c3f8ccccd e9269fd30f8a03b282f7e0fd3f800000 1.100000 1.000000
+m (rm=1) roundss_1XX c4bfd1b2202a1a0fafda9ac33f8ccccd 753d505c0ab09ee1b8d82f6a3f800000 1.100000 1.000000
+r (rm=2) roundss_1XX 57392c71721ca7ec07dc3d603f8ccccd a5ad56eddad02b56ea2f447340000000 1.100000 2.000000
+m (rm=2) roundss_1XX 7bf39b2ea78e03a58b7aa3cf3f8ccccd d5c2adf11b78e6bdf5c89b0340000000 1.100000 2.000000
+r (rm=3) roundss_1XX 8e361a535a0e6be515814afc3f8ccccd 61c851d368330ac1b66eb0083f800000 1.100000 1.000000
+m (rm=3) roundss_1XX ea51a34e28271b5982bbadd43f8ccccd a50b3f015d8dd40f07ef006d3f800000 1.100000 1.000000
+r (rm=0) roundss_1XX ed8f348aac664eacaff448413fa66666 fdd771e697138053c515061e3f800000 1.300000 1.000000
+m (rm=0) roundss_1XX f13bc7738256418b76fa98313fa66666 c577e5eeb1504a38ccad3e073f800000 1.300000 1.000000
+r (rm=1) roundss_1XX 53a35b75478330a1b498178e3fa66666 5838978548d16d6bf98324143f800000 1.300000 1.000000
+m (rm=1) roundss_1XX 7011e9fc977a579b459943463fa66666 14668117f7212697266334313f800000 1.300000 1.000000
+r (rm=2) roundss_1XX a2d26e740dc6f12505ca97443fa66666 544da1105bccb1693018eb4b40000000 1.300000 2.000000
+m (rm=2) roundss_1XX 4632e74945f33bead1f790733fa66666 7439f1dc0f5e498df370c44c40000000 1.300000 2.000000
+r (rm=3) roundss_1XX b87d4fe8dc8e719783eca8c13fa66666 cf766fe8b0642bae4b353b213f800000 1.300000 1.000000
+m (rm=3) roundss_1XX 54fea2bb6e22ced7f8755d1a3fa66666 c34f179ed96993791434ccb73f800000 1.300000 1.000000