Guest User

Untitled

a guest
May 22nd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. my $inf = 9**9**9;
  2. my $neginf = -9**9**9;
  3. my $nan = -sin(9**9**9);
  4.  
  5. sub isinf { $_[0]==9**9**9 || $_[0]==-9**9**9 }
  6. sub isnan { ! defined( $_[0] <=> 9**9**9 ) }
  7. # useful for detecting negative zero
  8. sub signbit { substr( sprintf( '%g', $_[0] ), 0, 1 ) eq '-' }
  9.  
  10. for my $num ( $inf, $neginf, $nan ) {
  11. printf("%s:tisinf: %d,tisnan: %d,tsignbit: %dn", $num, isinf($num), isnan($num), signbit($num));
  12. }
  13.  
  14. inf: isinf: 1, isnan: 0, signbit: 0
  15. -inf: isinf: 1, isnan: 0, signbit: 1
  16. nan: isinf: 0, isnan: 1, signbit: 0
  17.  
  18. print "Is NaNn" if $a eq 'nan';
  19. print "Is Infn" if $a eq 'inf';
Add Comment
Please, Sign In to add comment