From: Wolfgang J. <wje...@us...> - 2004-04-20 22:09:04
|
Update of /cvsroot/maxima/maxima/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4953 Modified Files: sin.lisp Log Message: (chebyf): Handle the integrand a*t^r1*(c2*t^q)^r2 (i.e., c1=0). Index: sin.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/sin.lisp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- sin.lisp 11 Mar 2004 04:55:24 -0000 1.5 +++ sin.lisp 20 Apr 2004 22:08:17 -0000 1.6 @@ -585,6 +585,7 @@ (DEFUN SUBST41 (EXP A B) (SUBST4 EXP)) +;; exp = a*t^r1*(c1+c2*t^q)^r2, where var = t. (DEFUN CHEBYF (EXP VAR) (PROG (R1 R2 D1 D2 N1 N2 W Q) (COND ((NOT (SETQ W @@ -601,6 +602,15 @@ ((COEFFTT) (A FREEVAR))) NIL))) (RETURN NIL))) + (when (zerop1 (cdr (sassq 'c1 w #'nill))) + (return + (mul* + ;; This factor is locally constant as long as t and + ;; c2*t^q avoid log's branch cut. + (subliss w '((mtimes) a ((mexpt) var ((mtimes) -1 q r2)) + ((mexpt) ((mtimes) c2 ((mexpt) var q)) r2))) + (integrator + (subliss w '((mexpt) var ((mplus) r1 ((mtimes) q r2)))) var)))) (SETQ Q (CDR (SASSQ 'Q W 'NILL))) (SETQ W |