Lines Matching refs:inf

10 #   sign : +,-,NaN,+inf,-inf
140 $round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero' or 'trunc'
194 if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc)$/)
386 if ($key =~ /^trap_(inf|nan)\z/)
510 # handle '+inf', '-inf' first
511 if ($wanted =~ /^[+-]?inf$/)
514 $self->{sign} = $wanted; $self->{sign} = '+inf' if $self->{sign} eq 'inf';
633 # create a bigint '+-inf', if given a BigInt, set it to '+-inf'
636 my $sign = shift; $sign = '+' if !defined $sign || $sign !~ /^-(inf)?$/;
646 Carp::croak ("Tried to set $self to +-inf in $class\::binfn()");
660 $sign = $sign . 'inf' if $sign !~ /inf$/; # - => -inf
766 return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
767 return 'inf'; # +inf
783 return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
784 return 'inf'; # +inf
806 # return the sign of the number: +/-/-inf/+inf/NaN
871 if ($r !~ /^(even|odd|\+inf|\-inf|zero|trunc)$/)
931 if ($r !~ /^(even|odd|\+inf|\-inf|zero|trunc)$/)
1000 # handle +-inf and NaN
1002 return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
1003 return +1 if $x->{sign} eq '+inf';
1004 return -1 if $x->{sign} eq '-inf';
1005 return -1 if $y->{sign} eq '+inf';
1045 # handle +-inf and NaN
1047 return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
1048 return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
1072 # inf and NaN handling
1077 # inf handling
1078 if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
1080 # +inf++inf or -inf+-inf => same, rest is NaN
1084 # +-inf + something => +inf
1085 # something +-inf => +-inf
1086 $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
1168 # inf, nan handling etc
1185 return $x->badd($self->bone('-'),@r) unless $x->{sign} eq '+'; # inf/NaN
1217 # inf, -inf, NaN, <0 => NaN
1296 return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
1310 # return true if arg (BINT or num_str) is +-inf
1315 $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
1316 $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-'
1319 $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity
1329 return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
1338 return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
1347 return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
1356 $x->{sign} =~ /^\+/ ? 1 : 0; # +inf is also positive, but NaN not
1364 $x->{sign} =~ /^-/ ? 1 : 0; # -inf is also negative, but NaN not
1373 $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
1395 # inf handling
1396 if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
1399 # result will always be +-inf:
1400 # +inf * +/+inf => +inf, -inf * -/-inf => +inf
1401 # +inf * -/-inf => -inf, -inf * +/+inf => -inf
1423 # helper function that handles +-inf cases for bdiv()/bmod() to reuse code
1431 # +-inf / +-inf == NaN, reminder also NaN
1432 if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
1436 # x / +-inf => 0, remainder x (works even if x == 0)
1437 if ($y->{sign} =~ /^[+-]inf$/)
1443 # 5 / 0 => +inf, -6 / 0 => -inf
1444 # +inf / 0 = inf, inf, and -inf / 0 => -inf, -inf
1446 # exception: -inf / 0 has remainder -inf, not inf
1449 # +-inf / 0 => special case for -inf
1459 # last case: +-inf / ordinary number
1460 my $sign = '+inf';
1461 $sign = '-inf' if substr($x->{sign},0,1) ne $y->{sign};
1585 if ($y->{sign} ne '+' # -, NaN, +inf, -inf
1587 || $x->{sign} !~ /^[+-]$/ # or num NaN, inf, -inf
1612 return $num->bnan() if ($mod->{sign} ne '+' # NaN, - , -inf, +inf
1618 # i.e., if it's NaN, +inf, or -inf...
1642 return $x if $x->{sign} eq '+inf'; # inf => inf
1669 return $x if $x->{sign} =~ /^[+-]inf$/; # -inf/+inf ** x
1677 # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf
1916 return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc
1928 return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
1929 return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
1954 # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
1974 my $s = $x->{sign}; $s =~ s/^[+-]//; # NaN, -inf,+inf => NaN or inf
1989 # for NaN, +inf, -inf: keep the sign
2069 return $x if $x->{sign} !~ /^[+-]$/; # inf, NaN
2113 ($mode eq '+inf') && ($x->{sign} eq '-') ||
2114 ($mode eq '-inf') && ($x->{sign} eq '+') ||
2186 return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
2198 return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
2582 $inf = Math::BigInt->binf(); # create a +inf
2583 $inf = Math::BigInt->binf('-'); # create a -inf
2598 $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+')
2616 $x->binf(); # set $x to inf
2617 $x->binf('-'); # set $x to -inf
2790 trap_inf If true, traps creation of +inf/-inf via croak()
2954 $x->is_inf(); # true if +inf
2955 $x->is_inf('-'); # true if -inf (sign is default '+')
2969 C<NaN> is neither positive nor negative, while C<+inf> counts as positive, and
2970 C<-inf> is negative. A C<zero> is positive.
2985 The return true when the argument satisfies the condition. C<NaN>, C<+inf>,
2986 C<-inf> are not integers and are neither odd nor even.
2988 In BigInt, all numbers except C<NaN>, C<+inf> and C<-inf> are integers.
3007 Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN.
3019 Negate the number, e.g. change the sign between '+' and '-', or between '+inf'
3020 and '-inf', respectively. Does nothing for NaN or zero.
3027 and from '-inf' to '+inf', respectively. Does nothing for NaN or positive
3343 =item '+inf'
3349 =item '-inf'
3553 'even', 'odd', '+inf', '-inf', 'zero', 'trunc'
3625 The sign is either '+', '-', 'NaN', '+inf' or '-inf' and stored seperately.
3628 numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
3629 minus infinity. You will get '+inf' when dividing a positive number by 0, and
3630 '-inf' when dividing any negative number by 0.
3645 Currently, for BigInts C<$e> is always 0, except for NaN, +inf and -inf,
4073 0 / inf = 0, 0 0 * inf + 0 = 0
4074 0 /-inf = 0, 0 0 * -inf + 0 = 0
4075 5 / inf = 0, 5 0 * inf + 5 = 5
4076 5 /-inf = 0, 5 0 * -inf + 5 = 5
4077 -5/ inf = 0, -5 0 * inf + -5 = -5
4078 -5/-inf = 0, -5 0 * -inf + -5 = -5
4079 inf/ 5 = inf, 0 inf * 5 + 0 = inf
4080 -inf/ 5 = -inf, 0 -inf * 5 + 0 = -inf
4081 inf/ -5 = -inf, 0 -inf * -5 + 0 = inf
4082 -inf/ -5 = inf, 0 inf * -5 + 0 = -inf
4085 inf/ inf = 1, 0 1 * inf + 0 = inf
4086 -inf/-inf = 1, 0 1 * -inf + 0 = -inf
4087 inf/-inf = -1, 0 -1 * -inf + 0 = inf
4088 -inf/ inf = -1, 0 1 * -inf + 0 = -inf
4089 8/ 0 = inf, 8 inf * 0 + 8 = 8
4090 inf/ 0 = inf, inf inf * 0 + inf = inf
4098 -inf/ 0 = -inf, -inf -inf * 0 + inf = -inf
4099 -8/ 0 = -inf, -8 -inf * 0 + 8 = -8