- // Float <= Float
- double * dst = (double *)sval;
- double * src = (double *)(sval + 1);
- *sval = *dst <= *src;
- }
- else if (attr == FLOAT)
- {
- // Float <= Int
- double * dst = (double *)sval;
- uint64_t * src = (uint64_t *)(sval + 1);
- *sval = *dst <= *src;
- }
- else if (attr == FLOAT >> 1)
- {
- // Int <= Float
- uint64_t * dst = (uint64_t *)sval;
- double * src = (double *)(sval + 1);
- *sval = *dst <= *src;
+ PTR p;
+ p.u64 = sval;
+ double fpval1 = (sattr[0] & FLOAT ? *p.dp : (double)*p.i64);
+ p.u64++;
+ double fpval2 = (sattr[1] & FLOAT ? *p.dp : (double)*p.i64);
+ *sval = (fpval1 <= fpval2);