1
/* THIS IS THE INTEGRATION PART OF INTSCE. IT CAN BE ALTERED,
2
TRANSLATED, AND INCORPORATED IN INTSCE LISP WHICH CONTAINS
3
THE TOP-LEVEL ROUTINE THAT DOES THE PATTERN MATCHING. */
5
SCEINT(M,N):=BLOCK([DEN,NUM],MODEDECLARE([M,N],INTEGER),
7
NUM: IF M=0 THEN (IF N=0 THEN RETURN(RET) ELSE
8
IF N=1 THEN (D*CO+B*SI)*EX ELSE
9
(D*CO+N*B*SI)*EX*CO^(N-1)+N*(N-1)*B^2*SCEINT(0,N-2)) ELSE
10
IF M=1 THEN (IF N=0 THEN (D*SI-B*CO)*EX ELSE
11
IF N=1 THEN (D*SI*CO+B*SI^2-B*CO^2)*EX ELSE
12
(D*SI*CO+N*B*SI^2-B*CO^2)*CO^(N-1)*EX+
13
N*(N-1)*B^2*SCEINT(1,N-2)) ELSE
15
(IF N=0 THEN (D*SI-M*B*CO)*EX*SI^(M-1)+M*(M-1)*B^2*SCEINT(M-2,0) ELSE
16
IF N=1 THEN (D*CO*SI+B*SI^2-M*B*CO^2)*SI^(M-1)*EX+M*(M-1)*B^2*SCEINT(M-2,1) ELSE
17
(D*SI*CO+N*B*SI^2-M*B*CO^2)*SI^(M-1)*CO^(N-1)*EX+
18
N*(N-1)*B^2*SCEINT(M,N-2)+M*(M-1)*B^2*SCEINT(M-2,N)),