Handle sincos with generic libm-test logic.

This commit is contained in:
Joseph Myers 2013-05-19 14:45:41 +00:00
parent f16cc3eb81
commit db62a90753
32 changed files with 260 additions and 225 deletions

View File

@ -1,5 +1,25 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com> 2013-05-19 Joseph Myers <joseph@codesourcery.com>
* math/gen-libm-test.pl (special_functions): Remove.
(parse_args): Don't handle TEST_extra. Handle functions with no
return value.
* math/libm-test.inc (struct test_sincos_data): Replace with
struct test_fFF_11_data.
(RUN_TEST_sincos): Replace with RUN_TEST_fFF_11.
(RUN_TEST_LOOP_sincos): Replace with RUN_TEST_LOOP_fFF_11.
(sincos_test_data): Change element type to struct
test_fFF_11_data. Use TEST_fFF_11 instead of TEST_extra.
(sincos_test): Use RUN_TEST_LOOP_fFF_11 instead of
RUN_TEST_LOOP_sincos.
* math/README.libm-test: Don't mention special handling of
individual functions.
* sysdeps/i386/fpu/libm-test-ulps: Update names of sincos tests.
* sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
* sysdeps/s390/fpu/libm-test-ulps: Likewise.
* sysdeps/sh/sh4/fpu/libm-test-ulps: Likewise.
* sysdeps/sparc/fpu/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* math/gen-libm-test.pl (get_variable): Remove function. * math/gen-libm-test.pl (get_variable): Remove function.
(parse_args): Don't show pointer parameters to call in test (parse_args): Don't show pointer parameters to call in test
names. Use "extra output N" in test names for extra outputs names. Use "extra output N" in test names for extra outputs

View File

@ -103,8 +103,3 @@ The accepted parameter types are:
- "L" for long long int. - "L" for long long int.
- "F" for the address of a FLOAT (only as input parameter) - "F" for the address of a FLOAT (only as input parameter)
- "I" for the address of an int (only as input parameter) - "I" for the address of an int (only as input parameter)
Some functions need special handling. For example gamma sets the
global variable signgam and frexp takes an argument to &int. This
special treatment is coded in "gen-libm-test.pl" and used while
parsing "libm-test.inc".

View File

