Skip to content

Commit 943cb91

Browse files
committed
WIP #944 Log10(Log10(Log(Log(Log(Log10(Log10())))))) causes crash
1 parent fe31696 commit 943cb91

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

symja_android_library/matheclipse-core/src/main/java/org/matheclipse/core/builtin/ExpTrigsFunctions.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -2355,13 +2355,15 @@ public IExpr e1ObjArg(IExpr arg1) {
23552355
if (arg1.isAST(S.Underflow, 1)) {
23562356
return F.Underflow();
23572357
}
2358-
// arg1.re()^2 + arg1.im()^2
2359-
EvalEngine engine = EvalEngine.get();
2360-
IExpr temp = engine.evaluate(F.Plus(F.Sqr(arg1.re()), F.Sqr(arg1.im())));
2361-
if (temp.isOne()) {
2362-
// Log(x + I*y) == (1/2)*Log(x^2 + y^2) + I*Arg(x + I y) with Log(1) == 0
2363-
// ==> I*Arg(x + I y)
2364-
return F.Times(F.CI, F.Arg(arg1));
2358+
if (arg1.isNumericFunction()) {
2359+
// arg1.re()^2 + arg1.im()^2
2360+
EvalEngine engine = EvalEngine.get();
2361+
IExpr temp = engine.evaluate(F.Plus(F.Sqr(arg1.re()), F.Sqr(arg1.im())));
2362+
if (temp.isOne()) {
2363+
// Log(x + I*y) == (1/2)*Log(x^2 + y^2) + I*Arg(x + I y) with Log(1) == 0
2364+
// ==> I*Arg(x + I y)
2365+
return F.Times(F.CI, F.Arg(arg1));
2366+
}
23652367
}
23662368
return F.NIL;
23672369
}

0 commit comments

Comments
 (0)