# Interpreting DirectedInfinity

I am trying to calculate the right-handed limit of the following function using:

Q = Limit[Log[(H*(1 - c*g))/(1 + c - c*g)]/(g*(1 - c*g)),g -> 0, Direction -> -1,Assumptions -> {0 < c < 1, PositiveReals}];


Which gives:

DirectedInfinity[Log[H/(1 + c)]]


Can this be interpreted as infinity? I am very confused as to what DirectedInfinity means, even after reading previous posts on the matter.

Any help would be greatly appreciated!

• In the complex plane, a ray can go off to infinity at any angle. DirectedInfinity[z] indicates something that approached infinity in the direction of the angle Arg[z]. Jul 26, 2022 at 5:20
• It is wrong if H = I or H < 1 + c. Try the limit with Assumptions -> {0 < c < 1, H > 1 + c} instead. (Note: I don't think PositiveReals is a valid assumption. PositiveReals represents the set of positive real numbers. An assumption should be boolean.) Jul 26, 2022 at 5:32
• You're welcome. Another way to discuss the limit: DirectedInfinity does mean the limit is infinite (though watch out for H == 1 + c). By "infinity," I assumed you meant positive infinity, which is what my US calc. students always mean. That's why I would say "it's infinite" instead of "it's infinity." And Infinity in Mathematica means positive infinity. But whether the limit it Infinity or -Infinity (or some complex infinity) depends on H. Jul 26, 2022 at 5:50
• @MichaelE2 Your comments would be worth memorializing in an answer, in my opinion. We have had a few questions on DirectedInfinity lately so it would be good to have a reference. I also like your last comment in particular. Jul 26, 2022 at 12:45
• ...and just to complete @Michael's notes, since we're already here: note that Infinity itself is internally represented as DirectedInfinity[1], which does straightforwardly interpret as "infinity in the direction of the complex number $1$". We also have ComplexInfinity (internally, DirectedInfinity[]), where the direction is not determined at all. Jul 26, 2022 at 14:00

General discussion of DirectedInfinity

In the complex plane, a ray can go off to infinity at any angle. DirectedInfinity[z] indicates quantity that approached a ray going off to infinity in the direction of the angle Arg[z]. To add J.M. further explanation, Infinity is short for DirectedInfinity[1], infinity in direction of the complex number 1. Likewise -Infinity is DirectedInfinity[-1] and z * Infinity is DirectedInfinity[z] (see also the second example below). Finally ComplexInfinity is DirectedInfinity[] with no direction specified; it usually indicates that the quantity is approaching infinity along different angles. For instance in 1/0, the argument-angle of the denominator cannot be determined.

Another way to discuss the limit: DirectedInfinity does mean the limit is infinite (see the first example below for a pitfall). By "infinity," I assumed the OP meant positive infinity, which is what my US calc. students always mean. Also Infinity in Mathematica means positive infinity. That's why I would say "it's infinite" instead of "it's infinity." Whether the OP's limit is Infinity or -Infinity (or some complex infinity) depends on H.

Examples with potentially unexpected outputs

1. Like a lot of results in Mathematica, the OP's limit is only generically true. One needs to beware values of H or c for which Log[H/(1 + c)] becomes 0 and has an undefined argument-angle. DirectedInfinity[0] becomes ComplexInfinity, so you get an answer without an error message; but the answer is wrong:

DirectedInfinity[Log[H/(1 + c)]] /. H -> 1 + c
Limit[Log[(H*(1 - c*g))/(1 + c - c*g)]/(g*(1 - c*g)), g -> 0,
Direction -> -1, Assumptions -> {0 < c < 1, H == 1 + c}]
(*
ComplexInfinity
-((-1 + H)^2/H)
*)


2. When z is numeric, z * Infinity and DirectedInfinity[z] normalize z to z/Abs[z].

3. I cannot explain $$\log 0$$ satisfactorily: When the argument is an exact 0, the value is the limit at $$0$$. The approximate number 0. represents a number in a neighborhood of $$0$$, a positive or negative real. When the argument is 0., then the limits from either side of 0. are the same $$-\infty$$, unless you treat Log[] in the standard real-function way; however, the result of Log[0.] is Indeterminate, not -Infinity. Mathematica normally yields Indeterminate whenever there are multiple limits at point. So why Indeterminate if the limits are the same? Note that Log[0. + 0. I] is Indeterminate, too, so restricting Log[0.] to the standard real definition does not explain 0. + 0.I case.

Log[0]
Log[0.]
(*
-∞
Indeterminate
*)


Solving for infinity

This is hard -- update: harder. It doesn't seem Mathematica has been programmed to do this. For instance, suppose you wanted to deduce conditions on H or c for which OP's limit is Infinity (positive infinity).

Some first tries: Solve fails, Reduce gets it wrong.

Solve[DirectedInfinity[Log[H/(1 + c)]] == Infinity, H]


Solve::infc: The system DirectedInfinity[Log[H/(1+c)]]==∞ contains an infinite object DirectedInfinity[Log[H/(1+c)]].

Reduce[DirectedInfinity[Log[H/(1 + c)]] == Infinity, {H, c}]
(*  False  *)


You have to map DirectedInfinity to Arg and (update: exclude Arg[0]). I'm throwing the assumptions back in, but they don't help the above cases:

Reduce[
DirectedInfinity[Log[H/(1 + c)]] == Infinity &&
0 < c < 1 && H ∈ Reals /.
DirectedInfinity[z_] :> ConditionalExpression[Arg[z], z != 0],
{H, c}]
(*  (1 < H < 2 && 0 < c < -1 + H) || (H >= 2 && 0 < c < 1)  *)


This is cool, it works:

Limit[
Log[(H*(1 - c*g))/(1 + c - c*g)]/(g*(1 - c*g)),
g -> 0, Direction -> -1,
Assumptions -> Reduce[
DirectedInfinity[Log[H/(1 + c)]] == Infinity &&
0 < c < 1 && H ∈ Reals /.
DirectedInfinity[z_] :> ConditionalExpression[Arg[z], z != 0],
{H, c}]
]

(*  ∞  *)


(Note: The option GenerateConditions -> True for Limit does not generate conditions in this case.)

• In "the argument of Log[z]", does one mean z or Arg[Log[z]]? I hope I've kept the distinction clear. I used "argument-angle" at times to hopefully make clear I meant the complex-number argument. (Who invented this name, anyway?) Jul 26, 2022 at 18:12
• thank you for putting this together. (+1) Jul 26, 2022 at 18:22
• The terminological confusion is why some authors prefer to use "phase" (and thus $\operatorname{ph}(z)$) instead of "argument" (and thus $\arg(z)$), but alas, we are stuck with Arg[]. ;) Additionally: "normalize z to z/Abs[z]" is basically what Sign[z] does for complex z. ;) (In polar coordinate terms, Arg[z] is $\theta$, and Sign[z] is (effectively, excluding $0$) $\exp(i\theta)$.) (cc. @Marco) Jul 26, 2022 at 19:14
• "By "infinity," I assumed the OP meant positive infinity, which is what my US calc. students always mean" it is not that simple, as any normal textbook says: if you have limit at finite point then sure, left and right limits should be the same: 1/x in 0 does not exist, Mathematica knows that since 12.0. Or x^x, limit in 0 does exist. But when we talk about +Infinity limit, we are allowed to have an oscilation that goes to plus and minus infinity both, that means the limit is infinite without a sign. Or function can oscilate without infinity between 1 and 0, then limit does not exist. Jul 26, 2022 at 19:34
• @ВалерийЗаподовников I don't think your definitions are the same as mine. You need to state your definitions for me to follow what you're saying. There is no difference for me between infinity without a sign and +infinity. (By the limit "at" +Infinity, do you mean $\lim_{x\rightarrow+\infty} f(x)$? Or are we still talking about $\lim_{x\rightarrow c}f(x)=+\infty$?) Jul 26, 2022 at 22:05