From: SourceForge.net <no...@so...> - 2004-05-04 16:16:50
|
Bugs item #947808, was opened at 2004-05-04 12:15 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=947808&group_id=4933 Category: None Group: None Status: Open Resolution: None Priority: 3 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 stack-overflows 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? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=947808&group_id=4933 |
From: SourceForge.net <no...@so...> - 2006-07-29 06:27:45
|
Bugs item #947808, was opened at 2004-05-04 10:15 Message generated for change (Comment added) made by robert_dodier 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: Open Resolution: None Priority: 3 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 stack-overflows 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: Robert Dodier (robert_dodier) Date: 2006-07-29 00: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 |
From: SourceForge.net <no...@so...> - 2010-04-27 23:13:41
|
Bugs item #947808, was opened at 2004-05-04 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 stack-overflows 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: 2010-04-28 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: 2006-07-29 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 |