@ -156,33 +156,6 @@ sub show_exceptions {
} }
} }
# Treat some functions especially.
# Currently only sincos needs extra treatment.
sub special_functions {
my ($file, $args) = @_;
my (@args, $str, $test, $cline);
@args = split /,\s*/, $args;
unless ($args[0] =~ /sincos/) {
die ("Don't know how to handle $args[0] extra.");
}
$cline = " { $args[1]";
$str = 'sincos (' . &beautify ($args[1]) . ', &sin_res, &cos_res)';
# handle sin
$test = $str . ' puts ' . &beautify ($args[2]) . ' in sin_res';
$cline .= ", \"$test\", $args[2]";
# handle cos
$test = $str . ' puts ' . &beautify ($args[3]) . ' in cos_res';
$cline .= ", \"$test\", $args[3]";
$cline .= show_exceptions ($args[4]);
$cline .= " },\n";
print $file $cline;
}
# Parse the arguments to TEST_x_y # Parse the arguments to TEST_x_y
sub parse_args { sub parse_args {
my ($file, $descr, $fct, $args) = @_; my ($file, $descr, $fct, $args) = @_;
@ -191,10 +164,6 @@ sub parse_args {
my (@special); my (@special);
my ($call); my ($call);
if ($descr eq 'extra') {
&special_functions ($file, $args);
return;
}
($descr_args, $descr_res) = split /_/,$descr, 2; ($descr_args, $descr_res) = split /_/,$descr, 2;
@args = split /,\s*/, $args; @args = split /,\s*/, $args;
@ -284,15 +253,14 @@ sub parse_args {
next; next;
} }
} }
$cline .= ", ";
@descr = split //,$descr_res; @descr = split //,$descr_res;
foreach (@descr) { foreach (@descr) {
if ($_ =~ /b|f|i|l|L/ ) { if ($_ =~ /b|f|i|l|L/ ) {
$cline .= $args[$current_arg]; $cline .= ", $args[$current_arg]";
$current_arg++; $current_arg++;
} elsif ($_ eq 'c') { } elsif ($_ eq 'c') {
$cline .= "$args[$current_arg], $args[$current_arg+1]"; $cline .= ", $args[$current_arg], $args[$current_arg+1]";
$current_arg += 2; $current_arg += 2;
} elsif ($_ eq '1') { } elsif ($_ eq '1') {
push @special, $args[$current_arg]; push @special, $args[$current_arg];

View File

@ -1053,14 +1053,17 @@ struct test_f_L_data
long long int expected; long long int expected;
int exceptions; int exceptions;
}; };
struct test_sincos_data struct test_fFF_11_data
{ {
const char *test_name;
FLOAT arg; FLOAT arg;
const char *test_name_sin;
FLOAT expected_sin;
const char *test_name_cos;
FLOAT expected_cos;
int exceptions; int exceptions;
const char *extra1_name;
int extra1_test;
FLOAT extra1_expected;
const char *extra2_name;
int extra2_test;
FLOAT extra2_expected;
}; };
/* Set the rounding mode, or restore the saved value. */ /* Set the rounding mode, or restore the saved value. */
@ -1319,26 +1322,31 @@ struct test_sincos_data
RUN_TEST_f_L ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \ RUN_TEST_f_L ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \
(ARRAY)[i].expected, (ARRAY)[i].exceptions); \ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
ROUND_RESTORE_ ## ROUNDING_MODE ROUND_RESTORE_ ## ROUNDING_MODE
#define RUN_TEST_sincos(ARG, TEST_NAME_SIN, SIN_RES_VAR, \ #define RUN_TEST_fFF_11(TEST_NAME, FUNC_NAME, ARG, EXCEPTIONS, \
EXPECTED_SIN, TEST_NAME_COS, COS_RES_VAR, \ EXTRA1_NAME, EXTRA1_VAR, EXTRA1_TEST, \
EXPECTED_COS, EXCEPTIONS) \ EXTRA1_EXPECTED, EXTRA2_NAME, EXTRA2_VAR, \
EXTRA2_TEST, EXTRA2_EXPECTED) \
do \ do \
{ \ { \
FUNC (sincos) (ARG, &(SIN_RES_VAR), &(COS_RES_VAR)); \ FUNC (FUNC_NAME) (ARG, &(EXTRA1_VAR), &(EXTRA2_VAR)); \
check_float (TEST_NAME_SIN, SIN_RES_VAR, \ if (EXTRA1_TEST) \
EXPECTED_SIN, EXCEPTIONS); \ check_float (EXTRA1_NAME, EXTRA1_VAR, EXTRA1_EXPECTED, \
check_float (TEST_NAME_COS, COS_RES_VAR, \ EXCEPTIONS); \
EXPECTED_COS, 0); \ if (EXTRA2_TEST) \
check_float (EXTRA2_NAME, EXTRA2_VAR, EXTRA2_EXPECTED, 0); \
} \ } \
while (0) while (0)
#define RUN_TEST_LOOP_sincos(ARRAY, ROUNDING_MODE, SIN_RES_VAR, \ #define RUN_TEST_LOOP_fFF_11(FUNC_NAME, ARRAY, ROUNDING_MODE, \
COS_RES_VAR) \ EXTRA1_VAR, EXTRA2_VAR) \
IF_ROUND_INIT_ ## ROUNDING_MODE \ IF_ROUND_INIT_ ## ROUNDING_MODE \
for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
RUN_TEST_sincos ((ARRAY)[i].arg, (ARRAY)[i].test_name_sin, \ RUN_TEST_fFF_11 ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \
SIN_RES_VAR, (ARRAY)[i].expected_sin, \ (ARRAY)[i].exceptions, (ARRAY)[i].extra1_name, \
(ARRAY)[i].test_name_cos, COS_RES_VAR, \ EXTRA1_VAR, (ARRAY)[i].extra1_test, \
(ARRAY)[i].expected_cos, (ARRAY)[i].exceptions); \ (ARRAY)[i].extra1_expected, \
(ARRAY)[i].extra2_name, EXTRA2_VAR, \
(ARRAY)[i].extra2_test, \
(ARRAY)[i].extra2_expected); \
ROUND_RESTORE_ ## ROUNDING_MODE ROUND_RESTORE_ ## ROUNDING_MODE
@ -13394,16 +13402,15 @@ sin_test_upward (void)
} }
static const struct test_sincos_data sincos_test_data[] = static const struct test_fFF_11_data sincos_test_data[] =
{ {
START_DATA (sincos), START_DATA (sincos),
/* sincos is treated differently because it returns void. */ TEST_fFF_11 (sincos, 0, 0, 1),
TEST_extra (sincos, 0, 0, 1),
TEST_extra (sincos, minus_zero, minus_zero, 1), TEST_fFF_11 (sincos, minus_zero, minus_zero, 1),
TEST_extra (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION), TEST_fFF_11 (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
TEST_extra (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION), TEST_fFF_11 (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
TEST_extra (sincos, qnan_value, qnan_value, qnan_value), TEST_fFF_11 (sincos, qnan_value, qnan_value, qnan_value),
/* The value of M_PI_2l is never exactly PI/2, and therefore the /* The value of M_PI_2l is never exactly PI/2, and therefore the
answer is never exactly zero. The answer is equal to the error answer is never exactly zero. The answer is equal to the error
@ -13411,51 +13418,51 @@ static const struct test_sincos_data sincos_test_data[] =
to each type. */ to each type. */
#ifdef TEST_FLOAT #ifdef TEST_FLOAT
/* 32-bit float. */ /* 32-bit float. */
TEST_extra (sincos, M_PI_2l, 1, -0x1.777a5cp-25L), TEST_fFF_11 (sincos, M_PI_2l, 1, -0x1.777a5cp-25L),
#endif #endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53) #if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53)
/* 64-bit double or 64-bit long double. */ /* 64-bit double or 64-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, 0x1.1a62633145c07p-54L), TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.1a62633145c07p-54L),
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64
/* 96-bit long double. */ /* 96-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, -0xe.ce675d1fc8f8cbbp-69L), TEST_fFF_11 (sincos, M_PI_2l, 1, -0xe.ce675d1fc8f8cbbp-69L),
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106
/* 128-bit IBM long double. */ /* 128-bit IBM long double. */
TEST_extra (sincos, M_PI_2l, 1, 0x1.c1cd129024e088a67cc74020bcp-107L), TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.c1cd129024e088a67cc74020bcp-107L),
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113 #if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113
/* 128-bit long double. */ /* 128-bit long double. */
TEST_extra (sincos, M_PI_2l, 1, 0x1.cd129024e088a67cc74020bbea64p-115L), TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.cd129024e088a67cc74020bbea64p-115L),
#endif #endif
TEST_extra (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L), TEST_fFF_11 (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L),
TEST_extra (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5), TEST_fFF_11 (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5),
TEST_extra (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L), TEST_fFF_11 (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L),
TEST_extra (sincos, 0x1p65, -0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L), TEST_fFF_11 (sincos, 0x1p65, -0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L),
TEST_extra (sincos, -0x1p65, 0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L), TEST_fFF_11 (sincos, -0x1p65, 0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L),
#ifdef TEST_DOUBLE #ifdef TEST_DOUBLE
TEST_extra (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473), TEST_fFF_11 (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473),
#endif #endif
#ifndef TEST_FLOAT #ifndef TEST_FLOAT
TEST_extra (sincos, 1e22, -0.8522008497671888017727058937530293682618L, 0.5232147853951389454975944733847094921409L), TEST_fFF_11 (sincos, 1e22, -0.8522008497671888017727058937530293682618L, 0.5232147853951389454975944733847094921409L),
TEST_extra (sincos, 0x1p1023, 0.5631277798508840134529434079444683477104L, -0.826369834614147994500785680811743734805L), TEST_fFF_11 (sincos, 0x1p1023, 0.5631277798508840134529434079444683477104L, -0.826369834614147994500785680811743734805L),
#endif #endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 #if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
TEST_extra (sincos, 0x1p16383L, 0.3893629985894208126948115852610595405563L, 0.9210843909921906206874509522505756251609L), TEST_fFF_11 (sincos, 0x1p16383L, 0.3893629985894208126948115852610595405563L, 0.9210843909921906206874509522505756251609L),
#endif #endif
TEST_extra (sincos, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L, -9.25879022854837867303861764107414946730833e-01L), TEST_fFF_11 (sincos, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L, -9.25879022854837867303861764107414946730833e-01L),
TEST_extra (sincos, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L, 7.81914638714960072263910298466369236613162e-01L), TEST_fFF_11 (sincos, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L, 7.81914638714960072263910298466369236613162e-01L),
TEST_extra (sincos, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L, 9.98819362551949040703862043664101081064641e-01L), TEST_fFF_11 (sincos, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L, 9.98819362551949040703862043664101081064641e-01L),
TEST_extra (sincos, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L, 8.53021039830304158051791467692161107353094e-01L), TEST_fFF_11 (sincos, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L, 8.53021039830304158051791467692161107353094e-01L),
TEST_extra (sincos, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L, 8.68095904660550604334592502063501320395739e-01L), TEST_fFF_11 (sincos, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L, 8.68095904660550604334592502063501320395739e-01L),
TEST_extra (sincos, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L, -1.65568979490578758865468278195361551113358e-01L), TEST_fFF_11 (sincos, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L, -1.65568979490578758865468278195361551113358e-01L),
END_DATA (sincos) END_DATA (sincos)
}; };
@ -13465,7 +13472,7 @@ sincos_test (void)
FLOAT sin_res, cos_res; FLOAT sin_res, cos_res;
START (sincos); START (sincos);
RUN_TEST_LOOP_sincos (sincos_test_data, , sin_res, cos_res); RUN_TEST_LOOP_fFF_11 (sincos, sincos_test_data, , sin_res, cos_res);
END (sincos); END (sincos);
} }

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/aarch64/libm-test-ulps: Update names of sincos tests.
2013-05-16 Maciej W. Rozycki <macro@codesourcery.com> 2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
[BZ #15442] [BZ #15442]

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/alpha/fpu/libm-test-ulps: Update names of sincos tests.
2013-05-16 Maciej W. Rozycki <macro@codesourcery.com> 2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
[BZ #15442] [BZ #15442]

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/libm-test-ulps: Update names of sincos tests.
2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com> 2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/unix/sysv/linux/arm/bits/atomic.h: Add missing #include * sysdeps/unix/sysv/linux/arm/bits/atomic.h: Add missing #include

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/hppa/fpu/libm-test-ulps: Update names of sincos tests.
2013-05-15 Carlos O'Donell <carlos@redhat.com> 2013-05-15 Carlos O'Donell <carlos@redhat.com>
* sysdeps/hppa/fpu/libm-test-ulps: Remove old values for ceil, floor, * sysdeps/hppa/fpu/libm-test-ulps: Remove old values for ceil, floor,

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/ia64/fpu/libm-test-ulps: Update names of sincos tests.
2013-03-12 Mike Frysinger <vapier@gentoo.org> 2013-03-12 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL_DECL): Add * sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL_DECL): Add

