From: SourceForge.net <noreply@so...>  20100427 23:13:41

Bugs item #947808, was opened at 20040504 18:15 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=947808&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Lisp Core  Simplification Group: None >Status: Closed >Resolution: Fixed Priority: 3 Private: No Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: logcontract and ratfac Initial Comment: logcontract(2*log(x+1)) => log((x+1)^2) but logcontract(2*log(x+1)+1) => log(x^2+2*x+1)+1 That is, it performs a ratsimp only in the second case. logcontract is documented to perform the ratsimp, in fact. But in general, it doesn't seem like a good idea. Consider, e.g. logcontract(1000*log(x+1)+log(x)). This stackoverflows since it expands out the result, but it could just as well return log((x+1)^1000*x). There is a workaround, which is to bind ratfac to true, which leaves things in factored form. Perhaps logcontract should always have ratfac:true?  >Comment By: Dieter Kaiser (crategus) Date: 20100428 01:13 Message: As suggested in this bug report binding the option variable $ratfac in lgcplus to TRUE when calling sratsimp. This maintains expressions as fully factored as possible without calling factor. In general the results of logcontract are more simple. The examples of this bug report give: (%i2) logcontract(2*log(x+1)+1); (%o2) log((x+1)^2)+1 (%i3) logcontract(1000*log(x+1)+log(x)); (%o3) log(x*(x+1)^1000) Closing this bug report as fixed. Dieter Kaiser  Comment By: Robert Dodier (robert_dodier) Date: 20060729 08:27 Message: Logged In: YES user_id=501686 Same behavior in 5.9.3cvs.  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=947808&group_id=4933 