Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo
Close
From: SourceForge.net <noreply@so...>  20081030 17:23:30

Bugs item #2210087, was opened at 20081030 18:23 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=2210087&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: Includes proposed fix Status: Open Resolution: None Priority: 5 Private: No Submitted By: Dieter Kaiser (crategus) Assigned to: Nobody/Anonymous (nobody) Summary: integrate((x+1)^2.0,x) loops endlessly Initial Comment: Maxima can integrate expressions like (x+1)^n where n is an integer or a floating point representation of an integer, e.g. integrate((x+1)^8.0,x). But this does not work for the floating point numbers 2.0, 3.0, ..., 5.0 as an exponent. Maxima loops endlessly. The reason is the following code in DIFFDIV (the bug is marked): (cond ((and (mexptp exp) (mplusp (cadr exp)) (integerp2 (caddr exp)) ; here the bug (< (caddr exp) 6) (> (caddr exp) 0)) (return (integrator (expandexpt (cadr exp) (caddr exp)) var)))) The function INTEGERP2 checks for an integer or an floating point representation of an integer. If the value is between 0 and 6 the expression is expanded with the function EXPANDEXPT and the integrator is called again. But this does not work with a floating point representation of an integer, because for this case the expression is not expanded by the function EXPANDEXPT. The integrator gets again the same expression and loops endlessly. To possible corrections: 1. Convert the floating point exponent to an integer and then call EXPANDEXPT. 2. Do not test for a floating point respresentation and change INTEGERP2 to INTEGERP. Now for a floating point exponent betweeen 0.0 and 6.0 the result is given in the form (1/n)*(x+1)^(n+1) where 1/n and (n+1) are floating point numbers. I think solution 2 is better, because we get the results with the expected floating point numbers. Dieter Kaiser  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=2210087&group_id=4933 
From: SourceForge.net <noreply@so...>  20081118 13:04:01

Bugs item #2210087, was opened at 20081030 13:23 Message generated for change (Comment added) made by dgildea You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=2210087&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: Includes proposed fix >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Dieter Kaiser (crategus) >Assigned to: Dan Gildea (dgildea) Summary: integrate((x+1)^2.0,x) loops endlessly Initial Comment: Maxima can integrate expressions like (x+1)^n where n is an integer or a floating point representation of an integer, e.g. integrate((x+1)^8.0,x). But this does not work for the floating point numbers 2.0, 3.0, ..., 5.0 as an exponent. Maxima loops endlessly. The reason is the following code in DIFFDIV (the bug is marked): (cond ((and (mexptp exp) (mplusp (cadr exp)) (integerp2 (caddr exp)) ; here the bug (< (caddr exp) 6) (> (caddr exp) 0)) (return (integrator (expandexpt (cadr exp) (caddr exp)) var)))) The function INTEGERP2 checks for an integer or an floating point representation of an integer. If the value is between 0 and 6 the expression is expanded with the function EXPANDEXPT and the integrator is called again. But this does not work with a floating point representation of an integer, because for this case the expression is not expanded by the function EXPANDEXPT. The integrator gets again the same expression and loops endlessly. To possible corrections: 1. Convert the floating point exponent to an integer and then call EXPANDEXPT. 2. Do not test for a floating point respresentation and change INTEGERP2 to INTEGERP. Now for a floating point exponent betweeen 0.0 and 6.0 the result is given in the form (1/n)*(x+1)^(n+1) where 1/n and (n+1) are floating point numbers. I think solution 2 is better, because we get the results with the expected floating point numbers. Dieter Kaiser  >Comment By: Dan Gildea (dgildea) Date: 20081118 08:03 Message: Applied solution 2 in sin.lisp rev 1.33.  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=2210087&group_id=4933 