View File

@ -1,3 +1,9 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/m68k/coldfire/fpu/libm-test-ulps: Update names of sincos
tests.
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Likewise.
2013-04-11 Andreas Schwab <schwab@suse.de> 2013-04-11 Andreas Schwab <schwab@suse.de>
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/microblaze/libm-test-ulps: Update names of sincos tests.
2013-03-28 David Holsgrove <david.holsgrove@xilinx.com> 2013-03-28 David Holsgrove <david.holsgrove@xilinx.com>
* sysdeps/microblaze/Implies: New file. * sysdeps/microblaze/Implies: New file.

View File

@ -1,3 +1,9 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/mips32/libm-test-ulps: Update names of sincos
tests.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
2013-05-16 Maciej W. Rozycki <macro@codesourcery.com> 2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
[BZ #15442] [BZ #15442]

View File

@ -1,3 +1,8 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/nofpu/libm-test-ulps: Update names of sincos
tests.
2013-05-16 Maciej W. Rozycki <macro@codesourcery.com> 2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
[BZ #15442] [BZ #15442]

View File

@ -1,3 +1,7 @@
2013-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/tile/libm-test-ulps: Update names of sincos tests.
2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com> 2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/tile/tilegx/memusage.h: Add missing #include <stdint.h> due * sysdeps/tile/tilegx/memusage.h: Add missing #include <stdint.h> due

View File

@ -2998,21 +2998,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -2676,21 +2676,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -1518,21 +1518,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -3973,25 +3973,25 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -616,22 +616,22 @@ ildouble: 1
ldouble: 1 ldouble: 1
# sincos # sincos
Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res": Test "sincos (0.80190127184058835) extra output 2":
double: 1 double: 1
idouble: 1 idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (pi/2) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
@ -699,16 +699,16 @@ double: 1
idouble: 1 idouble: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "y1 (1.5) == -0.412308626973911295952829820633445323":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "y1 (10.0) == 0.249015424206953883923283474663222803": Test "y1 (10.0) == 0.249015424206953883923283474663222803":
double: 3 double: 3
float: 1 float: 1
idouble: 3 idouble: 3
ifloat: 1 ifloat: 1
Test "y1 (1.5) == -0.412308626973911295952829820633445323";
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "y1 (2.0) == -0.107032431540937546888370772277476637": Test "y1 (2.0) == -0.107032431540937546888370772277476637":
double: 1 double: 1
float: 1 float: 1
@ -758,16 +758,16 @@ double: 1
idouble: 1 idouble: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "yn (1, 10.0) == 0.249015424206953883923283474663222803": Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
double: 3 double: 3
float: 1 float: 1
idouble: 3 idouble: 3
ifloat: 1 ifloat: 1
Test "yn (1, 1.5) == -0.412308626973911295952829820633445323";
float: 1
ifloat: 1
ldouble: 1
ildouble: 1
Test "yn (1, 2.0) == -0.107032431540937546888370772277476637": Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
double: 1 double: 1
float: 1 float: 1

View File

@ -446,15 +446,15 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -5701,21 +5701,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": Test "sincos (pi/2) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1

View File

@ -1210,21 +1210,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -1518,21 +1518,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -2510,21 +2510,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -2114,21 +2114,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -1271,21 +1271,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -5863,31 +5863,31 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (-0x1p65, &sin_res, &cos_res) puts 0.047183876212354673805106149805700013943218 in sin_res": Test "sincos (-0x1p65) extra output 1":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1.fffff8p+127, &sin_res, &cos_res) puts 4.85786063130487339701113680434728152037092e-02 in sin_res": Test "sincos (0x1.fffff8p+127) extra output 1":
float: 1 float: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 6.23385512955870240370428801097126489001833e-01 in sin_res": Test "sincos (0x1p+127) extra output 1":
float: 1 float: 1
Test "sincos (0x1p+50, &sin_res, &cos_res) puts 8.68095904660550604334592502063501320395739e-01 in cos_res": Test "sincos (0x1p+50) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p65, &sin_res, &cos_res) puts -0.047183876212354673805106149805700013943218 in sin_res": Test "sincos (0x1p65) extra output 1":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
# sinh # sinh
Test "sinh (0.75) == 0.822316731935829980703661634446913849": Test "sinh (0.75) == 0.822316731935829980703661634446913849":

View File

@ -6289,28 +6289,28 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": Test "sincos (pi/2) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -2774,21 +2774,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -563,27 +563,27 @@ idouble: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res": Test "sincos (0.7) extra output 2":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1 double: 1
float: 0.5 float: 0.5
idouble: 1 idouble: 1
ifloat: 0.5 ifloat: 0.5
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res": Test "sincos (pi/2) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
double: 0.2758 double: 0.2758
float: 0.3667 float: 0.3667
idouble: 0.2758 idouble: 0.2758
ifloat: 0.3667 ifloat: 0.3667
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res": Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -8132,21 +8132,21 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res": Test "sincos (0x1p+120) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res": Test "sincos (0x1p+127) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1

View File

@ -6936,22 +6936,22 @@ float: 1
ifloat: 1 ifloat: 1
# sincos # sincos
Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res": Test "sincos (0.80190127184058835) extra output 2":
double: 1 double: 1
idouble: 1 idouble: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
double: 1 double: 1
float: 1 float: 1
idouble: 1 idouble: 1
ifloat: 1 ifloat: 1
ildouble: 1 ildouble: 1
ldouble: 1 ldouble: 1
Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (pi/6) extra output 2":
float: 1 float: 1
ifloat: 1 ifloat: 1