#!/usr/bin/perl
# Idiom #270 Test for quiet or signaling NaN
use POSIX
qw(:nan_payload nan isnan issignaling setpayload
);
my @r = (nan, nan, 1.234);
setpayloadsig $r[1],'999';
foreach my $r1 ( @r ) {
if ( isnan $r1 ) {
issignaling($r1) ? 'signaling' : 'quiet';
} else {
printf "This is not a NaN: %s\n", $r1; }
}
IyEvdXNyL2Jpbi9wZXJsCgojIElkaW9tICMyNzAgVGVzdCBmb3IgcXVpZXQgb3Igc2lnbmFsaW5nIE5hTgoKdXNlIFBPU0lYIHF3KDpuYW5fcGF5bG9hZCBuYW4gaXNuYW4gaXNzaWduYWxpbmcgc2V0cGF5bG9hZCk7CgpteSBAciA9IChuYW4sIG5hbiwgMS4yMzQpOwoKc2V0cGF5bG9hZHNpZyAkclsxXSwnOTk5JzsKCmZvcmVhY2ggbXkgJHIxICggQHIgKSB7CiAgICBpZiAoIGlzbmFuICRyMSApIHsKICAgICAgICBwcmludGYgIlRoaXMgaXMgYSAlcyBOYU5cbiIsCiAgICAgICAgICAgIGlzc2lnbmFsaW5nKCRyMSkgPyAnc2lnbmFsaW5nJyA6ICdxdWlldCc7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ZiAiVGhpcyBpcyBub3QgYSBOYU46ICVzXG4iLCAkcjE7CiAgICB9Cn0K