From: SourceForge.net <noreply@so...>  20080909 13:21:12

Bugs item #1374700, was opened at 20051206 13:41 Message generated for change (Comment added) made by rtoy You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1374700&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  Integration Group: None >Status: Closed Resolution: Rejected Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: integrate((1+tan(x)^2)/tan(x),x); Initial Comment: Nonreal result  >Comment By: Raymond Toy (rtoy) Date: 20080909 09:21 Message: Yes, I found that. I guess every one is in agreement that log(sin(x)^21) is ok. So, I'll close this bug report.  Comment By: Dan Gildea (dgildea) Date: 20080908 10:02 Message: Logged In: YES user_id=1797506 Originator: NO The variable b was changed to *b* in sin.lisp rev 1.19.  Comment By: Raymond Toy (rtoy) Date: 20080908 09:30 Message: Logged In: YES user_id=28849 Originator: NO Yes, you are right. Still, for real values of x, it is a bit surprising to see maxima give a complex result in log(sin(x)^21)/2, but of course once you substitute actual integral limits, the complex part goes away. But we should fix the b vs bb issue in schatc.lisp in any case. Or at least make sure b is not special in schatc. Or change b to *b* in sin.lisp. Or something.  Comment By: Dan Gildea (dgildea) Date: 20080903 20:43 Message: Logged In: YES user_id=1797506 Originator: NO Is this really a bug? log(sin(x))  log(sin(x)^21)/2 seems to differ from log(tan(x)) by a constant within each sheet. log(tan(x)) is also complex in general.  Comment By: Raymond Toy (rtoy) Date: 20060831 19:46 Message: Logged In: YES user_id=28849 Yes, replacing all occurrences of b in schatc.lisp with bb makes clisp behave like cmucl. But we can see now how to get log(tan(x)) as the answer. We can move case 5 before case 4. Not exactly sure what impact that will have on the algorithm.  Comment By: Raymond Toy (rtoy) Date: 20060831 19:41 Message: Logged In: YES user_id=28849 FWIW, maxima uses trigint to do this integral, and when it gets to case 4, it tries to match the integrand. With cmucl, it matches, but with clisp it doesn't. In rat1, b is NIL in clisp, but is 'cos* in cmucl. b is declared special, and is set to 'cos* in case 4, just before the call to m2, which calls rat1. But note that coeffpt in schatc.lisp also uses the variable b. There is probably some confusion with b here. I am guessing the b in coeffpt is not the global special variablle b in sin.lisp.  Comment By: Raymond Toy (rtoy) Date: 20060831 16:40 Message: Logged In: YES user_id=28849 Maxima 5.9.3.99rc2 and cmucl 200609 says log(sin(x))  log(sin(x)^21)/2 But the same maxima with clisp 2.35 says log(tan(x)). I don't know why.  Comment By: Robert Dodier (robert_dodier) Date: 20060814 22:46 Message: Logged In: YES user_id=501686 Maxima 5.9.3.99rc1 / Clisp 2.38: integrate((1+tan(x)^2)/tan(x),x); => log(tan(x)) which seems right. Maybe if someone else wants to weigh in here. If someone else agrees this result is OK, we can close this report.  Comment By: Raymond Toy (rtoy) Date: 20060213 13:07 Message: Logged In: YES user_id=28849 This integral is transformed to cos(x)/sin(x)*(sin(x)^2/cos(x)^2+1). Then maxima uses the substitution y=sin(x) to get 1/y*(y^2/(1y^2)+1. However: integrate(1/y*(y^2/(1y^2)+1),y) > log(y)log(y^21)/2. But integrate(expand(1/y*(y^2/(1y^2)+1)),y) > log(y)log(1y^2)/2. The former is wrong for our integration problem; the latter would produce the desired answer.  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1374700&group_id=4933 