+ All Categories
Home > Documents > Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M....

Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M....

Date post: 08-Jun-2020
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
452
Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo Maple Inc. 2007.
Transcript
Page 1: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

Maple Advanced Programming

Guide

M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron

P. DeMarco

Maplesoft, a division of Waterloo Maple Inc. 2007.

Page 2: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

ii

Maplesoft, Maple, and Maplet are all trademarks of Waterloo Maple Inc. © Maplesoft, a division of Waterloo Maple Inc. 2007. All rights reserved. Information in this document is subject to change without notice and does not represent a commitment on the part of the vendor. The software described in this document is furnished under a license agreement and may be used or copied only in accordance with the agreement. It is against the law to copy the software on any medium except as specifically allowed in the agreement. Windows is a registered trademark of Microsoft Corporation. Java and all Java based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Maplesoft is independent of Sun Microsystems, Inc. All other trademarks are the property of their respective owners. This document was produced using a special version of Maple that reads and updates LaTeX files. Printed in Canada ISBN 978-1-897310-18-2

Page 3: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��������

������� �� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � /�� ����� 4 ������� �� ���� � � � � � � � � � � � � � � � � � � ��� �� (� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �&������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 5& ���� 6������� � � � � � � � � � � � � � � � � � � � � � � � � � 5

� ��������� ��� ����� ��� ������ �� ����� �- � �7 ���� 8�"����� � � � � � � � � � � � � � � � � � � � �� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � �

/�/ ����� - ���� �� � � � � � � � � � � � � � � � � � � � � � � �(����� 9 ��� � � � � � � � � � � � � � � � � � � � � � � � � � :*���� ;� � � 4����� ;� ������ � � � � � � � � � � � � � � � � :$�� < ����(� ���� ��� � � � � � � � � � � � � � � � � � � 0+=����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 0& ���� � )��� � 9���� � ��� 4�� �� � � � � � //

/�� - ���� �� $�� 9� - ���� �� � � � � � � � � � � � � /2&������ ;�� �� � � � � � � � � � � � � � � � � � � � � � � � /2& ���� � ��"� �� ��� � � � � � � � � � � � � � � � � � /2+=����� / � � � � � � � � � � � � � � � � � � � � � � � � � � � /�+=����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � /:� (��� ��� �� � � � � � � � � � � � � � � � � � � � � � � � /3

/�5 *���� ;� ������ �� ������ - ���� �� � � � � � � � � � � /1+=����� / � � � � � � � � � � � � � � � � � � � � � � � � � � � /1+=����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��- ���� � �� � 9� �� ��#�� � � � � � � � � � � � � � � ��+=����� 5 � � � � � � � � � � � � � � � � � � � � � � � � � � � ��+=����� 2 � � � � � � � � � � � � � � � � � � � � � � � � � � � �2+=� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � �:

/�2 �� ����� �� � � � � � � � � � � � � � � � � � � � � � � � �3

���

Page 4: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � ��������

9����� ( ��� � �� �� $� ���� � � � � � � � � � � � � � �3+=����� / � � � � � � � � � � � � � � � � � � � � � � � � � � � �09����� +=� ������ � �� �� $� ���� � � � � � � � � � � �0+=����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �1&��� �� ( ��� � +=� ������ � � � � � � � � � � � � � 5�

/�� +=���� ����� � � � � � � � � � � � � � � � � � � � � � � � 5/>�%�� ��" $���� � � � � � � � � � � � � � � � � � � � � � 5/+=� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � 55�� �� ��� �� � � � � � � � � � � � � � � � � � � � � � � � 55+=����� / � � � � � � � � � � � � � � � � � � � � � � � � � � � 52+=� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 53+=���� &������ � � � � � � � � � � � � � � � � � � � � 51

/�: &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � 2�

� �������� �� � �� ����� ����� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 25+=������ � � � � � � � � � � � � � � � � � � � � � � � � � � � 22��� �� ;� � � - ���� � � � � � � � � � � � � � � � � � � � 2��������� ��� �� +=�� � � � � � � � � � � � � � � � � � � � 2:� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � 2:

��/ (��= �� (������ � � � � � � � � � � � � � � � � � � � � 23$�� ��� �� >�%��� � � � � � � � � � � � � � � � � � � � � 23$�� ��� �� .��� � � � � � � � � � � � � � � � � � � � � � � 20��� �� -� ���� � � � � � � � � � � � � � � � � � � � � � � � 20����� ��� ��� � � � � � � � � � � � � � � � � � � � � � � � 20>���� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � ��+=�� �� *���� ;� ������ � � � � � � � � � � � � � � � � � � ����� �� ����� � � � � � � � � � � � � � � � � � � � � � � � � �3������� (����� 9 ��� � � � � � � � � � � � � � � � � � � � � �0*�=���� (����� 9 ��� � � � � � � � � � � � � � � � � � � � � �0��� ��� �� $���� � � � � � � � � � � � � � � � � � � � � � � :�+=�����? � (������� >�@� ���� � � � � � � � � � � � � :/

��� 9��� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 3���5 -������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 30

��� �� � -������ � � � � � � � � � � � � � � � � � � � � � � 30� ��� ����� -������� �� )��� ��� ��� � � � � � � � � 0�$�� ���������� -������ � � � � � � � � � � � � � � � � � � 0�&��� &��� ��� - �%��� -������ � � � � � � � � � � � � � � 03$�� (����� -������ � � � � � � � � � � � � � � � � � � � � � 1�

��2 $�� ��� (���� � � � � � � � � � � � � � � � � � � � � � � /�5��� �� 9������ � � � � � � � � � � � � � � � � � � � � � /�:

Page 5: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�������� � �

��� ������� ��#��� � � � � � � � � � � � � � � � � � � � � � � � /�0- �� �� < � �� � � � � � � � � � � � � � � � � � � � � � � � � ///� ��#���� ���� (����� -������ � � � � � � � � � � � � //�

��: �� ����� �� ����������� � � � � � � � � � � � � � � � //3�� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � //04�� �� 4 ��� ���� ���� � � � � � � � � � � � � � � � � � � /�2< ��� 6����� � � � � � � � � � � � � � � � � � � � � � � � � /�1� 4�� �� 4 � � ���������� � � � � � � � � � � � � � � /50

��3 +=���� +=�����? � (�� �� +��� � � � � � � � � � � � � /�1� �� ��� � (�� ���� � � � � � � � � � � � � � � � � � � /�1��� �� $� � ��� ��� ���=�� � � � � � � � � � � � � � /:/$�� ;��� (���� ����� � � � � � � � � � � � � � � � � � � � /:2$� � ������� � � � � � � � � � � � � � � � � � � � � � � � � /:3. ����� � (�� �� +��� -������ � � � � � � � � � � � � � /:0*�� (����� ������� � � � � � � � � � � � � � � � � � � /3�$�� (�� �� +��� -������ � � � � � � � � � � � � � � � � � /35)��� �� -������ � � � � � � � � � � � � � � � � � � � � � � /0�

��0 &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � /02

� ���� ��� ���� � �� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � /0�

5�/ � $ � ��� +=����� � � � � � � � � � � � � � � � � � � � � � /0:5�� 6��� $���� �� ����� � � � � � � � � � � � � � � � � � � � � /1�

. @� �� 6���� �� � � )� @� �� 6���� � � � � � � � � � � � /1�$�= 6���� �� � � .�� � 6���� � � � � � � � � � � � � � � � � /1�9��� ���� �� � � � �� ���� � � � � � � � � � � � � � � � /1/$�� ����� �� ��� ��� 6���� � � � � � � � � � � � � � � /1/

5�5 6��� >��� ��� � �� � � 6��� ����� � � � � � � � � � � � � � /1�5�2 6��� ���� ���� &������ � � � � � � � � � � � � � � � � /15

����� �� &����� 6���� � � � � � � � � � � � � � � � � � � /15-����� >�� ����� �� ��# ��� � � � � � � � � � � /12>����� �� +� �� � 6��� � � � � � � � � � � � � � � � � � /1�>�� ���� 6��� (� � � � � � � � � � � � � � � � � � � � � /1�9������ 6���� � � � � � � � � � � � � � � � � � � � � � � � � /1:

5�� �� &������ � � � � � � � � � � � � � � � � � � � � � � � /139����� $�= *��� � �� � 6��� � � � � � � � � � � � � � � � /139����� � �� � � .��� � �� � 6��� � � � � � � � � � � � � /136� ���� �� � � � � � � � � � � � � � � � � � � � � � � � /109����� ����� (����� � � � � � � � � � � � � � � � � � ��29����� $�� �� >�� � � � � � � � � � � � � � � � � � � � � ��2

5�: � � &������ � � � � � � � � � � � � � � � � � � � � � � ���

Page 6: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � ��������

&�%� �� � � -� ���� � )��� �� ������� &������ � � � � � � � � � � � � � � � � � � � � � � � � � ���

���>�������� +=� ����� � � � � � � � � � � � � � � ��:$"��>�������� +=� ����� � � � � � � � � � � � � � � ��3� ��� ����� ( ��� � � 6��� � � � � � � � � � � � � � � � �/�� ��� .��� � � 6��� � � � � � � � � � � � � � � � � � � � � �//6� ���� � � � � � � � � � � � � � � � � � � � � � � � � �//� ��� $�� �� >�� � � � � � � � � � � � � � � � � � � � � �/�6� ���� � . @� �� 6��� � � � � � � � � � � � � � � � � � � � �/39��� ���� �� ����� � � ( ��� � � � � � � � � � � �/3

5�3 &��� ��� &������ � � � � � � � � � � � � � � � � � � � � �/0&��� ��� ��"�� ( ��� �� *��� �� ���� � � � � � � �/0-� ��� ����� +=� ������ �� (����� � � � � � � � � �/16� ���� &��� ��� � �� � �� ( ��� � � � � � � � � � ���

5�0 ���� � & - �� ���� � � � � � � � � � � � � � � � � � � � � ��/5�1 &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � ���

� !��� ��� �������� �� � ����� ���6������-�� &��� ����� � � � � � � � � � � � � � � � � � ��5� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � ��5��� )�� � �� ���� &��� ���� � � � � � � � � � � � � � ��5

2�/ $�� .����� �� ��� � � � � � � � � � � � � � � � � � � � � � ��22�� A� �"� � 6������-�� � ��� � � � � � � � � � � � � � � ��3

��"�B� ����� � � � � � � � � � � � � � � � � � � � � � � � �5�&��� �� "�� � ��� �� � ��� � � � � � � � � � � � � � �5�

2�5 6������-�� ������ � ����� � � � � � � � � � � � � � � � �5�(��"� � 6���� � � � � � � � � � � � � � � � � � � � � � � � � �5�9� ��@ + � � � � � � � � � � � � � � � � � � � � � � � � � �5:

2�2 +=���� �� ��� &����� � � � � � � � � � � � � � � � �50>�%�� ��" &���� � � � � � � � � � � � � � � � � � � � �50>�%�� ��" 6 ���� � � � � � � � � � � � � � � � � � � � �2�

2�� )��� �� ����� -������ � � � � � � � � � � � � � � � � � � �252�: &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � �22

� �������� �� � �� ����� "���� � �������� -��� � � � � � � � � � � � � � � � � � � � � � � � � � � �2�& ���� -���� - ���� �� � � � � � � � � � � � � � � � � �2�� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � �2�

��/ .���� -���� - ���� �� � � � � � � � � � � � � � � � � � � �2:��� �� � -�� � � � � � � � � � � � � � � � � � � � � � � � � �20

��� - �� ����� "�� -���� *�� � � - ���� �� � � � � � � �21

Page 7: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�������� � ���

-���� � *��� � � � � � � � � � � � � � � � � � � � � � � � � �21+=� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��/� 9���� -�� - ���� � � � � � � � � � � � � � � � � � � � ���

��5 ����� -�� >�� ( � �� � � � � � � � � � � � � � � � � � ��2$�� ���� >�� ( � � � � � � � � � � � � � � � � � � � � ��:� � ��� ����� � ���� ( � � � � � � � � � � � � � � � ��3� ( � -�� � � � � � � � � � � � � � � � � � � � � � � � � � � ��1$�� ������ >�� ( � � � � � � � � � � � � � � � � � � � �:���#��� ����� � ������ >�� ( � � � � � � � � � � � � �:2

��2 - �� ����� "�� -�� >�� ( � �� � � � � � � � � � � �::� ��� 4 ����� - ������� � � � � � � � � � � � � � � � � � �:3-���� 4�� � � � � � � � � � � � � � � � � � � � � � � � � � �:0-����� ������ � � � � � � � � � � � � � � � � � � � � � � � � �3�

��� - �� ����� "�� �� ��������� -������ � � � � � � � � �32� -�� &�� � � � � � � � � � � � � � � � � � � � � � � � � � � �3�� > �������" - ���� � � � � � � � � � � � � � � � � � � � �3:& ���� � $���� � � � � � � � � � � � � � � � � � � � � � � � �30� (��� &�� � � � � � � � � � � � � � � � � � � � � � � � � �0�+=� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �0/�������� -����� ������ � � � � � � � � � � � � � � � � � �0/

��: ;��� 6���� -��� � � � � � � � � � � � � � � � � � � � � � � �0:> �"�� � ;��� � � � � � � � � � � � � � � � � � � � � � � � �034�� ��� � ;��� -�� 6���� � � � � � � � � � � � � � � � �00

��3 4�� ��� 4 ��� �� -��� � � � � � � � � � � � � � � � � � �13��0 ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � 5��

������ � (��� 6� � � � � � � � � � � � � � � � � � � � 5�54 ������� ��#�� �� �� � � � � � � � � � � � � � � � � � � 5�5������ �� & ���� ������� � � � � � � � � � � � � � � 5�2$"� �� $� �� >������� � � � � � � � � � � � � � � � � � 5�:>���� ��� -������� ��#��� � ���� � � � � � � � � 5�3

��1 - �� ����� "�� &��� � � � � � � � � � � � � � � � � � � � 5�14�� ��� &��� $����� � � � � � � � � � � � � � � � � � � � 5/�)��� ������ � � � � � � � � � � � � � � � � � � � � � � � 5//����� &��� ��� ���� � -��� � � � � � � � � � � � � � 5/5& ���� � &���� .�� � -�� � � � � � � � � � � � � � � � � 5/:

��/� &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � 5/3

# $�%����� &������ % �' ��(� $��� &���� � � � � � � � � � � � � � � � � � � � � � � � 5/1&��� 4�� ��� � � � � � � � � � � � � � � � � � � � � � � � 5/1+=� �� &�����? )��� &������� &��� � ����� � � � � � 5/1

Page 8: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

���� � ��������

��������? )��� ����� � &������� &��� � � � � � � � � 5/1:�/ &��� 4�� ��� � � � � � � � � � � � � � � � � � � � � � � � 5/1

$�� &���4�� ��� -������ � � � � � � � � � � � � � � � � 5/1&����� ������������� 6 ���� � � � � � � � � � � � � � 5��$ ������ - ����� � � � � � � � � � � � � � � � � � � � � � � 5�/+=���� �� &���4�� ��� $ ������ 6�������� � � � 5�2>�%�� � & ��� $ ����� � � � � � � � � � � � � � � � � 5��

:�� +=� �� &�����? )��� &������� &��� � ����� � � � � � 5�1����� /? &����� +=� �� 6 ���� � � � � � � � � � � � 55/+=� �� >�%��� � � � � � � � � � � � � � � � � � � � � � � 555$��� (����%���� � � � � � � � � � � � � � � � � � � � � � � 552(���� >�� 6� ��� � � � � � � � � � � � � � � � � � � � � � 55�( � �� >�� 6� ��� � � � � � � � � � � � � � � � � � � 55�(�������� � � �� -����� &������ � � � � � � � � � 553����� �? 4�� ��� � ���� � � � � � � � � � � � � � � � 553�������� $���� �� ����� � � � � � � � � � � � � � � � 550( � �� >�� 6� ��� � � � � � � � � � � � � � � � � � � 550+ �� ��� $���� � � � � � � � � � � � � � � � � � � � � � � 550- ���� � &��� 6� ��� � � � � � � � � � � � � � � � � � � � 551&��� �� 9��� ��� � � � � � � � � � � � � � � � � � � � � � � � 551� �� ����� � � � � � � � � � � � � � � � � � � � � � � � � 551��������� � � ��� � � � � � � � � � � � � � � � � � � � � 52�� � �� &������ �� +����� &����� ���� � � � � 52/&��� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � 52/&������ ����� � � � � � � � � � � � � � � � � � � � � � � � 525+��� ��� 9 ��� � � � � � � � � � � � � � � � � � � � � � � � 523����� 5? & ����C�� � ���� � � � � � � � � � � � � � � � 521+=� �� 6 ��� + � -�� � � � � � � � � � � � � � � � 521������� � ��������� 4�� ��� � ���� � � � � � � � 5�/+=� �� �-� � � � � � � � � � � � � � � � � � � � � � � � � � 5��(���� ��� �� � � � � � � � � � � � � � � � � � � � � � � � 535

:�5 ��������? )��� ����� � &������� &��� � � � � � � � � 535�� ���� ��� ���" � � � � � � � � � � � � � � � � � � � � � � 532&�������� 6 ���� � � � � � � � � � � � � � � � � � � � � � 531����� ���� A��� >������ � � � � � � � � � � � � � � � � 50�$������� ��� �� � � � � � � � � � � � � � � � � � � � � � � � � 5006��� ( � � � � � � � � � � � � � � � � � � � � � � � � � � � 500. ����� �� (����� - �� �� � � � � � � � � � � � � � � � � 501

:�2 &��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � 51/

$ �������� )��������� �� ��� ��� ���� �� �(�

Page 9: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�������� � ��

��/ �� �� � ���C��� � � � � � � � � � � � � � � � � � � � � 51�&������ � � � � � � � � � � � � � � � � � � � � � � � � � � 51:�� �� 6 ���� � � � � � � � � � � � � � � � � � � � � � � 51:6��" �� &� �� � � � � � � � � � � � � � � � � � � � � � � � � 513

��� �� �� 9�� ������� �� >�� $���� � � � � � � � � � � 510*������ ��> � � � � � � � � � � � � � � � � � � � � � � � � � 511������� (���� � � � � � � � � � � � � � � � � � � � � 511.�� � ��#�� � � � � � � � � � � � � � � � � � � � � � � � � � 511. ��� (���� � � � � � � � � � � � � � � � � � � � � � � � 511���� &������� � � � � � � � � � � � � � � � � � � � � � 2��&�����= ;�� � � � � � � � � � � � � � � � � � � � � � � � � � 2��&��� ������ &� �� ( � � � � � � � � � � � � � � � 2��$��� (����%���� � $�� � � � � � � � � � � � � � � � � � � 2�/>�� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�/+7 ��� � $�� �� +7 ���� � � � � � � � � � � � � � � � � 2�/+ � (���� � � � � � � � � � � � � � � � � � � � � � � � 2�/+=� ����� (�7 ��� � � � � � � � � � � � � � � � � � � � � � 2��6������-�� � ��� � � � � � � � � � � � � � � � � � � � � 2��6� D����� *��� (���� � � � � � � � � � � � � � � � � � 2��6� ��� >�� � � � � � � � � � � � � � � � � � � � � � � � � � 2�56 ��� &��� � � � � � � � � � � � � � � � � � � � � � � � � � 2�24� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�2A� �"� � 6��� � � � � � � � � � � � � � � � � � � � � � � � � 2�2�� (���� � � � � � � � � � � � � � � � � � � � � � � � � � � 2��*������ ��-*�+( � � � � � � � � � � � � � � � � � � � � � � � 2���� +7 �� � $�� �� ��7 ���� � � � � � � � � � � � � � � 2��������� ���� � � � � � � � � � � � � � � � � � � � � � � � 2��-������ ���� � � � � � � � � � � � � � � � � � � � � � � � � 2�:*��� $�� � +7 �� � � � � � � � � � � � � � � � � � � � � � � 2�:*��� $�� � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�3*�=������ (����� ;� ����� "��� � +=� ����� � � � � � � 2�3*�� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�3*���� ;� ����� "��� � +=� ����� � � � � � � � � � � � � 2�0����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�0��� �� >�%��� � � � � � � � � � � � � � � � � � � � � � � 2�0��� �� ����� � � � � � � � � � � � � � � � � � � � � � � � 2/�����%� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/���= (���� � � � � � � � � � � � � � � � � � � � � � � � � 2//*������ ��$ � � � � � � � � � � � � � � � � � � � � � � � � � 2//*������ �9 � � � � � � � � � � � � � � � � � � � � � � � � � � 2//- ���� � -� ���� "��� � +=� ����� � � � � � � � � 2//

Page 10: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � ��������

-�"� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/�- ���� � >�%��� � � � � � � � � � � � � � � � � � � � � � 2/�- �� �� < ���� -�"� � � � � � � � � � � � � � � � � � � 2/29��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/29����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/29��� (���� � � � � � � � � � � � � � � � � � � � � � � � � 2/�9� (���� � � � � � � � � � � � � � � � � � � � � � � 2/�9���� �� $���� � � � � � � � � � � � � � � � � � � � � � � 2/�(��� (���� � � � � � � � � � � � � � � � � � � � � � � � � 2/3(� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/3(� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/3(���� (�7 ��� � � � � � � � � � � � � � � � � � � � � � 2/3(�� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � 2/0( �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/0( �� >�@� ��� � � � � � � � � � � � � � � � � � � � � � � � � 2/0$���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2/1$���� 9��� ��� � � � � � � � � � � � � � � � � � � � � � � � � 2/1$ � (���� � � � � � � � � � � � � � � � � � � � � � � � � 2/1)���� ��� +=� ����� � � � � � � � � � � � � � � � � � � � 2��)�� (���� � � � � � � � � � � � � � � � � � � � � � � � � 2��*������ ,�9 � � � � � � � � � � � � � � � � � � � � � � � � � 2�/-��������� "�� ���� &������ ��� �� � � � � � � � 2�/

��5 $�� )�� �� A����� � ����� � � � � � � � � � � � � � � � � 2��.���� A��� $����� � � � � � � � � � � � � � � � � � � � � � � 2��>����� A��� $����� � � � � � � � � � � � � � � � � � � � � 2�5$�� (�����%���� $���� � � � � � � � � � � � � � � � � � � � 2�5$�� ���� $���� � � � � � � � � � � � � � � � � � � � � � � � 2�29������ $����� � � � � � � � � � � � � � � � � � � � � � � � 2������� *�� ��� � ��� �� $����� � � � � � � � � � � � � � 2�:����� *�� ��� 9���� �� $����� � � � � � � � � � � � � 2�:

��2 -� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � 2�3

����� ��(

Page 11: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�����

$��� �� �� ���� ���� ������� ������� � �� ����� ������� ��� ����?

� ;� ����� ������ � ���� ��� ��� ���� �� ��������

� ������� �� �� � �

� � �� ���� � �� �����

� - �� ����� "�� ����� ����

� &�������? ������ ����� ���� � ��� � �� ����� ���� ����� ������ �=� �� ��� � ��� � �� ������ �� ������ ����� ����� �� �=� �� ��� � ���

� �� �� �� ������ �� ���� ����

��������

$��� �� �� � ������ ��� ���� �� �=�� ����� ����� � �� ���� ��E� ��� �� �� ������� "�� �� �����"���

� ����� ���� A��� � �� ���

� +=����� "� ������

� A�" � �� ����� �� �������

� $�� ������������ ������ � �� ��

/

Page 12: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� ��� ��

������ �������� �� �����

E� �� ������ �� ��"� �� �� ����� ���� ��� ���� � � �� � �� ���� �� �� �� �����? �� ���� � "� ������ �� ����������� �� ������ ������� "� ����� F� ��������� � ������� ��G� �� � ����� ��

�������

����������� $�� � �� ����� ����� �� ��������� � � �� ��� ������ �� ������ � ��� �� ��� �� ��� ���� � �� � ������� ������� ���� ��� � �� ���� � "� ����� �� ����� 6� �� � ��� ����� �� �� �� � �� ���� ������ ��� � �� ��������� ���� �����

������ ��

$�� � � � � �� ��� �� ��� ��������� �� ����� �� �� �� ����� ����� � ������� �� ��� �� ����� ���� ������� �� �� ����� ������������������ � �� ����

� $�� ����� ���� � ������� �� �� � ������ �=����� ��� ���� �� �" �� � � ��� ������ �� �� ��� ��� ��������� � �� ���"� ��� � �� �������� ��� ��� F��?DD"""�������������G�

� $�� ����� ���� ������ � ������ � ��� ���" �� �� ����� ���"� ���� ��� >�� �� �� �� ����� ������ �� �� ��� ���� ������ ���� ���� �� �������� � ���� �� ��� ������� � �������������� ��� ���� �=� ������� ����� � �� ����� ��� ������ �� ����� �� �� � � ��� �����

� $�� ����� ������������ ������ � �� �� � �� ��� �� ���������� � �� ����� ������� � �� �� �=� ������� ��� � � ��������� �� ������� ���������� � ���� ��� �� �� � � � ���� ����� �� �� ����� )�� �� ���� & ����C��� (�����

$�� ����� ���"� � ���� ��� � ���� ���� ������ $�� ����� ���� ������ ����"� �� � ��� �� � ��� "��� �� �� ��"��� ���������� $�� � � ����� �=������ �� �� �� ����� ����� �� �=�� � �����������

���� ���������� �� ���� � ������ ������� �� �� ������ ������ � ��� �� ���������� ���� �� ����� �� ��� ��� ���� � �������� ������� ���� ������ ��� ����� �����������

���� ������� ������� ���� ��� ������ ��� ����� �������� ���������� ������� ��� ����� ������ ���������� ����� ����� � �� ������ ������ ��� �� �� ������ � �� ����� ��� �������� ������� �� � �� ���� � �� ���������

Page 13: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

����������� � �

������ ����

$��� �� �� ��� �� �����"�� ���� ������� ��������

� ������� �� � ����� ������� ������� ���� �� ���� ���

� ���� ����� �� � ������� �� � �� �= %���

� ��� �� � �" � ���� � ������ ���� ��� � � ���� �� �� ������

� !��� � �������� ��� ���� ����� � �� �����

� ��������� � ��� ���� �� � � �� ��� �� �����"��

��� ��� �������

�������� "������� �� ��������� 6� � ������� �� ������ ������ ��� �� ��� �� ���� ����� ���H�������������

Page 14: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � ��� ��

Page 15: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� ����� ���� ��������

�� ��������� ����

������������ ���� ��

.��� � ����� ��� ����� � �� � � ���� � �� ����� �� ��������� ��� ��� �� �� ������ �� �� ���� � �� ���� ���� � ����� : ���� ������������ ������ � �� ���

� ���� �������

������ ��������� E� �� ��%� � ����� � ���� � "��� ���� ����� � ���� ��

��������� ��� ���� ��������� E� �� � ��� � ���� �� �� � � ���� �� �� ��� ����� ���� ��� ����

����� ��������� *���� �� ������ �� �=�� ��� �� � ���� � "���� � ����� ��� ��� �=���� $��� ��� � ����"� � � ���� � � � � � ����� �� $�� �" � ���� � �7 � �� � �7 � ����� � �� � ��� �����

����������� ���� E� �� " �� �� ����� � ���� ��� 7 � ��� �� �� �� ������ ��� ���� � � ���� � �� ����� � ��� � � ���

��������� ����� $�� ����� ���"� � ��� ��� ��� � ��������� �� �=���� ����� � �������� "���� �� �� �� ��� � " �� ��������� ���� � ���� ��� (��� �� ����� ������� �� �� �=�����

��� ��� �� ��������

E� �� ��%� � ����� � ���� � ����� ���� ����� � ���� �� (�������� ������� � � �� � ��� � ����� � � ���� �� � �� "� �����

Page 16: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

��� ���� �� � ������ �� ��� � ����� � ��� ��� � �������� �� � � � �� 6� �=������ �� �� ������ ���� ����� �� ���� �� � ��� � � �� �� 0�

� ��� �� ��� �� � ���� ��� ������� �����

I/�/

��/

2� �J

&����� � �� ���� � �� � ������� "���� ����� � � �� ������"�� � ���� ��

������� $��� �" � ���� � ������� ���� ����� �� � ��� �� �� % ������ �� �� ����

� ���� �� �������������� ����� ��� � �� ����� ��� � �� ���� � ��� ��� ������ ����������

I/�/

��/

2� �J

$�� � ���� � ���� ����� � ����� � ���� �� �� "���� � ������� �� �� ����� ������ �� ����� ������� �� ��=���� ������ ����"���� ����� � �� � "��� �� ���� � � �� �� ���� � �� � �� � � � ���� �� �����

����� �����$��� ����� �=����� ����� ������ ���� E� "��� ��� ��" ����� ���� ���� "���� �� ������ � � ����� � � � ���� � �� "���� � � �������E� � � ���� � ����� �� ����� �� ����� ���� ��� ��� �� ��� ���� �� �� �� ����� �� ������ �� ������� 6� �� � ��� ����� ��� � ����� : �� �� ������������ ������ � �� ���

���� ������ ����� ���������� ��� ��� "�� " ��� � � ���� �� �� ��� �� �=������� ����� � "������ ������ � � ������ �� "���� � � ������ >���� �� �� ����� �� �� �� ������� ����� �� � ���� � ����� � ��� �� ��� �� A�"��� � ������������� �� �� �� ������ �� � �� ��� ������ � �� � ���� � ���� � ����� �� �� �� ����� � �� � ������ �� ��%�� �� �� � � ���

Page 17: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ����� ��������� � !

� ���� �� ��� ������ �� �� ��%� ��� �� ������ �� �� ����� � ��������� �� �� � ���� � "��� �K

� ���� �� �������������� ����� ��� � �� ����� ��� ������� ����� �� ���� ���� � ��� ��� ������ ����������

I0

��2

���

��/:

�J

$�� ����� � ���� � � �� ��� ��@� � �� ��� ��� �� �� ������� � ����� �� � �� �� � ���� �� �� � ��� ��� �� � �� �� �������� ���� � � � � ���� +��� � �� ����� �� ����� � � � ���� � ���� �� � ���� �� �� � � ��������� "��� �� � � �� ������ � ���� � ����� �������

�� ����� ��� ���� "���� � �� ����� �� ����� � ������� � �� ������� � ���� � � �� � ���� � ���� �� $�� ��� �� �� �� ����� ����� ���� �� ����?

/� -� ���� � �� �� �� � ���� �

�� ���� ����� ���� �� ����� ����� ���� �� �� �� � ���� �

5� -� ���� � �� �� � ���� � ���� �

2� ���� �� ����� ����� ���� �� �� � ���� � ���� �

�� ��������� ����� �� ����� �� ������ �� �� � � ��� � ���� �F�G

�� �� �� �� �����%�� �� ����� �� �� �� ������

��� ��� �� ����� ��� ����� ��� ��� ��� "���� � �� ������� ������ � ������ �� �����"�� ���� � �������� � � �����

� �� � �� ����� ����� � � �� ���� ���� �� � ���� � � ������� � ���� �� ����� �� ����� �� � �� ����� ����� ��� �� �� �� ����� ��������

� ��� "���� ����� ��� �� �� �� ����� �� ������ � �� "���� �������� �� �� �� � ����� ��� ��� �� ���� � �� �� �� ������ �� ���� ��� � ��� � ��� � ���� ��� "���� ��� �� ��� ��� ��� � � �������

Page 18: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

" � �� ���� �� ���������� � �� ����� �� ��������� � ���

��� ��������� ������� (� �� � ��" ��� � �� 7 ��� ��� �� ������ � �� �� �� ����� � �� ��� �� �� �� � ��� ��� ���L � �� %��� ���� ������� �� ���� ��

$�� �����"�� 7 ������ ���� ��� �� � ������� ���� ���� $�� ��� � �� ����� ��� ���� ��� �� � �� ��� �� ��� ��� �� �� ������� $��� ������� ������� �� �� ��� � �� �� � �� �� �� � ���� � �� � $��� �� ������� �� ��� � � �� � �� �� � � ������ �� ��� �� �� ����� � �� �� �� �� � �� �� ������� ��� � �� � � � ��� � �� ��� ��� *����� �� ��� �� ����� ��� ��"�� ���� "� � � ���

� �� �� �� �� �� ������ �� ���� � �� �� ��� �� �� ��� ��� ���� �� �� ��� � ���� �� � � ��� �� �� �� �� �������� ���� �� � ��� � ����� � �� � $��� � ���� � ������� �� � �� ��"� ������ � ��� "���� � � ����� � �� �� �� � ����� �� �� ���$�� �� ����� ��� ��� ��� � � ���� �� "� � �� �� �� � �� ������ � E� �� � �� �� � �� �� ��� ����� � �� �� �� � ����� ���� ����� ���� �� �� "� ������ � ���� $��� ��� ��� � �� ��� �� ������ � ���� E� �� �� �� � � �� �� �������� �� ����� �������� � ����

!"� ���$�� �������� � ���� � ��� � � �� � �� � �� ��� ���� �� �� ������� �� ������ �� � � �� �� ����� $� �� �� �� �� �� � �� ������ �� � "��� �� ����� ��� ��� �= � �������

$�� ��������� � ���� � �� ����� � �� ��� �� �� ���� � ��� ���� � �������� � ������� % �� $��� � ���� � ������ � � ���� ��� � �� "� ���� �� $�� "� ���� � � � ����� ��� � �� ��� ��� ������� �� �� �� �� �� � �� � �� ���� ����� �� �� ���������� ������ �� �� �� ��� � � �� � �� � �� ��� � � �� ���� ���� � ������� �� ��� ����� �� �� ����� �� �� � �� �� ��� ����� ����� ��� � $�� ������ ������� �� ����� �� ����

������ ���"� "���� �� ������ ����� �����C�� �� ����� �� "����� � ������ �� ���� �� � �� ���������� ��"��� � �� �� � ������� ������� � �� � ���� ���

� ��������� �� ����� ��������� �! ������� ��������� ����������� � �� �� " �� ��� � �� �"��� #$��� �%" ��� �& ����� �$��

Page 19: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ����� ��������� � #

� �"� �� ����� " �� "��� ��� �� �"��� ����� � �� �'�� ��� �&�� ��� ���� �"� �� ��� ����� ��� ��� �����

(�����)� *�* �� � �������� �������� ����� �� ������!��*���������*(�����)� *"* �� � �������� �������� ����� �� ������!��*���������*(�����)� *�* �� � �������� �������� ����� �� ������!��*���������*

����� ����� �� �� !� �� " ����� ���� �� �� �������� � ���� � ������ �=����� �������� � ���� �� ������� $�� �������� � ���� ����� ������ �=������� � �� � � �� � �� ���� � � � ����� �� ������.��� �� �� �� � ����� � �� ��� ���� ����� ����� � �� ��������� "���� ��� � � �� ��� �������

��� �� ����� �� � �� � �� �����"��� ��� �� ������ ������ 5 � ����� 5 � ��� � � � � �� �� �� � �� L ������ ��� �� �������� �� �� 5 ���� ��� 5�

� � �� ������ �����+�,� ��

� ?M I�� 2� /� �� 5J

� ���������� �� � +��

I�� /� 5� �� 2J

$�� �������� � ���� � ����%�� �� % � � � ��� ������ �

� ��������

I�� /� 5� �� 2J

$�� %�� ��� � ��������� �� ��������� � ���� � �� � ��� �� �������� � ���� � "��� � � � � ���� �� $�� � � � ����� � % � ��%�� �� �������� � �� ���� �� �� �� ���� �� � ���� ��� ��� ����� ��� �� �� � ���� � � ���� � A�"��� � �� "���

Page 20: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� ���������� � �� ����� �� ��������� � ���

��� � �� ���� � �����"�� ������ �� ��� ����� � "���� � �� ������� � � �� � ���� ��� (��� �� �= ��� �� � �� ��� ���� �� ��"� � �� ��� �� ������ ��������� �� ������� �������� � � � �� ������ �� �� ����� "���� ������� �� �� ����

������� $��� �=����� ��� � ��� �� ��� �� ���� � ���� ��� $��� � � ���� �� ���������� ����� �� �� � ���� �� ���������

� -!��.���� �� ����� ��������� �! ������� ������)��� �������)���� ����� ���������� ���

� ��������� �� ����� ���� � �� �� " �� ��� � �� �"��� #$��� �%" ��� �& ����� �$��� �"� �� ����� " �� "��� ��� �� �"��� ����� � �� �'�� ��� �&�� ��� ���� �"� �� ��� � �� "�� ��� ������

� �& %� �$�� / �& ��� �$��� �� ���$��) �� ��� ������������� � ���� -!��.����� � � ����� -!��.����� � �'� ���� ��� �&��

� ����� ��� ��� �����

(�����)� *�* �� � �������� �������� ����� �� ������!��*���������*(�����)� *"* �� � �������� �������� ����� �� ������!��*���������*(�����)� *�* �� � �������� �������� ����� �� ������!��*���������*

� � �� ������ �����+�,� ��

� ?M I�� 2� /� �� 5J

Page 21: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ����� ��������� � ��

� -!��.����� �� � +��

I/� �� 5� 2� �J

� ��������

I/� �� 5� 2� �J

����� ��� ���� �� �� � �� � �� ������ � �� �������� � ��� ���� � � � ��%�� �� �� �� ���� �� ����� �� ����� F ����������G� �� �� � � ��������� � ���� � �� ��� ���� "� �� �� ������$�� �� ����� � �� �� ������ �� � �� ���� � �� �������� � �� ����� � F�� � �� �������� �������� � ���� �G� A�"��� � � ���� ���� � �� ������ ���� ��� �� ��� ����� ������ ���� � �� ���������� �� �� � ���� ��

������� � #�$� �� %� ��� ��������� �� "� � �� ����� � ��� ��� �������� �=�� ����� �� ��������� � ���� ��� ��� �� � $�� ��� � ��� �� �� �� �� �� �� ��������? �� ��� ��� � � ���� ��� �� �7 ���� ������� $� �� � �� ���������� ������ �������� �� � � ���� � �� � � � ���� N�������� ��� "��� � �� �� ���� $��� ����� �������� �� � ���� ������� � "���� � ���� ��� � ���� ��� ��� �� ��

$�� ��� ������ ��� ��� � � ���� � "���� � � ���� �������� 6� �=������ ���#$%%&' ��� ��� � � ���� � �� � � �������� � ��"�� 2 �� 3� ��� �����

� & �� ������001��� ��-� &��� ��002 ��

2� :� :� �� 2� 3� �� �� :� 3� 3� �� 2� :� 3� 2� 3� 2� �� :

$�� ����� � ���� � �� ������ � ��� � � � N�������� ��� � ��� �� ���� �� E� �� �� ��� � ��� �� ����N�������� ��� � ��"�� 2 �� 3 �� � ������� �� ������� ��()*�������

� & �� ����� �3245�)���0013245�)��� � � 245�)����� &���

Page 22: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

120�20250/

����������

$�� � ���� � � � � ����� ��� �� N�������� ��� ��� �� � � ������� � "�� ���L �� ��� �� ���##''� ��� �������� �� �� �� �� � ��� ��� ��� �� ��� �� ����� ������������ �� � +�

� �����& 6 &����

��3�1035�15

$�� �����"�� ����� � ���� � ��� ��� � ���� �� �� ������ �� ��� �����%����� �� � N�������� ��� �� �� � ������� � ����� ��� ������ �� �� ��� �� ()*������� �� ����� � � � �� �� �� � ���� ��

� !��&�� �� ����� �����������00�������� �� ����� ������)�� &�� ������)� �� ��� � �� ��!����3245�)����� ����&��� ��� & �� ����� ������)� ��� �����& 6 �����&�� � 245�)����� ��� �����

E� �� �" ��� �� ���� N�������� ��� � ��"�� 2�� 3�

� 7 �� !��&�� ��001��� ��-� 7��� ��002 ��

2�1�:/303��� 2�52�3050��� ��02��:��1:� ��3���2/2�1�

2�23331103/� :�0�/3�::23� 2�0�:3310/1�

����20//::�� :��:�:12:21� :��50��22�:�

:�22�/��52/� ��2�1323�31� ��/33�11��0�

��1�/012�/1� :�3�0�:�:�:� ��31�::/22/�

2�100::2/:�� 2�1121��02�� 2�5323��5���

��30��5�002

$�� ����� � ���� � ��� � �� �� � N�"? ����� ��� �� � ���� � �� ������ � ��� � �������L � �� , ������ � �� ��� � �������� "�� ����� � ���� �� � �� ��� ���� �� ��� ������"��� , ��� �� ��� � �� ������ �� �� � � "�� �� ����� ,� $����"� ��� �� � � � ��"��� ��������

Page 23: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ����� ��������� � ��

� 7 �� !��&�� � �����00����� ��� 5�)��� �� +�� ��-� 7��� ��00� ��

��22��11�:�2������ ��5::5�2:�35������

���:3//�20/�������� ����2��:�0//������

���/5//5�25�3������ ��21:1/00/����������2:20251/�������� ��2�0210��/������

$�� � ��� ����� ������ �� � �� �� , ��� �� ����� ��� � ����� � �� ������ "�� �� ����� ,� $�� �����"�� �� ��� �� ����� ������������ ��� �� ������ �� �� � ���� ��� ����� �� � ���� ��� ����� � ��

� !��&�� �� ����� �����������00�������� ��

� ������� ����� ������)�� &�� ������)� �� ��� � �� ��!����3245�)������ ����&��� ��� & �� ����� ������)� ��� ����&� &���245�)��� ��� ��� ������ ��� �����

$�� � "��� �� �� ���� �� � ����� �� �� ����� � ������� �� �������� �� ���� � �� �� �� ���� � �� � � �����

$�� � ���� � �� ����� ��� ��� �� �" ������� �� �� ��� ��� ������ � �� ��� �� ����� ����� �

� 7 �� !��&�� � �����00����� ��� 5�)��� �� +�� ��-� 7��� ��00� ��

����30�23���/5/�/��� ��/�1//0�5�:2/053����/�52�������2��3� ��2:12/�/:035�:::�����022//2222/�5��� ���/5:/2�3�:�2::25����/�:21/0��03:�/2� ���020�21�0�05/���

����� $�� �� ���� �� ����� �����-��������� �� ��� �� ��� ��������� ������ � �� ���������� $�� ���� � ��� � �� �/� �� ����� � ��� ������ �� ��� ���� �� �� ������ ��� ��� �� ������ $��� �������%�� ������� "��� � �� ��� � ���@ � � � 6� �� � ��� ����� ��� � ���������

Page 24: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� ���������� � �� ����� �� ��������� � ���

������ $��� ����� � �� ���?

� 9 ��� ����� ��� � ����� ��� ������ �� ����� �� ������

� - ������ ���������� �� ���� ���

� $���� ��������� �� " ��� ���� � ���� ��

��� �������� �� !� �� ��������

(��� �� �� ���� � ����� ������� � � ���� ��� 6� �=��������� � � � � ���� � "���� � � �� ��� ������ ����� ����� � � �� � �����%�� ���� $�� ������ � ��� "�� �� �-��.�� �������� � � � � ���� � "���� � ������ � �� �� ������ �� �� ���� �� � � ��@� ���� �7 ����

E� �� " �� � ���� �� �� � � ���� ��� $��� ����� ����� ���� ��" ��� �� � � ������ � �� �� � � � ���� � � �� �� � ����� ��

�&�'�� ������$�� �����"�� �=����� ����� ��� ��" ������ �� ��� �� � � ����� ��� ��"�B� ����� �� �� ��������� � � � ���� ��

������� � %��� �������)�� ��"�B� ����� � %� �� ��� �� � � ����

/� &����� � ��� � �� ���=�� �� �� ��� ���� �� ����� � � ���

�� 6�� �� ����� �� �� � �� � �� ��� �� ������

5� > �" �� ��� � �� � �� � �� ��� �� ���� �� "�� � ����� �� ���� �� ���=��� 6� ��� � ����� ��� ����� ��� ������� � �� ��� �� �� �� ����� � ���� $� %� �� ��� ���� �" ��� �� � �" � ��� �� ���� � �"�� ���� �� %����" �����

Page 25: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ��������� %� � &����� ��������� � �'

x1x0

–1

–0.50

0.5

1

1.5

2

1 2 3 4 5 6 7 8x

$� %� � �� ���� ��� �� � �� �7 ��� �F�G M �� � ��� � ���� �=���� ��� ��� ��� �� �� ��� �� � ��7 ��� �� ��� �=������ ���?

/� ��"�B� �����

�� $�� �����"�� �� � ���� �� �� � ���� � � �����

���� M �� � �F��G

� �F��G

E� �� ������� ��� ���� ��� � � ���� � � � ��� �� "����

!"� ��� ($�� �����"�� � ���� � ���� � � ��� �� � ���� � �" � ���� ��"���� ���� � ����� � ��� ��� �� �� �� �� �� � ���� ��� ����� �= � ���� $�� �" � ���� � ���� � "� � �� ��� � ����� $�%� �� ��� �� � �" � ���� �� /��0������� � ��� �� � �"� ������� ��� � ���� �� $�� �����- ������ � � �=� ������� � � ���� ��

� 8�.�9�������� �� ����� ��������)�:����� ����� � �� ����� ����������� ��������� �� � � �������&&������ ���� !����������������� ���� ��� �����

$�� � ���� � � �� �� �� /��0������� � ���� � ���� ����� " � �� �=� ����� ������� � �� �� ����$�� �� � ���� � � �� �=� ����� �� �

���

� ���� �� � � 3�-������

Page 26: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� ���������� � �� ����� �� ��������� � ���

���� ?M �� ���

� ;�#��� �� 8�.�9��������� ����� ���

������ ?M �� �� �� ���

/� /��

1�2��� � � �� ��� ��� � M 2 ��� � ��" �� �����

� �2 �� 02�

�� ?M ���

� �� � �� �2 �� ;�#�����2�� ��� ���

�� ?M 2�0�02�3/�2

�� ?M 2��5��55/10

�� ?M 2�����:�5�5

�� ?M 2����������

!"� ��� )$�� /��0������� � ���� � �7 � �� �� % � � � �� � �� � ������ ��� �=� ������ E� �� ���� " �� � �� ��� �� /��0������� ��"� �� � � ����� (��� �� �����"�� /��0������� � ���� � ������C�� �� �� ���� � �� � � ���� �� �� � � �� �� ��� ������� ���� �� � � ����

� 8�.�9�������� �� ����� &��������!�� �� ������ � �����&� � 5������&���� ��� ������ ) �� � �� � � �������

� ?M �� �� ���F�G

� <��9���� �� 8�.�9��������� ) ��

� ������ ?M F�� �G� �� �� ���F�G

�� / O ��F�G

Page 27: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ��������� %� � &����� ��������� � �!

��� �� 3��0�� �� ������� �� �� ��� �� $� �� �� ������� � "��� � ����� 3��0��� E� �� %� � ���� ��� �=������� �� � �� ���F�G M � � � ��" �� �����

� �2 �� 02�

�� ?M /��

� �� � �� �2 �� <��9������2� ��� ���

�� ?M ��3��5:50:31

�� ?M ��351//�01�1

�� ?M ��351�0�/552

�� ?M ��351�0�/55�

� ���$� *������&����� �� � ����� �� " ��� � � ���� � �� ���� � � ���� � � ���� �� � � � � ���� �� � �� �� �F�G M �F�O/G� E� �� " ��� �� � � ���� � � �� �����"�� ��� �

� �$�&� �� �&��������!��� �� � ���&��'� ��

$ � �� �� ��� � ���� � ��F�G�

� �$�&�������

�� ��F�O /G

����� ��=���� ������ ��� ����� � �� "��� �� �� � ���� �� �� �� ���� �� �� �� ���� "��� �� � � � ���� �� $�� ��� ���� �4�� ������ "� �� �� " ���

$�� � ���� � �=����� �� �4�� "� �� "�� ��� ��� � ���� � � ���� � "� � "�� � ���� �� "� � �� � �� �������

� $ �� ����� �� �3��

� ?M F�� G� �

� $$ �� �$�&��$��

Page 28: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� ���������� � �� ����� �� ��������� � ���

�� ?M �� �F�O /G

� $$������

=����� ��� $� $ !��� � �� ��)! ���� �� #$��$ �� �����)

����������� �������� $� ������ �4�� � "� � "�� � ���� ���� ����� �" �� � � ����� �� �������� �� ���� ��

� � � ���� �� ��� �� �� ��7 ��� �� �� �� �� ���� �� �������%%5( �� �� ��7 ��� �� �� �� �� ���� � �=��� �� % � ���6� �� � ��� ���� � �� ������� ��� ��� F� G� ��� � ����� 2�� �� ������������ ������ � �� ��� � �����"� �� �� � ���� �"56#"7(8�����%%5( ' ������ ��� �� � � ��� �=��� �� % � �� ����� � �

� �$�&� �� �&��������!��� �� � ���&��'� ��)��00��� ��

� $$ �� �$�&��$��

�� ?M �� �F�O /� � �������G

� $$������

F�O /G

$�� � ��� 44 ������ � 4L �� �� ����� 4� �� ��������� �����44L

� $ �� �����>� �� �3>4���

� ?M F�� � G� �

� $$�����>��

�O /

Page 29: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� (�� � � �� ���� �� )���*��� ��������� � �#

��" #���� $������� ��� ������% ��������

*���� �� ������ � � ����� � � � ���� � �� � � ������� �� ��� ���� �� &����� � � ���� � � ���� �� ��� �" ����� �� ������ �������� �� �� ����� �� ���� � ���� � "���� �� ����� �� ������ � ����� ����� ��� � � ����� � �� ���� � ��� �� % � ����

*���� �� ������ �� � ������ ��� �������� "�� �� � ���� � �=���E� �� " �� � ���� �� "���� � � ����� �� ������ ���� �=������� � ���������� � �� �� ����� ������� "�� � � �� �=�� ���%����� $������ ������ � � ������ ������� ����� �� ������� $��� ����� �� �� ��� ������ �� �� �� ���� ��� �� ���� �� ���� ��� �� ������ �� ������� � ������� ������ "���� ���� � ���� � � � ��@� � ���� � �� ���� � ���� �� ����� E� �� � ��� ��� ����� �� ������ "�� �� ���� ����

!"� ��� ($�� �����"�� � ���� � � ���� � �" ����� �� ������ � �� �� � ���� �" �� ������

� �.�?� �� ������� ����� ��� ��� ��� �����

���� � ?M ����FG ������L � ��� ����

.� ��� ����� �� ������� �� �� � �� �� �������� �� ����� "� ����� "��� ��������� 6� �=������ � ������ � �� ����� �� ��� �������$�� �����"�� ����� ��� �� ���� �� ����� �� ��9 � � �� �7 ��

� ���� �� @ �� �� � A�

���� ?M ���

� ���� �� ���� !���� @ �.�?��� A�

���� ?M ��� ��

� ���� �� ���� !���� @ B �.�?�B��C+ A�

���� ?M ��� �� �� �� �� �� ��

Page 30: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$ � �� ���� �� ���������� � �� ����� �� ��������� � ���

$��� ����� ��� �� ����� ������� ����� �� �� � �� �����

���������* ������� �� �� ��� �� �� ������ �� � ��� "���� ���� ���� "�� �� ��� � ��� � � �� ����� ������� ������� � �� �� ��� � �� � ����� �� ����� � E� �� ������ %� �� ������ � �� � ���� � �� �����

� ��-� ����:������ ��������

����� ������ ������ ������ ������ ������ �����

!"� ��� )E� �� ������� �=� ������ �� ����� "� �� � ��� ��� �������� � ����������� 6� �=������ ����� � ��������� ������%�� �� �=� ������ O � � ��� � �� ��� � � ������� �� �7 ��� � O � M ��� $� �������� �� � �7 ���� �� �� � ���� � �� � �� +=����� /�

� � ' �.�?��� � 3��

�O � M � �

��� �� ��� � ��� � � �� ����� ������� �� ����� � �� ���� � �� � �� �� ������ �� ������ ����� ��� � ���� �� � �� ����� ������� ��������� � �� ���� ����� � ��� � � � ������� ������� ������ � ���� � � ��� �� � �� ��� �� ����� ������� E� � � " �� � ����� �=� ����� "���� �= ��� �� �� ������ 6� �=������� �� � ���� � �7 ���� �� �� �= �� �� ����� �� ����� �� �������� ������ � �� �� ��� ���� �� �� �7 ����

� �-� �� D�

��� ?M �O � M � �

� ����$��?� �� �� ���� �������:������ �$���-�� ��

������� � ?M �

E� �� �� ����� �� ������ ��� � ��� �= ���� �� ����� ���� ��� �� �7 ����

Page 31: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� (�� � � �� ���� �� )���*��� ��������� � �

� ����)������$��?� � ���� �-��

� � M � �

� ����:�D��

����

���� �������� 6� ���������� �=� ������� �� � � �� �� ��� ������� � �= �� �� ���� �� �� ������ E� ��� ���� ��� � �� ����� ��� ���� � "��� ����C�� �� "�� �� "� � ��� �� ��� �

������� � ����� � ��� ����� $�� ��� � ������� ������ �� �� ���%���� � �� �� ����� �� �������� "�� �� �� � ���� �� ����� � ���7 ��� ����� � �� � ����� ��� "�� � ������� ����� �� ��������� �=��� ��"�� �� ����� �� ����� � "�� � ��� ����� "������ ��������� �� �:� �� �� ����� �� ����� ��� ������ � ���� �:�

� ���! ��:�2��� � �� : ' �

� ?M �P O /

� �!:�� *:E*��� ���

�P O /

��� �� ���� �� ��%��� �� �� ���� �� ������ �� �����������"�� �� ��� �� �� ����� ��� "�� �� ���� �� ���� � �=� ������� ���� "�� �� ����� ��� ���� ���� ��

� : �� ������:��

� ?M �

� ��

�P O /

$� � �� �� �=� ������ �� � � ���� �� �� � � � ��� �� ���� � ������ �� ��� ���� � �� �� � ���� ���� ����� �� �� �=� ������� ������ � ���� ��� �� �� �7 ��� ����

Page 32: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� �� ���� �� ���������� � �� ����� �� ��������� � ���

���� ��� �� � ������ *�+���� ���� � �� �� � �� ����� ��#��� � ���� "�� �� � ����#�� �� � � ���� �� ��� �� " �� � � ���� �� "���� � � � � ����� �� �� "��� ��� %� � ��� � � ���� �� � ���� � � ��� � �� ������� ����� ��� ���� �� �� ��� � �� � �� � ���� �� $��� �����"� ��@� � � ���� �� F� ��@� � �������� �� �� ���� � ���� �G� ���� ��� ���� ���� ���������� $�� �����"�� �=������ ��� � ����" ��@� � � ���� �� ���� ��� �����

!"� ��� ,!������� ��� !�������� ������ �" � ��#���� �" ���� ��� �� ����� ��7 ��� �� ��� � �� � ���� �� � ��� �� � �" � ���� �� $���" � ���� � � � �� �= � � � �� &� ���� � �� � ���� ����� ����� �� *���� �� ������ � �� �� � � � ���� � � � ��� � ���� ��� �� "���� � � � � �=�

$�� ����� �� ������� �� � ��7 ��� �� ��� �� �� �� �� ��� ���� �"���� �� �� � � �� � ����� �� �� �� ��� $� �� �� &� ����� �� � �� � � �� �� �� ��� � ��

� � �� �� � ��� � M �I � �J� I�� �J� I�� �J� I � J� I�� J� I�� J��$�� ��� �� ������ � �� &� ���� � �� � �� � ��7 ��� �� ���

� �"� �� � ������ �� �� ��� �� ��� � ��C� �� �� ��� �� ������ ��� ��� � �7 � �� � �� �� ��� �� ���� � � �� � ��� �� ������ ���� &� ���� � �� ��

������� E� � � " �� � � ���� � �� � � � �" ����� �� ��&� ���� � �� � ���� ��� �� ���� �� .� ������ � �� � � ���� � ���������� �� �� � ����� ��� � ����� � �� &� ���� � �� � "��� �� �� ��� �� ������ � ����

$�� �����"�� � ���� � � � �� �= ����� �� �� &� ����� �� � �� �� ��� �� ��� �� � ��� � � ��� �� �� �� � � � ��� ����� �= ������ 6� �=������ ��( .� �� ��� .( �� ����� � ���� � ����� �� �� % � �� �� �� % � ����� �� �� ����� ���

� � �� � @���$�� :���� )� �A� @�� �A ��

� ?M I��� � ��� �� ��J

� � �� ������ 00� �,� � ��

� ?M I5� /J

Page 33: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� (�� � � �� ���� �� )���*��� ��������� � �

� � ��-� ��"����"��� "�00 � ��

I�� J

.��� � �� ���� �� ��� ��� � ���� � �� � � ������C� ��� �� �� �� � � /� �=��� �� % � ��� "���� � � �� ��

� � �� ������ �2� � ��

� ?M I�� /J

� �����"�� � ���� � ��� ���� ����#�' �� �� ��� �� ��� ������#��� ' �� �� ��� �� ������ � �� �� ��� ��� �� ���� ������ �� ������� �� � ���� � ��������C�� �� � �� �� �� � � �� � � ;�0�� $�� ��� �� �� �� �������� ��� �� &� ���� � �� ��� ������ ��� ����

� ��� ��� �� ������������������ ���������� �����)������ ����� �� "�� &�� � �� ������� ��� ���� �� ���� ' �� �& ���� %� ����� ���� � �$��� ���!�� � ��-���"����"��� "�00�������� � �� ��� �&�� ���� �� �� ��� ���� ��� �� 2�� F 9G�� ��� �����

� ��� ������ ��� ��� ������ ��� ��� ������ ���

I�� J

I � J

I�� J

� ��� ������ ��� ��� ������ ��� ��� ������ ���

I�� �J

I � �J

I�� �J

Page 34: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

� ��� ������ ���

!"�#

� ��� ������ ���

I�� J

!"� ��� -����� �� " ��� � �" � ���� � �� ���� &� ���� � �� � �� � ����� �� " �� � � ���� �� ��������������� �� � � � �� � � ����� �� �������������� � ���� � ���� �� �� �� � � ���� "���� � ��� ���� �� �� ������C�� �� � ��� �� �� �� � � �� ��%�� �� � ��� ���� � ��� ���� 6������ �� ��� ��� � �� ���� � �� ������ ������ ���� � � ��

� H��������I���!�� �� ������� ����� �� �� ��� ����� � �� ���)���� �& ��� ������� ���������� �$��� ����� J�������� � ��-!���� �& ����� :!� ��������J�� ��)� �� ��� �&�� � �� ������ �2� C����������� ���

� ��� ��� �� ������������������ ���������� �����)������ ����� �� "�� &�� � �� ������� ��� ���� �� ���� ' �� �& ���� %� ����� ���� � �$��� ���!�� � ��-���"����"��� "�00�������� � �� ��� �&�� ���� �� �� ��� ���� ��� �� 2�� F 9G�� ��� ������

� ������� ��� ������ ���� ��� ������ ��� �����

����� �� �� %� ��� ��= ������ �� � � �� �� � ��� ��� & �� H��������I���!��� @���$�� :���� )� �A� @���A ��

Page 35: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� (�� � � �� ���� �� )���*��� ��������� � '

� ?M ����FG �������F�� �G ��� ����

� �� 1 �� &�� ��� ���

I�� J

I � J

I�� J

I�� �J

I � �J

I�� �J

!"�#

E� �� �� �������������� � � �� ���� �� � �� �� ��� ����� ����

� ) �� H��������I���!��� @�� �A� @;� K� LA�� @+�� ,� ��� MA ��

� ?M ����FG �������F�� �G ��� ����

$�� �����"�� � � �� % � ��" ������ �� ��� � � ������� ���:� �5� :0� 1���

� �� + �� )�� ��� ���

I� �� �5J

I�� �� �5J

I� �� �5J

I�� �� �5J

I� �� �5J

$�� �� ������ � � �� � � � ����� �� ������ � ����������������� ��� � � � ��� �� �� ��@� � �$���� ��� �� ���������������(����� ��� �� �� ����� � � �� � �� � ��� ��� E� �� ��� �� ��"� � ��� �� �� � � � � ��@� � �� ������ �� � � ��" �� � �����

Page 36: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

� �� + �� &��� )�� ��� ���

I�� J� I�� �� �5J

I � J� I� �� �:J

I�� J� I�� �� �:J

I�� �J� I� �� �:J

I � �J� I�� �� �:J

$�� ��� ��� � ���� � � � �� ���� ����� � ��������������� $�� ���� �� �� �� ����� �� ��� � �� �� ������ �� ����� ��� ��� "��� � ����� ��

� ��� ��� �� �+�

������� ?M 2�

� )���

I� �� �:J

������ $�� � ���� � �=������ ����� �� �� ����� �� ������ �������� �� �� �� �� �� � ���� �� "���� � ��� ���� �� �� ��������� ������ ����" �� � " �� � ���� �� "���� � ��� ��������C�� � ����� ���

!"�������/� $�� � ���� � �� �������������� ��� ��� ���� � "� � �� ��

�� �� ��� �� �����

� & �� H��������I���!��� @A� @���A ��

� ?M ����FG �������F�� �G ��� ����

� &���

=����� ��� ��� ���� ������� �!:������ ��������

Page 37: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� )���� ����� )���� � !

��� ��� �� ����������� � �������������� �� �� � ��� ���� ��� ����� � � ������� � ���� � �� �����

�� � ���� � �� �� � ������� ���� � �� �� � ��� �� ������� ���� � "����� � �� �� $�� ���� ���� �� ����� ���� �� ���� � �� �� ���� �� � �� �� �� ���� � � �� �� ��� �� � ������ $� �� �������"�� � � ��� �� �� ���� �� �?

I/� /� /� /� /J� I/� /� /� �J� I/� /� 5J� I/� �� �J� I/� 2J� I�� 5J� I�J�

� �� � � ���� � �� ��� ��� � � ���� � �� � � � �"�� ��� �� � ���� ��� �� ���� ��

��& �� ��� ��� ����

�� ����� �� ���� �� � ����� � ���� �� �� �� ���� �� (����������"��� � �� ��� � � ���� � � �7 �� �� �� ���� � �� �� �� �6� �=������ �� �� " �� � � ���� � �� ��� � ��� � ���� ������ ��� ��� ���� � ������ �� �� ����� �� � ���B ��"� �� $���� �� �� �� ��� � �� � �� ���� � � �� ��"� � � 7 ���� � �� ��"���� � �� ���� �� �������� $�� "� ������� � ����� �� ������� � �� �� � ���� � � �� ������� ������ �� �� ������

�������

��� �� ������ $� ��� ��� ���$�� ������� ������ ���� �� ��� �� �= � �� � %�� � �� ������ ��)�� �� ������� ������ �� �����"��

�������# �������� '

�� ������� �� �� ������� ��� ��� ���� �� ������� ���� � ����� �= � �� �� ������ �� $�� ������� ������ � � �� �= �� �� ���

� � �� ��������� ��� ���� ��

/������

� ?M Q��������R

Page 38: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

" � �� ���� �� ���������� � �� ����� �� ��������� � ���

!"� ��� ($�� �����"�� ��������� � ���� �� �� �� � ��"� � � 7 �����

� 5���� ���<�)� �� ����������)�:����� ����� ��� �����&�J9� �$� ��)� �& D� ��������N ��#�� ��� �� ��� J����� � �� ������������ ������� ����:� ��J���J �� � � J�J ��� ��� �����

� 5���� ���<�)��!���

0� �4� ���� � �5( ��������� ���2�� -�� �� ��< -

����

�������� ��* 6� �� � ������ � �� ������� ������� ��� )���+ �� ,��� - �� ���� � . �� � ���� /13�

��� �� !"������� $� ��� ��� ���E� �� " �� � ���� �� �� �� � � �� �� �� � ����� �=� ����� ��� �� � � ��� $�� ������ ������ ���� �� �=� ����� � ���� ������ ��

������# ���� '

$�� ����� �� � ������ � ���

� ���������J=���� ��)���� J��

=���� ������< �5(>

�� /

$�� �� �� �� � ������ ������ � � ���� � � ����� ��������� � ����� � � � � �� ������

��������� )���� �� ������� ������� "���� ��� ���� �� ������ ������ ����"� �� � � ��� � �� �� �=� ����� �� ��� � ����� ��������� ������� �� ��� �� ������ ������ �� �� �� �� � ��� � � � �� �� � �� ������ ������ � ��������� ����� ��� ��� �� �� �� �

Page 39: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� )���� ����� )���� � #

� ���������J=���� � �! :��� J��

=���� �� ���< ?**@>

�-��" �����8 A*A ���"������<

?**@>

*

=���� �� ���< ?*@>

51�:��

!"� ��� )$�� �����"�� �� � ��������� �� �� ������ ������ �� ��������� � �� ���� � �� �� �� ������� $�� � ���� �� ���� ��� ��� �F�G� ��� ��� � �� �� �� ����� �� ��� �� �� ����� �� � ������� "���� �� �� �� ����� �� �� �� ����� �� �� ���� ����

� O��G� ��9��!� �� �����&����)�:������ ����� �� �� P�� / �$���� ��� �����:��� �� &� P �� ������������ �������&�� �� ����

� �& �����P� � �$��� � �� P���� ����� � �� ���������J9��!� �� �� �����:��� J��� #$��� ��� ������� �� �� ��� �����&�J �����:�� �� ��-!����� �������� D�Q�J� ���� � �� ���������JI����� ������!� �� �� �����:��� J��� ��� ���� ��� �&�� � �� ���������J9��!� �� �� ������ J��� � � ��� ��� �����

$�� �=� ����� ��F�G�� ������ ��� � �� �� ������ �� ����� ��0�������� � � ��� �� � ���� �� ������

� O��G� ��9��!�� �������� ��

0���� �� �� �����< )>

� M �

Page 40: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� ���������� � �� ����� �� ��������� � ���

� �� �����"�� � � � �� �� % � ��� � �� �� ��� / �� ������ �� ������ .��� �� / �� � � ���� ����� ��0���� �7 ��� ���� ���� �� ������

� O��G� ��9��!�� ����!3�� ��

0���� �� �� ������< (>

� ������ �� ��������< �������� (

����� ��5����� �� �� ������< ">

0���� �� �� �����< ������->

� M�

�������� ��* E� �� ������� � ��� �� ����� � ������� 6� �� � ��� ����� ��� )��� �� ����� /�������� � ���� ��2�

�&����� ������ � !"�������6� � ��� �� �� �� ��" �� "�� ����� ���� ��� �� �� � � � ����� �� �� �� ������� ������ ����� �� ������� $�� ������������� ���� �� �� �� � � ��� �� �� ���� ������ ���� ��� � �� � � �=� ������ $�� � �� � � �� ��� � ������� �=� �������

� � �� J�3�4 ' J�

� ?M Q�S=T� O /R

� � �� ������ � ��

?M ��� O /

��� �� �� �� �� � �� � �� �� � �=� ������ � ��� ����� �� �� � � ��

� ������� �����)�� ������� *'*��

����� ����

Page 41: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � ��

$�� ���� ������ ���� � ���� �� �� �=� ����� � � �� E� � � �� ��� � ���� �� �� �=� ����� �=�������� � �� �����"�� � �� � �� �� ����� �� � ���� �� � �� ��� �� �� �� �� �=������� ���� ��� �������

� � �� �

� ?M �

� > �� ������ � ��

?M ��� O /

� �����>��

��� O /

�������� ��* 6� �� � ������ ��� �� ���� ������� ��� ��� ������� ����� �� ��� /�������� � ���� �/1�

������ $�� ����7 �� � ��� ����� � � �� � ������� � �� �� �� ��� � � ��� ��� � ���������� � �� �� ����� � ����� � ���� ���� �� � ���� � �� ����� �������

��' () �����% �����

���� �� � ��� �� ��� � � " �� � ��� � ���� �� � �� �� � �"����� �������� �=���� �� �������� �� ����� ������� �� ��� ����%����� $��� ����� ������� �C�� �� "��?

� >�%�� � ��� ���� �� ��� �� �

� �������� ��" ����� �������� �=� ������

� +=���� ������� � �� �� �� ���- �� �"����

.�/�� %�� �'����� �� � � ��� � ���������� � � �� ���� � �� ��������� ���� ����� �� � � �� ��� � � �� ����� �� �� �� � A�-��B����A�

Page 42: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

� ��� �� � � � ��� �� ��� �� ��� �� � � �� ��� �� ������%�� �� �� ����� A�-��B����A� �� �� �� ���� �� � ����

� *�����R����:���* �� @�� �� ������� ��� ������ ��A�� ����� �� R����:��� ��

����

� ����� @ ���� ��� A� R����:��� ��

����

�� �� � � �� ��� �������� �� � ��"� � � �� ��� �� ����%� � �" ��� �� ������� � � ���� � � � �� ����� �� �� �� �A�-��B����A� ��� �� �� "���� � �=� ����� �� �� ��� ���������� ������ �� � ���� � A�-��B����A � �� �=� ����� �� � �� �� ���� � �=���� $�� � ���� � ��� �� � ���� � ���� $�� ������"�� A�-��B��� ������A � ���� � ��� ���� �� � �� � �� � ����� �� % � � ������� ���� �� $�� ��� � ��� �� ���� �=���� �� ������ ���� ���� � �� / � � �� ��

� *�������� !������* �� �������� ����� ��� ������������ ��� @ ����� A � @ ��-��� ��00�������� A�� ��� ������ ����� ��+��,�� ��� !������ ��

�����

� ����� �����,�� ��� !������ ��

����

$�� �������� � ���� � �� ����� �� � �� �� �� ���� ���� �� �� �� � �=� ������ ���� ��� ��� ����#���������'� ������� ������

A�-��B����A# ����8 ��������� '

�� � �� � � ���� � �=���� $�� �����"�� A�-��B�01=�CA � ���� � ���� ���� �� � �� � ��������� � � �� ��� �� /�

Page 43: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � ��

� *�����G9;= L* �� �����&� R���� ��� ����� &� ������ �����$��)� R� � ��� ��)����&� R� � �� ��� �����

� ����� �3�':� G9;= L��� ��

����

� ����� �4� G9;= L��� ��

�����

� ����� �� G9;= L��� ��

�����

!"�������/� ������ �� A�-��B�01=�CA � ���� � �� �� �� �� �� � � ��

�� � �=� ����� �� ���� � � �� �� �� ������� 6� �=������ �O �O/�� ���� � ��� � �� � � � O �O / �� ��

�� >�%� �� ��� ���D1�/# ' "���� ��� �� � ����� ��� �=� ����� ��� ��������� � � "�� � � �� � ���� � ��� �� ����� � � �� �������

%������ *�������$�� ����� ���"� � �����C�� ��� ��� �� �� �� �=����� 7� E� *� ������� �� ������ $���� ��� �� � ���� ������� ����� � ������ $����� �� � �� �� ���?

� ����� ��� ��� ����� � �� �� ������ � � ���������

� *������ ��� ����

� ��� ���� �� �� ��� � ���

����� ���� ��� � ������� ����� �� ��� �� �� �� ������� ����������� "���� � ���� � ������ �� ������ ������ ����� ����"� ���� ��%� �� ����� �� �� � �� ��� �� � $�� ��� �� � � ����� �� ����� "�� �� ���� ��� ��� ��� FFG�

� 1 S4 � S4 M�

Page 44: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� ���������� � �� ����� �� ��������� � ���

F3UT 0GUT 1

� ����:� 1 S4 � � � S4 1 ��

�����

� ����:� �1S4��S4M � 1S4��S4M� ��

�����

�� ����� ����� �� ���� � �� ��� �� � �� � ���� � ������$� �� &F*@ �� � ������ "�� �� " ��� F*#&8@'�

� S4�1� ���

3UT 0

����� ��� �� �%= ����� � "���� �� ��� �� �� ������ ��"���� ��� ���� ��� �� �� � �� ��� �� ��� �=���� "� � � ����

� S4���� S4�+� ��� S4�1� �� M��

UTF2G� �UT :� UTF3� 0� 1G

�������� ��* 6� �� � ��� ���� � ���� ������� �� � ����� �� �� ��� � ����� 5 �� �� ������������ ������ � �� ���

!"� ��� (E� �� ��%� �� ����� �� � � �� ��� �� �� ������� � � ����� � � �� ���� $�� �����"�� �=����� �������� �� A�������� ��������� � � �� ��� �� � � � ���� � �� � ������� "� A����������

������������ ������� $�� %�� ���� ��� � &������ ��� �=�� ��������= ��� � � �� ���� "�� �� ������= ��� � �=�� �� ��� ��� �� +��� A������� ��� �� �� � � O �� O �� O �� "�� � �� ���� �� � � � ��� ��� �� $�� ������� ������� �� �� �� � ������ �������"�� � ��������� ���? �� M �/� �� M �/� �� M �/� �� M ���� M ��� �� M ��� �� M �� �� M �� �� �� M ���

Page 45: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � �'

$�� �����"�� AF*A � ���� � ��� �� � � �� � �� �� � �� ��������������� A�"��� � � �� ��������� �� �� ������� ������ � � ������� $�� ��� �� �� ��� �� ����� ���� ��� � �� ��� �� ������� � � �� ��� �� ������� � ���� 6� �� � ��� ����� ��� � ���������

� �����&����� �)�����!����"��

E� �� � ����� ��� ���� �� �=� ������ �� ��� AF*A� ����� ������� � ��%� � �" ���� G �������� �� ������� � � � ����� � �� ��� A�-��BG �������A�

� *�����T� ��������* �� @ *'*� *3*� �� �� ���������� ����&!�������$��)� *S4*� A�

�����%�� ���� �� ?M

�� O� ��������� ����� ����� �F����� � � UTG�$�� AF*A � ���� � � ������� �� "� A��������� � �� � �� ����

� � �� � ��� ��� � �� ������ �� ��� � �� � �� �� � �� � �� ������ �� E � ������ �� � � �� � � �� AF*A ���� �� � �� � �� ��� �L �� ��� AF*A ������� �� ��� �� ��� ��"�? �F�O �G M ��O �� ��F�O �G� M ��O ��� �� � � �� � � �� �� AF*A �= ��� �� ��� ���� ��E� � � ��� ������� �� � � ����� �%�� �� ��� "�� � � �� �� �� � �� ���� � ���� ��� ���� �� �� �� �� �� � ��������� ��� ������ AF*A � � �� � �� � ���� ����

� *S4* �� ����� ���T� ��������� ���T� �������� �� ����� L���� !�L���� ��L����� ��L��� �� > �� ����:� ���>� ����� � ��!� ���

� �& ��L������ �� ��L������ �$��� � 3 ���

� ���& ������� *'*� �$��� / � �� � �! � !'�� �� �S4� � !S4� ' �S4�0� ���*S4*� �� ����

� ���& ������� *'*� �$��� / � �� � �! � !'�� �� �S4� � �S4! ' �S4�0� ���*S4*� �� ����

� ���& ������� *3*� �$��� / I��. �!� �$� ���� &������ �& �0� L���� !�L��� �� �������� ������L���� ���

Page 46: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� ���������� � �� ����� �� ��������� � ���

� / ;�# �S4� � L��� 3 �!�L���S4��� �& L���� �$��� �& ������� *3*� �$��� L���� !�L��� �� �������� ������L���� ���� L��� 3 B*S4*B��� !�L������ ����� B*S4*B��� ���� ��� �&�� ����� L��� 3 *S4*�!�L���� ���� ��� �&��

� ���& ������� *3*� �$��� / <� ���� �� �$� ������ :!� ������ ������ / � ������ :� � ����!�� $���0� L���� !�L��� �� �������� ������L���� ���� �& L���� �$��� B*S4*B��� ���� ����� L��� 3 *S4*��� !�L������ ��� �&��

� ����� B*S4*B������� ��� �&�� ��� �����

E� �� ����� ��� �� ������� � ��������� ��� �� �� ������� ��� � �� � � �� ������ ���� �� AF*A�

�������� ��* 6� �� � ��� ���� � ������ ������ ��� � ������ : �� �� ������������ ������ � �� ���

� *S4*�9�9� �� �� *S4*�U�U� �� �� *S4*�P�P� �� ��� *S4*�9�U� �� P� *S4*�U�9� �� �P�� *S4*�9�P� �� �U� *S4*�P�9� �� U�� *S4*�U�P� �� 9� *S4*�P�U� �� �9�

(��� AF*A �� � � �� ��� �� � �� �� " �� � �� �� �� A��������� ��� F* �� �� � ��������� �������

� � ' 39 ' ,3U ' �3P� S4 �+ ' ,39 � 13U��

�� O 2/ � O ��� � 5�

� �+ ' ,39 � 13U� S4 � ' 39 ' ,3U ' �3P��

��� /� � � 2� O 25�

Page 47: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � �!

� +� S4 9�

�: �

� �� �����"�� �=������ � �� � ��" A������� �� �� �� �� ��� ���� �� � �� � ��" ��� ��� �

� � S4 U�

�UT �

� ���! ���� ������� � S4 U�

�P �

!"������/� $�� ��� �� �� � ��� �� A�������� �O ��O ��O��� �� F�� ��� ���

��G�F�� O �� O �� O ��G� E� �� ����� �� ��� ��� �� ��� ����� �� �� �� �� � � � ��� �� ��%� � ��� �� A�������� ��

� ���! ���� ������ ���! ��:� ������

� ���! ���� ������ ���! ���� ������

� $ �� � ' :39 ' �3U ' �3P�

� ?M �P O �P � O �P� O �P�

.� �� �� � �� ������ �� �����"�� ��� �� �� �� ��� �� �� ��

� $��� �� ���:39��3U��3P� � ��4':4'�4'�4��

� �$ ?M�P� �P � � �P� � �P��P� O �P� O �P� O �P�

&���� �� 4 F* 4��� �� 4��� F* 4 �������� � /�

� $ S4 $����

Page 48: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� ���������� � �� ����� �� ��������� � ���

�P F�P� �P � � �P � � �P�G

V/

O�P F� �P O �P� �P� O �P �G

V/

O�P F� �P O �P� O �P� �P �G

V/

O�P F� �P� �P � O �P � O �PG

V/

V/ ?M �P� O �P� O �P� O �P�

� �� ���&��D��

/

� $��� S4 $�

�P F�P� �P � � �P� � �P�G

V/

O�P �P � O �P� O �P �P� � �P �P �

V/

O�P �P� � �P �P� O �P� O �P �P �

V/

O�P �P� O �P �P � � �P �P � O �P�

V/

V/ ?M �P� O �P� O �P� O �P�

� �� ���&��D��

/

� �� � � ���� �� AFBA� �� ���� �� �� ��� �� �� � A��������� �� ��������� �� �� ������� �� �����"�� ����

FB# FB" ' . "� FB#"F*-' . #FB-' F* #FB"'�" F* #FB"' . ( . #FB"' F* "�

Page 49: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � �#

!"�� �� � � ��� �� � �� �� � ��� ��� � � ��� �� � � � � ���� ���� ����� ���� � ��� ������ �� " �� ��������� ���� � ���� �� �� ����� ��� �" ��� � � ��� A�"��� � �������� �=���� �� ������������� �� � �� � �� �� ����� � ���� ������� �� ����� �� ���������� �" ��� � � �� �� ��������� ���� � ���� ��� E� �� �=������ �� ����� �������� ���� ��� �"���� �� ���-� ��� ��������� ����

��������� ��� �� !������ E� �� �� ��� � ��������� ����O

�������� O O ���O �� �� ��� �� ��� � � �

���D1�/# �8 )8 (8 %%%8 � '

E� �� �� �=�� �� �� ������ �� �� �� �� ��@� �������������� �� ����� � �� "��� �� �� " �� � � ���� � "�� ���� �� �� �� � A��B�A �� �� ������ � � �� ���� �������� � �� (����%������ �� �� �� �� � ��@� ���� �#��������'

"�� ����� � � �� �� ������ A��B�A �� �����"��

A��B�A# ��������8 � '

$�� �����"�� � ���� � ��@� ����� � ��������� � � "�� ����������� "�� ����� � ��

� *��&&�IVGW;V8* �� �����!�� ����� �� �� ��� � �� ��)������ � �� ��-� �3��)���'�� ��00���)��, ��� BIVGW;V8B�!� �� 3 ��&&�!� ���� ��� �����

� ��&&� IVGW;V8��� � � � � � � � � � �� � ��

-�*E���F�� /� �� 5� 2� �� :� 3� 0� 1G

� ��&&� IVGW;V8��3�� ,�� � �1�� � 1��� � ��

-�*E���F� � /�� /3��� 55� 5�2G

Page 50: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� ���������� � �� ����� �� ��������� � ���

��������� ��� �� ���- !������ $�� ���������� �� �� A��������� � ��� ����� /�� ���� � ��� �� �� ���������� �� �� � ���������� �� A��������� �� �� F�G M �FG� (�������� ��� ������������ ������%�� � �� �� 9����� �� 0 �� � �� ��� �� ������= ������ � �� � ��� � �� �� �� ������� ������� �� � � �� � �� � � �� ���� ��%��� �� �� A���������

� � S4 9 S4 U�

F�UT �GUT �

� � S4 � 9 S4 U ��

�UT�

E� �� �=�� �� �� ���- ������ �� �� � ������� �� ����������� ��" � ���� ��� � �� �� �� A��������� �� �� " �� �� ���� � "�� � ��� �� �� �� � A�� ���-B�A� �� �� ���- ������� � � �� ���� ��� � ��� ����� � �� $� �� �� � � " �� �� ���� � A�� ���-BF*A �� ������� �� ���������� ��" � A����������

$�� �����"�� � ���� � ��� �� �-�� ��4 ������ � ��� ����� �� � � �� �� �� �� �� � #F*�'F*� ��� �� ��� � ������ �� � ���� ��

� � �� � S4 � S4 >�

� ?M F�UT GUT

� ���� ���$� �� B*S4*B� B*S4*B� �������$��)� :������$��) ��� �������$��) � ��

����

� �� :� ��

�� �

Page 51: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' ��������� � ��� � ��

�� ������� !������ E� �� ���� �� �� ������ ��� � ���� �������%����� ��� �� ������� ������� $�� A�� ���-BF*A � ����� � � �� � ��� ����� ������� �� �� �� ����������� ���- � ����������� � � ��� �� � �7 �� � ���� ��

� *�� ���&��S4* �� ����� � �� ����� �� :� ��� �& ���� ���$� ��� B*S4*B� B*S4*B� �������$��)� :������$��) ��� �������$��) � � �$��� !�����&��� �� ���&�� J�������) �$� ����������� ��#J��� � S4 � : S4 � ��� ����� ��� ��� �&�� ��� �����

������� �� ���������� ��" ������%�� ���� � �� �� �� A����������

� � S4 9 S4 U S4 P�

FF�UT �GUT �GUT�

� �� ���&��D��

��

�� �� �� ����������� ���- � � � ����� �� �� ��� �� ������ �� ��� ���� � �� ������ ��� �� �� ���- "���� ������ ��������� �� �=� ������

� ��&��������� ���&�� �� +�

�����$���������� ?M �

� # S4 � S4 � S4 >�

FF�UT�GUT GUT

� �� ���&��D��

�� ���&��S4� J�������) �$� ����������� ��#J�� ���&��S4� J�������) �$� ����������� ��#J

Page 52: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� ���������� � �� ����� �� ��������� � ���

�UT FF�UT GUT G

�������� ��* 6� ������ � ��" � �=�� ���� �������� ��� ���"���� �������� �� ����� 6� ��� ���� � �=���� �� ���������� ��� ���� �0� ������ �� ��� ��� &�������

��* ����������

- ���� �� "���� � � ���� �� �� ����� �� ������ � � � ������� ������� � �� ������ �� ����� �� �� �=���� ����� � � �������� � ����� � ������� � �� ������

Page 53: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� ���������� ����

��� ���

- ���� �� ����" �� � �������� � ��7 ��� �� ������� "�� � ������������ (����� ��� ��� ��� ����" �� � �������� ����� � ���� ���� ����

0 ����

$��� ����� ���� ���� ����� ��� ���� ��� ��� � � � ��� �� ����� �=�� ����� F���� ��� �� �7 ����� �� � ���� ��G� �� ����� �� �" �� ��� �� ���� ����� � ��� ��������� � �� -���������� ��� �� �� �� ����

$�� �� �� ��� ��� ���%�� �� ���� � ���"� � ����� �� �������

� +���� ����

� -�������

� ��#�� �������

� 4�� �� - �� �����

������������ � � ���� �� � ��� ���� �� ��� ��� ���� ��� ��� �����%�� �� ����� E� �� " �� ����%�� ���"� � ������ �� � � ���� ���� �� � ����� �� �� �@� ����� "������%�� �� �� ������� $��� ����� ���� ����� � ����� �� �� ���W���� �� ��� ��� �� �� �� ���"� � �������

���$���� � � � ������� �� � ���� ����� � ���� �� ����� � � � ������ ������ � �� �� �� � ������� �� �� ���� � ����� ��� � � ������ � ���������

25

Page 54: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

%�&���� � � ������ �� ����� ��� ��� ���� � ���"� � ����� ��� ��#���� ���� � �� ������ � ��#�� �� ��%�� �� ������� ����� ��� ��� �� ������� � E� ���� � "�� ��#��� �� ����� ������������ � "���� ��� ����� �� �� �� ��� �� ������

'������ �������� ����� ��#��� �� ������� �����%� � ��� ��� � �������� �� $�� �� ���� �� ������ �� �� ��#�� �� ���� � ���� �� � �� ����

!"� ����6� ��� �� ������ � �� ����� � � �=���� � ����� ��� ���

������� (� ������ ����� ��� ����� ���� ��� �� ��� ���� ���� ������� � �� ���������� � � ���� � ������ ��� �� ��������'� � �� �� ����� "�� �����#'%%% �� ��� "�� ��� ������

� X� �O�������� �� ��!����� ����������� J)�������� &�� �� ������ �� :���J�� ������ )���� ��� ����� ��!����

� ��!�� �� 2�� )���� � �� ������� ��!�� �� ' ��!���� *������)���� *� X YY ��!�� �� ��� ������ ��� ��!���

(������������ ?M�����FG

����� ����� L

������ ������L

���� �� �� Q��� �� �� ���� � � �������RL

��� �����

������� ������ $�� ��� �� ��%��� �������� � � ���� � ��%����� $�� ��� ��@� ���� � � �� �� �� �� ���"� � ����� ������� ���� F�� �� �� ������� � ���� G �� �� ������ ����� ��������"�� �� ���� ���� � ���

������� )� �������� � �� �����"�� �=������ �� � ���� � ��� ���� " �� ��� ��� � ���� ���

� X� �O��������I��� �� ������� ����������� J)�������� &�� �� ������ �� :���J�� ����� ��!��� )���� ��� ��!�� �� 2�

Page 55: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� �'

� )���� � �� ������� ��!�� �� ' ��!���� *������)���� *� X YY ��!�� �� ��� ������ ����� )���� �� �� ��� �����

E� �� ����� �� � ���� � � �� �� �� �������������� ���� �� � � ��� �� ���� � � ��������

� & �� X� �O��������I������

� ?M ����FG

����� ?M / O ����� L X����������XF �������G��� ����

� &���

()

� &���

(*

0 ��� ������ ���� ���$�� ��� �� �� ��������� �� �� � ���� � �� ������������� � ������� �

� �� � ���� � �� ���� �� ����� �� ����� ����� � �� ������� � � ����� � �� ��� ���� ���� ����� �� ����� �����L �� ��� � �� ����� ��� � �� �� �� � ���� � � �� ����� � $�� ��� �� �� ��� �� ����� �� ������� ������ ��� �� � � � ��@� �? �� ����� � �� ����� ������� �� �� � ������� � � ������ �� �� � �� � �=����� � �

� ��� �� ���� �� �� ��� �� � �� �� ������ ����� �� ����� �

��� ����� �� ������� $�� ����%�� ��@� ��� �� � �� ��� � �� ��� ���� ���� �� �� ���� ����� �� ������ �� ��������� $��� ���� �� � ����������� � ���� �� ����� �� �� � � � � "���� � "�� � ����� (���������= �� ��� ������ �=�� �� ����� �� ������� 6� �=������ � ���� ���=�� �� �� ����� ����� � �� �� ��� ��� ��

� X� �O����������)���� ����

()

Page 56: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

��� �� ����� ������� ��� �� <5� � ��� �� ��%��� � � ���� � � � F� ��� ��G �� ����� ��� �� �� �=�� �� ����� �� �������

�������� 0 ��� !"����$�� ��� ����� ����"� �� � ������ ��� �� �=�� ��

� !�� X� �O�������� ��� )���� ����� )���� ����� )���� ����� ��� !���

(*

(+

(,

���� �� ���� �� � � ������ �� �=�� �� ����� �� ������ ���� ��� �� �� ����� � ��� �� � ���"� � �� �� �������� �� �����"��� ��� �� ����� ������� ��� �� <5�

� ���� �������$��� ����� � ������ ��� �=����� ��� ���� (��� �=������ � � �� �������� ������� � ��� � �� � �����%� ���� ��� � � � �� � � ���������� �� �� � ����� �=������ � � ��������� �� ����� �� �� ���� � ��� ���� �� ��� � �� �� ����� ��������� E� �� ���� ��� �� ��� ���� ����� ��� � � �� �=�� ��� "�� ���� E� �� ������� �=����� ��� ��� ���� ���� �������� �� �� ��� � � ��� � �� ����

$�� �����"�� ����� � � ���� �� � ��� ����� �

� (��= �� (������

� )��� ��� ��� �� 9��� �� � ( � ��

� )��� ��� ��� $� � �� ����� -�������

� $�� ��� (����

� ������� ��#���

� �� ����� �� �����������

Page 57: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � �!

��� �+� �) ��� ����� ���

$�� ���= �� ��� �� ��%���� �� �� � ������ � �� �� � ���� ������� � ����� : �� �� ������������ ������ � �� ��� A� � �� ��=����� �� � ������ ��� �� ��%����

� ��!����� ������ ��� ����� �� :��

� � �� �� : �� ,�� � �� � �� �4��:4��� ��� ��!���

+��� ��� ��� �=� ����� �� �� � � ��� �� "�� �� �=�� � �(� ��"� ����� �� ������� �� ��

� ������ �� � ��� �� ��%��� ����� ����?

�����#'

���� �>

�"���� �>

����� �>

������� �>

����������� �>

��� �����

$�� ������� ����� ��� �� ��%��� ��

� ��!���� ����

�����FG ��� �����

$��� ��� �� ��%��� ���� ��� ����? �=�� �� �� ������� ������� ���� ����� ������ �� ������� � � ���� �� ������� $�� ��� �� � "������� ���� ��� �� � �� � ��� ��

��� 0 ��� .�/���+�� � ��� �� ��%��� ����� "�� �� ���"� � ������ �����"�� ��� ���� ��� �� �� ������� 6����"�� �� �� � ������ ����� �������� �� �� ��� �� ����� $�� ���"� � �������� ��� ����� F� # � ���G � ����� � ��� �� ��%����

Page 58: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� � ���� ++��� ,��� �������

��� 0 ��� 1 '$�� ���� �� � ��� �� ��%��� ������ �� �� �����"���

� Y� � � �� � ����� ������� $�� ���� �� �=�� �� "�� �� ���� �� ��%��� �� ���� ���� � �� ��� � ��� ���

� � ��� �� ������� ������ �� ���� ��� �� � �� �=�� ������ �� �� ��� ���

$�� ���� �� � ��� �� ��%��� �� ���� ����?

� �������� � ����� �� ������� �� �� �� ���� �� � �� � � ���� ������

� � ������ ������ � ��� ���� � ����1 � ���� ������ ���� � ����� +=�� �� � ������ ����� � ����� �� �=�� ��� �� �� ���� �� �� ��� �� ��%����

0 ��� ���� �������� �� ��%���� ���� "�� �� ����� ���"� ������� �����"�� �� �F����G ��� �� �� ������� $��� �� ������ � �� �� ������ �� �����"�� ���� ���"� � � � � ���� � ��%���� )���� � ���� ��� ��"��� ���� �� ��%���� �� � ���� �=����� �� ���� � ���� �� ��� ��� � �� ������ F� ������G "�� � � ����

�������� ���������� +�� � ��� �� ��%��� ��� � ��� � � �� ���� ������ �� ������ ���� �� ���� �� � ��� �� ��%���� ��� ���������� ���� ��� � �� ��� �� � "���� � ��� �� $��� ����"� �� � ��� � � ��� �� "��� �� �" ��%��� F���� � �� �� � �� ���� ��� ���� ��� ������� � � ���G�

��� � ���� � ��%���� �� ��� ��� �� ������� �� ���� � ����+����� ���� �� ����� ��� �� ��%���� ������ ��� ��� ���� �������� �� ���� �� ����������� �� ��@� ��� ��"�� �� ����� ���������� �� �� �������� ���� ��� � � ����� "���� �� ��������� ��� � �� ��� �� �=� ����� ������ $��� �� ���� �� �� ������������ �� ���� ��� � ��� �� ��%��� �� �� �� �� � ��� ���� ������ � ��� � ����������� - ���� ��� � �� ��� ���� � � � ������ �� ������ "�� � � ���� �� ������ � ���� �� ��� �� � � ���� ��� ��" �� �� ��� � �� ������L ��� �� � �� ���� �� ��� ����

%� � 0 ����� ������ ������ ��� ����� ��� �� ����� ���"� � � � ���� �� ��%���� ��� ��� � ���� "�� ��� �� �� � �� ���= � � ������

Page 59: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � �#

����� �������� (���������� ���� ��� ��� � � �� �� ������� � � ���� ��� ���� � �� �=�� �� ����� � �� ���� ��� ��� � � � �����@� ���� ����"�� �� ��� �� � �� "���� � "�� �=�� �� � �� �����%�� ��� �����

� ;�� ��8��!�� �� ��!���� ������ �� ����

������������ ?M�����FG ������ !L ��� �����

� ;�� ��8��!������

!

A� �� �� ������ F�� ��� �� �� ��� ��G ��� ������� ���"� ��� 1 ��/������

� ��!�� ;� ��8��!���� ������ �� ��� ��!���

���������������� FG ������ !L ��� �����

� ;� ��8��!������

����������� ? �!

��� �� ��%��� �� � ���� ��� �� �� ���� ���� �� ��� F"��������� � ���������� ��� �� ����� ���"� �G �� ������� �� ��� ���� �� ��� �� ��� ��� ���� � ���������� $�� ��� �� � ���� ��� �� ���� ��� ���� �� � ���� ��� ���� 6� �=������ � ���� � �=�� � ������ ���� ��� �� ��%��� ������ � � � �

� ��!�� ;� ��8��!���� ������ �� ��� ��!���

=����� ��� ;� ��8��!��� ���� ����) �� ����)� ��*;� ��8��!��* #$��$ �� ���������

+=�� �� �� � ��� ��� �� ��%��� ���� � ���� � ��� ������ �� �� ��� ��� � ���� � �� � � � � � � F� ������ ��������� �� ����� 1�� �/����� � �� �" ��� �� ������G

� ;�� ��8��!�� �� ��!���� ������ �� ����

������������ ?M�����FG ������ !L ��� �����

Page 60: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'$ � �� ���� � ���� ++��� ,��� �������

��������� >� � ����� � ���� ��� �� � ���� �� ������

� <� �;� � �� ����� ;� ��8��!�� ��

�������� ?M���������������� FG ������ !L ��� �����

� <� �;� �����

����������� ? �!

+=�� � �� ���� ��� ��� � � � ��� ��� �� � �� �� ���� ����� "�� ���� � �� ��� �� "�� � "�� � ����� ��� ����� �� "���� � ��� ��� ������� � ���� ����

����� � ��� �� ��� � ��� ���� �@��� �� ��� �� �� � � ��� ��� � �� �� ���� ���� ��� �� ����� ���� � ���� ���� ���� ��� �� ��%��� ����� ������� �� � � ������� ��� �� �������� �� �� � � �� ���� .� �� ��� "�� � � � ��� � � ���� ���� ��� �� � � ��� ��� �� ��%���� �� ��� �����2� �� ���������

� ;�� ��8��!�� �� ��!���� ������ �� ����� J����J� ����

=����� ��� !�.��#�� ����

$��� ��@� � � �� � ���� � � � ��� ��� ����� ��� ��� �� ��� �� � � ��� ��� �� F�� ��� �� ��� �� �� �� ����� � "������ ��� �� �� �������G� ���� �� �� ���� ��� �� �� ��� ���� �� �������� ��� � ������ �� ������� � �� ��� ���� ������ (� ��� � ��� � ������ �� ��������� ��"�� � �� ����� �� �� ��� ����� ��� ���

.���������$�� ����� ���� ����� �� �� ��� �� � � ����� ���������� ��� �� �� ������� ��� ������ � �� ����� ���� ����� � � �������� � ��� �� �� ���� ��� ��� ����� � ��� ��� �� ����� ���� � ��� ���� �� ���� �� � ���� ���

*���������� ������� - ����� � � ��� ���� ���� � ���� �� � ������ � ��� �� �� ��� �� �� " ��� � �� ��� ���� � ��� �� � "�� ��� �� ����� ��� �� � ��� ���" ��� �� ���� �� �� ���"� �� # ��� �� "� �� � � � ���� � ��%����

Page 61: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � '�

� T���� �� ��!����� ����������� J � &���� ��!��J�� ������ ����� ��� �� ������� ������ JT=GGV (VLG5J �� ��� ������ ��� ��!���

��� �� ��� �� �� � ���� �� ���� ���� � �� �� ����������

� ����� T���� ��

�����FG

������ ��� L

���� �� �� Q�� % � ��� ��RL

��� �����

$�� ������ ����� ��� �� �=������ ��� � ��� ����� �

'����� ��������� 4����� �� ������ ��� ���� "��� � ��� �� ��%������ �� �� ����� �� "�� �� ������ ����� ���� 6����"�� �� ���"� ������� �� � ��7 ��� �� �� � �� � �������� $���� ������� � � �� �� ��� ������ ������� � �� �� ����� �� � � ����� � � ��� �� ������� �� ����� � � ��� ������� ������ ��� � �� ����� � ������

� T���� �� ��!����� ������ ����� )��:�� ����)��� ��� �� ������� ����)� �� JT=GGV (VLG5ZJ� ��� ������ ��� ��!���� ����)��

������

� T������������

QA+**� ��9*>ZR

� ����)��

QA+**� ��9*>ZR

Page 62: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

' � �� ���� � ���� ++��� ,��� �������

����� ��������� E� �� ��� � �� ������ �� � � ����� � �� ��� ����%��� �� ��� �� ����� ����� ���� �� �� �� �� �� ���� �� �� � ���� ��� A� � �� � �� �� � �� � ���� � G���� ��� �� "���� ��� ������ �� ������

� T���� �� ��!����� ����� ����� ������ ����� ��� �� JT=GGV (VLG5ZJ�� ��� �� ������� ������ ��� �� ��� ������ ��� ��!���

*���� �� ������ � � � ������� � ���� �� ��%��� �� �� ��� ��� "���� ��� ��� � $��� � � � ���� � �� ��� ��� �� � � �=���������� � � ����� �� ������ �� � ���� ���

� ����� �� ����� � � ��� �� F� � ���� �G �� � ����� ��#�� � ��� ������ �� ����� "�� �� ���� ���� *���� �� ������ � � � ����� ��� ������ �� ������L �� � ��� ������� �� � ����� �� ����� �� �� �=�� �� ����� �� ���� �� ���� F� ��� �� � � ���� � ����G � "���� � �� ������F*���� �� ������ ��� �� ��� ��� �=�� �� �� �� ����� � "���� ��� ���� ��� ��������� � ��� � � � ����� ����������� �� "��� ��� ������ ������� �� �� ����� � ����� �� ��� ������� ������G

!"���� ���� ���������- ���� �� �� ��� ��� ��� � ��� ����� �� ������� ��� ��� ��� � ���� �������� ����� �� ������� ��� ��� �� � ������ �� �=�� ��

��� �� �=�� � � � ����� �� ��� �� ������ ����� ���� � �����"�� �� ���"� � ������� ��� "���� �����"� � F�����G ��7 ��� ���������� � ��� �� ��� �=�� �� ���������L �=�� � ���� �� ����� ���

$�� �� � �� ���� ��� � ��� �� ��%��� �� � ��� ��� E� �����" � ��� �� �� � �������� �� �� �=�� �� "���� � � ���� ��� �� ��� ����� � �� �� ��� ��� $���� � � ������ ���� �� �� F� ����G �� ������� ��� ��� E� �� �������� ����� ��� �� �� �� �=�� ��� ������� � ��� � �� ���� �� �� ��� �� ��%����

$�� "� � �=�� �� ��� �� �=�� �� ����� �� ������ � ��� �������� ��� �� �=�� �� � ����� �� ����� F� �� �� ���� ����� �� ��� �� ���������� ����G $�� � ���� ��@� ��� �� �� �� �� ������ �� �=�� ������� �� ������ �� � ��� �� ��� � ��� ��� � �����

$� ������ � �=�� �� � ��� ��� �� �� <5 ����� ������� ��� ��� � �� ��� �� ���= ��?

Page 63: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � '�

���"�� <5 � ���� �

A� �� ���"�� � � �� � �=� ����� �� ���� ��� � � ��� ��� �� � ���� � � � �� �� ��� �� � �=�� �� �� ��� �� � "���� ���"�� ���� ���� ����� ���� ������ � �=������ E� ��� ������� ����� �� ������ �� � ������� ��� �� �� ��� ��� ���=�

*���� �� ������ �� � � ���� � � � � ���� "�� �� � ���� � �� ������F� ������G� �� ������ �� ������ �� ��� ��� � �� �� �=�� �� �� �������� �� �� � �� ���� �� �� � ���� �� (�������� ��"��� ������ �� ������ �� ��� ����� �� � ���� � ������� �� ����������� 6� �=�����?

� )�� �� ������� ����� �� ��� � �� �� � �� � �� � 3 ��� �� ��� ������ ) �� )�����

� ?M �

� )� , ��

:

$�� ����� �� ����� � �� ��� �� ���� ��� ��� ��� � ��� � �� ���� �� � �� ���� � �� �� � ���� � �� "���� ��� �� � �� �� ����$� �� ��� ����� �� ������ � �� � �� ��� ������� � � ��@� � "����$�� ����� ��� � �� ���������� ���� �� � �� �� ������� ��� � �� �������� �� ����� �� A�"��� � �� � �� � "�� � ��� � � ��� ��� ��� � ��� �� ����� ���= �=��� �� �� � ����� $�� ����� ���������� �� <5 � ������ � ���= �� ��� ���� �� �� ����� �� ������ ����� ���!���� ����� �� �� �=�� ��

$�� ��� ��� G���� �=����� ��� �� �=�� � ���� �-� � �������� �- �� ������� � � ���� �� $� ���� �� ��

� T������������

QA+**� ��9*>ZR

$�� �����"�� �=� ����� ����� � �=������ ���� �� �� �����3��4/����� �� � ������� � ��� �� �=� ������

Page 64: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� � �� ���� � ���� ++��� ,��� �������

� ��<!�$8��!������

=����� *��<!�$8��!��* ���� ��� ����!��� �� � ��!��

A� �� � ��� �� �=� ����� �� ������� � �� ��� � �� ������� ������� �=� ����� <5� ���� ��� � �� ��� � �� �� �=�� ���� ����� � �� �

� �� ��!���� ������ �� � �� ��� ��!���� ����

(��� ���� � �=�� � �� ����� ���� ��3��4="����� �� �����"���=� ����� ����� � �=������

� ����<!�$=������

=����� ��!�� ���� ��� ������ *��<!�$=�����*

��������� $�� �����"�� ��� �� �=�� � � ������� ���� $������ � ��� �� ���� ��� �� ����� ����� ��� �� �=�� � � �� �������� �������

� �� ��!���� ������ �� ����

9��� ���� � �� �=�� �� ��� � � ���� �� � �� ��� ��

� ����

!

���� ��"��� � �� ��� �� � ����� ��� �� � �� ������ ����� ���� ����

� ����:� � � ��� ��

�����

$�� % � � � �� � ���� � �=� ����� ��� � � �� ������ �� "���� ���=� ����� <5� ���� ��� � �� � �� �� ����� � �� ��� �� � $���������� ��"�� � ������ �� �=�� �� �� ���� ��� �� ��� �� 6� �=������ �� �� � ��� � ��� �� "�� � �=�� ���� ������� � ��� �� �� �=�� ��� ���� � �@�� �� � ����� ������ ��� ����

Page 65: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � ''

�� �"����� �������� E� �� ��� ��� �� ���� �� �� �=�� ��� � ��� �� �� ��� �� �"����� � ���� ��

� �������� T���� ��

���

� �������� ;�� ��8��!�� ��

!

$��� � � �� ����� ������ �� �� �=�� �����

� �������� ��

!

� ����:� D � � ��

����

E� �� ���� ���� �� ����� ������ �� ���� ���� �� ������ ������ ��������

� �������� � B��������B ��

!

� ����:� D � � ��

�����

� ����:� DD � ��� ��

����

6� ��� ����� �� ��� ���� �� ���� ��� ����� �� ��� �� ������ �� � �=�� �

� ��!���� ������ �� ����� �� ����

=����� ������ ��� ����� *�* $��� �$� �� � �� �

Page 66: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� � �� ���� � ���� ++��� ,��� �������

F$�� ����� �� �=�� � �� ������ �� ���� �� � � �� ��� �� ������ �� � � ����� � � ��� ���G

�� � ��� �������� E� ���� �� ���� ��� �� � ���� � ���� � � ��� �� �� ��� � �� �� ����� ���� � � �� � ����

� � :��� �� @ � � , A ��

�����

$��� � ���� � �� �� ��� �� ����� ���� ��� � ��� ��� �� "����

� � :��� ���� T���� ��

����

� � :��� ���� T���� ��

�����

$�� % � � � �� �� � F������G ��� "���� ����� ���� �� � ������� �� �� ����� � � �� �� � ��� ��� � � � �� ��� � ���� ���� ��� �� ��� � �=�� "���� ��� �� �� ���� �� �� % � � � ���

$�� � ���� � � ��� ���� ��� � � �� � � �� �� � �� �� �� ��� "�� ���� � ��� ��� �� F% �G ������ � "���� � ��� ��� ��

� � :��� :� � �� :� � �� B���B ��

����

$�� ��� ��� �� �" ������� �� ��� � � ���� �� � ��� � � ������� ������ �� �� ��� � 8 �8 � �

� ����

��� ��� "�� ��� ���� �� �� � � � �� �� ������� �� ����� ������� �� �� ��� "���� ����� ���� �� ���� ����� � ������ ���� � ��� � �� �����

� � :��� ���� T����� B#$��$B ��

Page 67: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � '!

����

� #$��$�

���

� ����� #$��$ ��

����FG � �F���G ��� ����

�� �� � ��� � � �� � ��� �� ���� �� �� ��� ����� ������� F� ������ �� � ���� ��� ������� ��� �G�

� !�����)�� B#$��$B ��� � :��� ���� T����� B#$��$B ��

�����

� ����� #$��$ ��

�� ��

0 ��� *������ "�� � ���� ��� � ��� �� ��%��� ��� ���� ������ $�� ������ ��������� �� ��� ��� � � ��@� � � �� ���� �� � ���� ��� ����� ����� ����� �� A���-���4�%%%A � � ����� � � ���� �� ����� ���� $�� �����"�� �� ����� ���� � � ���%�� ����� �� ���� ���? ���� ������ ������ �� �������

�� ��� ��� ����� %������ $�� ��� �� ������C��� ���� �����M �� � "�� � �� � �� �� ��� �� � � ���� � � �� ����� ���=�� � � ������ �� �� ��� ��� �� ��� ���� �� � ���� �� �� � ����� � �� ������ "�� �� ��� �� �� ��� � �� �� ����� ������ � �"���� � �� �� �� $�� ����� M �� � ���� �����%�� �� ��� �� ������ � �=�� �� � ���� � �� �� ��� �� �� �� ������ "�� �� ��� ���� ��� ����� � ��� �� �� ��� ���� ���� "�� � �� � ���� ������������ �� �� ���� ��������� � "�� ����� �=���

$�� � �� � �� ��� �� �� � ��� "�� �� � ��� �� �� � ���� ����������� �� ���� � �#�� � �� ���� �������� ���� � �� �����M� ���� � �� �=�� ��� � ������� ���������� ���� � �� �� �=�� ��

Page 68: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'" � �� ���� � ���� ++��� ,��� �������

�� �� � ���� �� � �� ����� �� ��� �� �� ��� �� ���� ��������� ���� ��� ���� �� �� ���� �������� � ����� �=��� �� �����M � ���� ��� ��� �=�� �� ����� $�� ���M �� �����M � ���� �� � � ������"�� � � � ����

�� ����� %����� ��� ��� "�� �� ���� ����� �� ��� �������������� $�� �=�� � �� � ��� �� � ���� "�� �� ����� ���� � �� ��������� � ������

�� ������ %����� $�� ������ ���� �� ��� � ������ ��� ���9��� �� � � � �� ��� �� �� C����� ��� �� �� � � �� ����� ��� ��� ����

� ������ ����� �����$�� ������ �� ���� �� ����� "��� � ��� �� ��%��� � � ��� ����� "�� �� ��� �� ��%��� �� ������%��� ��� �� ��%���� � �� �#�� � �� ���� ������� ������ ��� �� � ���� � ��%���� � ��)�� � �� � ������ �� � ��� ��� ��������� ��� ���� � �� �=��� �� �� � ��� ��L ��������� ������ ���� �� ������ ��� � ������ � ��������

��"���� ����� �������� �� ��%����� ���� "�� � ���� � ��%����� ���� ���� � ��=����� ������ ���� ��� ��� ��� �� ����� � �� ���� �� � ��� ����� ���� �� �� �� �=�� � ������� � � ��� �� "���� ��%��� ��� �"��� �� ���� �� �� � � ��� ���

A� � �� � ������ �=����� �� � � ���� ���

� �� ��!����� ������ ��� � �� ��!����� ������ ��� � �� ������� ������ JT=GGV (VLG5ZJ �� ��� ������ ��� ��!��� ��� ��!���

$�� ������ ��� �� ������� � ��� �� �� �=�� � �� ��� �� ������ ���� �� � �� �=�� � �� ������� � ��� �� �� �=�� � �� ����� �� � ��� � �� � ��������� �� � $�� 34��� �������� ���� ���� ��� ���� � ��� � � ����� �� �� � ���� ����

��� ��� �� � ���� �� �� �� � ���� ���� � � � �� � � �����$�� ��� �� �� ��������� �� ����� �� ������ F��� ��� �=�� �� ������ ��

Page 69: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � '#

��� ���G �� � ���� � �� ���� � � � �� ���� �� �� ��� �� ����� ���� ���

����������+�� ������ ��� ��� �� � ��� �=����� �� ���� �� E� �� " �� � ��� �� ��� �� �� �� �� �� ��������C�� �� � ������ �� � �� � �� ���� ��

6� �=������ �� � �� � ��� �� �� � ������ ��� �� :�

� >� �� ��!����� ������ ���� !��� ��� �� � �� : � �� � ' : �� ��� !� �� � �� :� �� � 3 : �� ��� ��� ��!���� >������� +� ���

5

� >��� !�� � ,��

E� �� " �� � ���� � ��� �� �� � ������ ��� �� �� ����������� �� �� �� ��������C� � �� �� ���� �� �� ���� $��� ���������� �� � �� � �� �� ���� � ��=���� ������ ���� E� � � " ��� ����������� � ���� � �� �� ��� �� �� ������ �� ��� � �� � �� �� � ��� A� � �� � ��� �� �� ��� �� �� HI �=������

� 8�.�K� �� ����� ��������� �� ��!����� ������ ���� !��� ��� �� � �� : � �� � ' : �� ��� !� �� � �� : � �� � 3 : �� ��� ��� ��!��� ��� �����

$� ��� �� � ��� �� �� ���� � ������ ��� �� 3� ���� �� ��� �� /��J� "�� �� ��� & �� �� � � ���

� >1 �� 8�.�K�� 1 ��

-. ?M�����FG ������ ��� � ��� L ��� �����

� >1������ ,� � ��

Page 70: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� � ���� ++��� ,��� �������

0 ���� � �'���$"� ����� ���� � � ��������� "�� ��� ���� 6� �� �� ��� ������� � ��� ���� �� ����� � �=� ����� �� �� ��� ����� ��� �� � �� ���� ��� ��� ��� �� � ��� ���� �� ��� ����� � � �� �������� ��� 7 ��� FAG�

� ����� ��!���� ���� B* ��!��*B ��

����

� ����� G����� �)�:��� B* ��!��*B ��

����

(������� � ��� ������ �������������� ����%�� �=� ������ ��� � ��� �� ��%����� � �� � ���� � �=������ �� ��� �� ��%���

� ��!���� ����

"�� ���� ��� ���� � ���� ������ � �-��� �� �� �=� ����� �� "������ "�� � �� ��%���� � �� ��� �� � "���� � ���� ���� E� � � �� ���� ��� 7 ��� FKG � ����� �� ���� ��� �� � ��� ����%����

� ����� B ��!���� ���B� B ��!����&�������B ��

����

��� ���� � ��� ��� ����%�� �� ��� ��� � � �� ���� �� ���� ���9� �9����

� ����� ��!���� ���� B��� ��B ��

����

$�� � ���� � � ��� � �@�� � ��� ���L ��� ���� � � �� ��������

� ��� ������ ��!���� ������ �� :� �� ��� ��

�����FG ������ �� �� �L ��� �����

��� ��� ���� �����" ��� ��� ���� ��� ���� 6� �� � ��� ����� ��� ��� ���� ��� ���� ��� � ����9� �9����

Page 71: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � ��

� �� ��!���� ����� �

"

� ����� � B����?�� �?����B ��

����

���� �� ��� ����� �� � � ���� ���� � ��� ���� �� � � � ������ -� ���� � ������ �� � � ��� � �� ���� ��� ��� ������ � ��� � �� �� ���� �� �=�� �� 6� �=������ �� ��� ��

� �� ��!���� ������ �� :� ����

��� �� � � �� ��� �� ��� A �����A# 8 � '?

� ����� � B* ��!��*� �� : �B ��

����

� ���� ��� ��� ��� A �����A# '

� ����� � B* ��!��*� � �B ��

����

���� �� �� ��� �� �� �=�� � ������� �� � �� � ��� �� ���=�� � �� ������ �

!"� ���2 � �' ���� .�3��������

$��� ����� ��� � ��� �� �� �� � ��� �� ������ � � �� � ����������@� ���� �=������ (��� ����� � ������ � � ���� ��@� ���� ����� �=����� �������� ��@� ���� �� ���� ����������� �� F%��G���������� �� � �� ��� �� ��0 �� F��� � ��� ����� G� "��������� ��� �� ����� ��� �� �� � �� ��� � �� �� �� ���� �� �� ������ ���� �� ������� � ������� ���� � ���� � �� F� �� �� �� �� �� �� �� ������ �� � � � �� �� � � �� �� �� ������� �� �� � ������G� � ������� ���� ��� �� ���������� � ���� � �� �� ��� ���"�� $�� �=����� ��@� ���� ������ ��� ��� ��� �� � ���� �� ������ ��� �� ������

Page 72: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� � ���� ++��� ,��� �������

$�� �����"�� �=����� ���"� ���� �� ���� � �� ��������� �� ����� ��� � �� � �� � ������ % � � � �� %��� � ��� � ����� � �� ���$�� %�� �� � �� �� ��@� ���� �� � ���� ��� � ��� �� � �� � ���������� ����� ��� � $��� ��� � ���� "�� �� ���� � ����� �������� � �� �� ��������� � ��� �� � � � ��� � ����� ������� ����� ��� ������� � ���� ���� �����

�� ����� ������ $��� ����� �=����� � ���� �� ��@� ���� ��� � ��� � � ���� �� � � ��� ���

� ��&&��������� �� ����� ����� ��� �� ����� �� :��

� �& ����� ����� B��������B � �$��� 2� ���& ���� � ��� �$��� � ���& ����� ����� B*'*B � �$��� ��� ������ �� ��)� �� ���& ����� ����� B*4*B � �$��� �� : �� ��� ���� ��� �& � � ��� ��� ��� $��� :� ��� � �$��� : 3 � 4 � : � �� ����� B������ �� ��)� �B� ��� �&� ���& ����� ����� B*3*B � �$��� �� : �� ��� � ���� �� �!:���� � � ���� ��� ������ �� �� ��� � 3 : ' � 3 ������ �� :� ��� �� ����� B������ �� ��)� �B� ��� �&� ��� �����

$ ����� ����� � � ������ % �? $�� �� ������ �� � ���� �=� ����� ���7 �� � �� �� �� �� ������ �� �� �� ����� "�� ����� � "���� "� � ���@� ����� �� �7 �� � /� $�� �������� �� �� �� ������ ��� �� ���=� ����� �� ������ �� � ���� � ��� � ��� ��� �� ������

� ��� ������ �� ��)� ��

$��� �� ������� ��� � ��� � � ���� � ��� �� % � � � ��������� ���� ��� �� ������ � � ���� ��� �� ������ ���� �� ��"� ��� �� ��@� ����� �� ����� �� ������ �� �� � � ������ ���� �� ����"� �� ������� �� �� ��@� ����� �� ������ $�� � �� � �� �� �� ������� �� �=� ����� �� ������ �=� ������ �� ��� � �� � �� "�������?

� �� % � ���� � �� � �� �� ��

� �� � �� � �� ��� �� ������ ���� ��

Page 73: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � ��

$��� �� �������� �� �� �� ��� ������� ��

� �� : �� ��� � ���� �� �!:���� � � ���� ��

�� �� �� �=� ����� �"�� �� �=� ����� �� �"�� . E �� $�� ����� � ����7 � �� � �� ���� ��� �� ��� �� �� ���� ��� ��� ����� ������������ � �=� ������ �� �� � ���� � �� ���� � ������ �����

$��� % � �=����� �� ������� � � �� �� ���� ���� � ����� ����������� "�� �� �� ��������

� ��&&���������� � � ' �4 ' ,3�4M� � ��

�/ O ��O �3��

A�"��� � � ����� � �=� ������ ������ ����� � ���� � ����������� � �����

� ��&&���������� ���� � �� � ��

��@� ����F��F�G� �G

� �� ���� ���� � ���� � ������ ��� "�� �������� ��������

� ��&&���������� �3�4 ' :3� ' �� � ��

��@� ����F�� �G�� O � ��O ��@� ����F�� �G�O �

O ��@� ����F�� �G

����� ������� ������������ $� ��� �� ������ � �������� ��� ����� �� �=� ������ �� ��� ��������

� ��&&��������� �� ����� ����� ��� �� ����� �� :��

� �& ��� $��� ����� ��� � �$��� 2� ���& ���� � ��� �$��� � ���& ����� ����� B*'*B � �$��� ��� ������ �� ��)� �� ���& ����� ����� B*4*B � �$��� �� : �� ��� ���� ��� �& ��� $��� :� ��� � �$��� : 3 � 4 � : � � 3 ������ �� �� ��� �� ����� B������ �� ��)� �B

Page 74: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

� ��� �&� ���& ����� ����� B*3*B � �$��� �� : �� ��� � ���� �� �!:���� � � ���� ��� ������ �� �� ��� � 3 : ' � 3 ������ �� :� ��� �� ���& ����� ����� B&!������B � ��� ����� ���� � � �$��� / &!������� �& � ���)�� �����:��� �$��� �!��� : �� ��� 2� ���� �� / �$� �� � �& �$� &!������� � �� ��� � ���� �� / �$� ��)! ���� �& : � B���B �$��� ���� � � 3 ������ �� �� ��� �� ���& : � B���B �$��� ����� � � 3 ������ �� �� ��� �� ���& : � B���B �$��� ���� � � 3 ������ �� �� ��� �� ���& : � B��B �$��� � � � � 3 ������ �� �� ��� �� ����� B������ �� ��)� �B� ��� �&� ����� B������ �� ��)� �B� ��� �&� ��� �����

$��� ��� �� ���� �� � ���� � �� �� ������� �� ����� � ��"� �����

� ��&&���������� ���� � � ' ���� ���� � � �� � ��

���F�G� ��F!�G !�

� ��&&���������� ���� �4 � ' ���� �4 �� � ��

� ���F��G�� � ��F��G�

� ��&&���������� ���� � �4 ' ���� � �4,� � ��

� ��F�G ���F�G� 5 ���F�G� ��F�G

� �� ���� ���� ��� ��� ���� ��� ���� �� ������ �� �=� ������������� �� �� �� ����� �� ��@� ������

� ��&&���������� �3�4 ' :3� ' �� � ��

� ��O �

Page 75: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � �'

$��� �� �@���� �� ��� �� �=� ����� 4�# �"��8 �� ' ����� ���� "���� �� �-��# �"��8 K�������K '� $�� ��"� �� �" �������� � �� # � ��"� � �� ���

� ��&&���������� ���� � �4� � ��

� ��F�G ���F�G

A�"��� � ����� �" � ���� � �� ��@� ���� �� ���� � ��� � � ��� �� �� #�� �� ������ �� ���� �� � � �� ������ �� ���� � ��� �����C�� �� ��

���������� � ������� ���� ��� � ���� F�� �� ��� � ���G�� �� ��� ��� �� ��� ��@� ����� �� �� �� �� � � ���� �������"�?

� ��&&��������� �� ����� ����� ��� �� ����� �� :� &!����:��

� &!����: �� ��:������ &!����:� B���B � �� B���B�� &!����:� B���B � �� � �� ����� � ��� &!����:� B���B � �� ����� &!����:� B��B � �� � �� � ���

� �& ��� $��� ����� ��� � �$��� 2� ���& ���� � ��� �$��� � ���& ����� ����� B*'*B � �$��� ��� ������ �� ��)� �� ���& ����� ����� B*4*B � �$��� �� : �� ��� ���� ��� �& � � ��� ��� ��� $��� :� ��� � �$��� : 3 � 4 � : � � 3 ������ �� �� ��� �� ����� B������ �� ��)� �B� ��� �&� ���& ����� ����� B*3*B � �$��� �� : �� ��� � ���� �� �!:���� � � ���� ��� ������ �� �� ��� � 3 : ' � 3 ������ �� :� ��� �� ���& ����� ����� B&!������B � ��� ����� ���� � � �$��� / &!������� �& � ���)�� �����:��� �$��� �!��� : �� ��� 2� ���� �� / �$� �� � �& �$� &!������� � �� ��� � ���� �� / �$� ��)! ���� �& ����)���� &!����:� : � � �$��� / X$�� �� � **.��#�BB &!������� &!����:� : �� � � 3 ������ �� �� ��� �� ����� / X$�� &!������ �� ��� .��#�� ���!�� !�����!����� B������ �� ��)� �B

Page 76: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

� ��� �&� ����� B������ �� ��)� �B� ��� �&� ��� �����

$��� � ��� ������%�� �� ���� ��� �� �� ������� ����� � ��������� � �� � ���� � ��� �" � �����

*��,���$� )�� ����� ��� ���������� ��� �� �� � � �"������

� � �� � �=������� $�� ��" � ���� � � �� ������ �� �� ���� � ���� � ��%��� �� ����������� ��" � ���� ����� ����� "��� ����� ��� �� �� �����

� � ����� � ����� ����� � �� �� ����� � ������� ����������"� �� �7 � � � ���� �� ��C�� � � � ��� �� � ����� $�� �� �� ����� "� �� ��� � �� � ���� �� ������C�� ���� ��� ������������ �������

������������ ��� ������������� �� "�� � %= ��� � ������ �� ����� �� ���� �� � ���� � ������ �� ������ A�"��� � ��� ������ �� ������� �� �� ���� � �� ���� �� ��� ���� � �� �� �������� �� � �� �#�� � "��� ������� �� ���� ���

������� � ��� ��� �� �� � � �� ���������� � ���� ������ "�� �� ���� �� � ����� �� � ��� ��� $�� ���� �� �� �������C�� ��� ���!"�� �� ��� �� �� � ����!�� �� �� ����� � ������ ������ � "�� �� �� �� �� ��� �� �� ��� � ������ ����� .������ �� ���� � ����� �� ����� �� �� ��� ��� �� � ��� �� � � ���������� �� ���� � ��� "��� ������� � � "��� "����

$��� ���� � � ��� �� � �� ����� �� ��@� ���� �� ��=������� ��"��� � E� �� ��� � ������ � ���� � ��;��� �� ����"� �� � � ��� ��� �� ��@� ����� �" � ����� 6� �=������ �� �� �� �� ����

� ���F!��� B���B� � �� ������� ��

� ��� �� �� ������ �� �� ��� � ���� $�� �=�� ��;��� �� ����0 �� ��� �� �� � � ���� � �� �7 � �� "� � � ���� $�� % ��� �� ��� �� � � ��� "���� �� ������ �� � �� ���� ��" � ����@� ���� � $�� ����� �� � ����� � ���� � �� �� � � �� ���=� ����� �� �� ������ �� �� � ��� ���� ������

Page 77: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � �!

��� ��� � ���� � ���� �� �� � ��� � ��� �� ��0 ��� "��� ������ �=�� ����������� � �� ���� ���� �� �� ���� ������ ����� ��@� ����� ��� �=�������

A� � �� �� ������� �� �� ���� �� �� ��@� ���� "�� ���� ���� �������

� 5�&&9 �� �� ��!����� ����������� J� �� :���� ��&&����������J�� ����� &!����:� �!����:� ��&&I�#���� ������ ��&&���������� ���F!��� ���L!��� �!����

� ���F!�� �� ����� &�� ����� :��� � �� �� &!����:� &�� � � �� � ��� ��� ������

� ���L!�� �� ����� X� � �� �� �& ����� X� B@ ���� ���� AB � �$��� ��� ������ �� ��)� �� ���& ����� X� B ��� �� �� ���� �B � �$��� �!����:� X � �� � ��� ����� ����� J��������) � ���� �� �� :!� )�� DJ� X� ��� �&� ��� ������

� �!�� �� ����� X �� �& ����� X� B ��� �� �� ���� �B � �$��� �& ����)���� �!����:� X � � �$��� ����� �!����:� X �� �� ����� ����� J�� �!�� &�� ����������� �& ���� DJ� X� ��� �&� ����� ����� J��������) � ���� �� :��� :!� )�� DJ� X� ��� �&� ��� ������

� ��&&��������� �� ����� ����� ��� �� ����� �� :� ��� �& ��� $��� ����� ��� � �$��� 2� ���& ���� � ��� �$��� � ���& ����� ����� B&!������B � ��� ����� ���� � � �$��� � �� ��� 2� ���� ��� � �� ��� ���� ��� �& ����)���� &!����:� � � � �$��� &!����:� � �� � � 3 ������ �� �� ��� �� ����� B������ �� ��)� �B� ��� �&� ����� : �� #$������� ���� ��

Page 78: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� � ���� ++��� ,��� �������

� �& ����)���� �!����:� : � � �$��� �!����:� : �� ����� ��� �� ����� B������ �� ��)� �B� ��� �&� ��� �&� ��� ������

� ���L!��� B@�����������:!���AB�� �� �� ��� ��&&���������� ��)� � ��� ���L!��� B*'*B�� �� �� ��� ��&&���������� ��)� � ��� ���L!��� B*3*B�� ���������� ��� ���������3��&&�����������!:����������������� ' ��&&������������������������3�!:����������� ��� ��&&I�#�� �� ����� ����� ��� �� ����� :� ��� ������ ����� ����� B*4*B � ��� :� � �� ��� ���� ��� �& $��� �� ��� � �$��� ���� 3 � ��&&���������� �� ��� � 3 ��� : �� ' � 3 ��&&���������� :� ��� � � : �� ���� / �� ���� &�� !��� � 3 :4�� � � 3 ��&&���������� :� ��� �� ��� �&�� ��� ������ ���L!��� B*4*B� ����� ��&&I�#�� � ���

� ���F!��� B���B� ��� ��� ���F!��� B���B� � �� ������� ��� ���F!��� B���B� ��� ��� ���F!��� B��B� � �� �� ��� / 000 ���0�

� ��� ��!���� ��&&��������� �� 5�&&9 ������&&����������

$� ���� �� �� �� ��� �� �� ����� �=� ������ ������ �=����������� �� �� � ���� ��� � � ����� $�� ���� �� ���=�� �� �� � ��� � F� �����G ��� ��� �� �� �=� ����� ���� �� ���� �� �� ����� � ���� �24��-���

� #$������� � ' ��

O

� #$������� � � : ��

Page 79: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � �#

� #$������� �4�-���� ��

T

� #$������� � &� � �� )� � � � ��

� ��

� �� �� �=� ����� �� � � ���� � �� "� � � ���� �"�� �� ��� �"���� �"�� �� �� �=� ����� � �� ��@� ������ �� �� �� �� �� ������� ��@� ������ 6� ������ � ���� �� ��@� ���� ����� ����� �� �� ��� �� ���� �� ��@� ����� ��� ������ �� �������� ����� ��

� ���L!��� B@ ����� ���� ��:!��� AB� �� �� ��� ��&&����������� ��)� � ��

$�� % � �� ��� �� �� ��@� ���� ���� "�� � �� �� ����������� ��� �� � � �=� ������ � �� �" ������� ��� �� �=� ����� �� �������

� ���L!��� B*'*B� �� �� ��� ��&&���������� ��)� � ��

� �� ��� �� ����� $�� ������� �� ��� ��� ������ �� ��� ���� �� �� � �� �� �� ��@� ���� �=�� �� ������ � �� �� �� � �� �� ������ A���� ������� �� ��� �� ��0 ��� �� �� �� ��� ��� � �" � ����� ������ �� ��� �� ��� �� ��� ����� ���C��� �� ��;����

$�� ��@� ���� ��� ����� �� � ���� � ���

� ��&&���������� ���� � ������ � �� � ��

��F�G

!�O��@� ����F�F�G� �G

!�

E� � � ��� � � �� ������� �� ��" � �����

� 5�&&9 �������F!��� B���B� � �� ' ������4 ��

�� / O �F�G�

� ��&&���������� ���� � ������ � �� � ��

Page 80: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!$ � �� ���� � ���� ++��� ,��� �������

��F�G

!�O/ O �F�G�

!�

(����� ��� �� � �� � �� �� �� �� ������ �7 ���� �� ��� �������

� ��&&���������� �� � � � ���� �4 � � ���� �4, �� � ��

��@� ����F�F�G M ��F��G� ���F��G� �G

� 5�&&9 �������L!��� B@ *�*� *%*� *%�* AB�� �� �� ��� ��&&���������� ��)� � ��

�FG� ���F� /����� ���� � ��G�

� ��&&���������� �� � � � ���� �4 � � ���� �4, �� � ��

��@� ����F�F�G� �G M � ���F��G�O 5 ��F��G��

�� ��������� ��������� �� ����� ,��� >� � ��� �� �� �=����� �������� � ���� ��� � ������ �� �� ��@� ���� "�� ���=���� �������� ��� �� �� � ���� ����� ������ ��� $���� ������ ��� � ������� � �� �������� �������� �� ����� ��"����� �� �� �� ������� �� � ����� �� ��� �� ��� � �� ����� �� ��� ��� �� �=����� 6� ������ � ��� � �" � ���� ; � �� ����� � ���� �� ������� �� �� ��%� � � ���� �A��B;A �� ���� �� �� �� ������ �� ;�

.� �� ��� �� �=���� �������� ��� � �� ����������

�=����� �� ������ ������ $� ��� ��"����� �� �� �� ������ �� ������������ � ��� ;� �� �� ��� � � ������� � �� ��

� 5�&&9 �������F!��� BFB� � �� ���� � � ' ���� � � ��

�� ��F�G O ���F�G

$�� �� ������ �� ;# " ' �� ���# " ' 7 ���# " '�G >�%� � ��� ��"�� ���� ������� � ����� �� �� "���� �� ���� ������ ;�

Page 81: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� -.�� � �� -�+ ����� � !�

� <���F!��� �� ��!����� ������ F� / ���0� / ��&������� �& F�� ��� ��$���� ��� ��!���

E� �� �" ��� ��� �" ; � �� ��" � �����

� 5�&&9 �������F!��� <���F!�����F� � �� ���� 3 � � ��

�� !��

� ��&&���������� F� � �� � ��

��F�G O ���F�G

� !�� <���F!��� ��� ��&&���������� F� � �� � ��� ��� !���

!� �

��� �� ������� ��������� ��� ���� � "� ��

� *��&&�* YY F �� � �� ���� � � ' ���� � ��

� / �! ?M �� ��F�G O ���F�G

� ��&&� F� � �� � ��

��F�G O ���F�G

� !�� <���F!��� ��� *��&&�* YY F �� � �� ���� 3 � ��� ��&&� F� � �� � ��� ��� !���

� / �! ?M �� !��

!� �

$�� ��%��� �� �� ������ ; ��� ��� ����

� ��&&� F� 3 � �� � ��

!� �

Page 82: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

! � �� ���� � ���� ++��� ,��� �������

FE� �� �� � ��@� � � � �� � �� � ����� ������� �� ���"� � �� �� ������ �����G $�� ������� �������� ����� ���� ��� ����� � �� �������� ����������� �� �� ����� �� � �� ��� ������� �� ���� ���� � ��%� � �=���� � �� � ��� ����� ��%��� �� �� �� ������ �� ��� � ���� "���� ���� � � �������L;L�

����� � ������� �� ��� �� �� ���������� ��� �� �� ���������� �� � ����B����� �� ��� � �� �� ����� ��������� $�� ����������� ���" � �� �= ��� ��� ����"�� ������%���

��� !�����

$�� ������� "�� � �� ��� ��� �� �� -���������� ��� �� F� � � ����� � & �� &OOG� � ��� � �� � ��� � � � �� ��� ���� ��� �� ���� ����� � '����� � ������ ���� ���� �� �� ������� � �� � ���� ��� ���� �� �� �� ���� ��� � � � �� � ����� ��� � �� � � ��� � ��� ��� ��� �� �� ��� ��� �� ��� ����� ��� ������ � ��� � �� ������ � ��� ���� ��� � � � � "���� �� ����� � ����%=�� ����� ��� ��� � ����� �������� ��������� � �� �� ���� ��� �������C��� �� ������ �� ���

������������� ������ $� � ��� � ��� �� �� �� C����� ��� �� �� �� ������� �� �� � ���� �� ��� ���� �� � � ����

� ��� �� L������ B�B� B:B� B�B ��

��� ?M�����FG ������ �� �� �L ��� �� ������ L ��� �����

$�� ��� ��� �� �" ������� � ��� � "�� ���� ���� � �� �� ��$���� � � �� ��� ���� �� �� ��� � ���� E� �� ������ �� ��������� ���� �� ��� �� �=� ������ ���<5� ���<5�� �� ���<5��

� ������ �� �

� ?M �

� �������

Page 83: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� &������ � !�

�� � �������� �� ��� � ��� ���� ��� � �� ����� ����� �� ����� ����

� �����:�

� ����:� D � : ��

�����

$��� �� ��� � ���� �� �� �� � ��� � �� �� ������ �� � ��������� � � ��

$�� ��� � ��� �� ������ ������C� � �� ��� � ����� $�� ����� �� ������� � ����� ��� � �� �� ��� � � �" � � � ������� ��� � �� ������ � �7 ��� "�� �� ��� ��� � �� ��� ���� �� ������� ��� � � �� ����

� � �� L������ B�B � � B:B � �-��� , � ��

# ?M�����FG ������ �� �L ��� �� ������ L ��� �����

� ���:�

�5

� ������� �� �� ���� ��� ���� ��� � ��� � ����� $� � ��� �� � ��� ���� ��� �� � A<<A � � � "�� �� ��� ��� �����%���� �� % � ��� ��� $��� ���� ��� �� �� ��� � �������� "��������C� �� � ���������� ������C� ��� � ���� � � ���� �� ���� �"�� �� ���������� �� �� ���� �� �� � �� 6� �� � ��� ����� ��� � ������������

� .���������� B�����������B � ��� L������ �������)�� � 0,� : � ��

=����� ��� ����)����������� ��������� &����� ������)� ���� �������� ����)��� )�� 0,

� � �� L������ B�B������)�� � � B:B���! ���� ��

Page 84: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!� � �� ���� � ���� ++��� ,��� �������

# ?M�����FG

������ �?? ����� � �??����� �L

��� �� ������ L

��� ������ ���: �� J� �����)J�

=����� ��������� &����� �� ����)� ���� ���������! ����� )�� � �����)

�� �� ������C� �� � ��� � ��� �� � � ���� �� �� �� �� �� ��� ��� ��� ��� � ��� � �� ��� � �� � � ��� ���� $�������"� ��� �� � �� ����� ��� ����� 6� �=������ �� �� " �� � ������= ��� ��� �� �� �����"��

� 8�H� ���� �� � �� � � ��� L������ B��B � �� B� B � �� B�:�B � ��� �� �-���� ���&����4 ' ���&��� 4 �� ��� � �� 8�H� ����� � , ��� ������ ���� � ����:����

�� 5��/5

&������ "�� � ����������� ��� ����� ���� ���� � ���� 3:���� ������� ����� �� C����� ��� �� � ��"� � � ��� �� ��#���� ���� � �� ������

����� ���� +=� ������ � ���� "�� �� C����� ��� �� � � ����� �������

� ����� ���� B������B ��

����

$��� �� � � � �� ��� �� "� �� �� ���� "�� �� �� A �����A

���� � �����C�� ��� �� �����%������

� � �� L������ � � � : � J&��J ��� ����� �� B������� �������)��� :�������) �B ��

����

Page 85: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� &������ � !'

����� � � ������ ���� �� ��� ���� � � ��� � �� ����� �� ��� ��������� � �� ���� F�� ��G� �� � � � ����� � ��� ���� ��� ��� ��� ���� F�� ��G�

� � �� L������ �������)�� � � :��@�� :��������)A � J&��J ��� ����� �� B������� ����! ����� :�������) �B ��

����

-���� ������ �� �������� .��������� 9��� �� � � ��� � �� ���������� ������ ��� ���� ��� � � �� �� "���� ���� ������ ����� �� "���� 6� �=������ �� ��� ��� � �� �� ������� � �� �� 7 �� ��� �� �� �� �� ��� ��� ��� � ��� � � � �� �� ������"��

� 8�.�[!�������� �� ����� �� :� �� � �� L������ B��B � �� B�B � :� B"B � �� B.B � � �� ��� ������ > �� 8�.�[!��������� � ,� � �-��� + � ��

?M�����FG

������ ��� �� �� �L

��� �� ������ L

��� �����

� ��� �=������ H �� ���� �� 7 �� �� �O5�O��O��� F"�� �

�� �� �� � � � �� � ��� 7 �� �� ����� ��G� $�� 7 �� �� ��� ���� �" �� ���� ���� �� ����� 7 ������ $�� �����"�� � ���� � ������� � 7 �� �� ��� � �� �� ���� � � �� �� ���� �� �� + ���������� �� �� 7 �� �� �� �� ��� � �� �����

� -��� �� ����� - �� !�� �� � -����� � � -���� " � -��"� . � -��. ��� �-��� �� 3 �� ' � 3 � ' " 3 " ' . 3 . �� ��� !��� ��� ������ -��� � > ��

���

� ����� ��� �� 7 �� ��� �� �� � �� ��� �� � � � �� ��� �����

Page 86: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!� � �� ���� � ���� ++��� ,��� �������

� X���X������ ��X���� B-!��������B� B������� ��� �� "� . �B ��� ����� >� B-!��������B ��

����

%�&��� ����������� $�� C����� ��� �� � ��� � � ������ �� � ��� ����������� ��� ����� � ��#�� ����� ����� � � ������ ����� ������ �������L ������ � ��� � ������ � �� � �� �� �� � �� ��#�������� ��� ����� ��" ��#��� � � � ���� � �� �=���� ��#��� F����������������G �� ���� �� �� ��� ������ �� � ����� �� ��� ��������� �� �� � ������

$�� C����� ��� �� � ��� � � ����������� ��� ���� �� �������� � ���= � � ��� "���� �� �� � ����� �� �� �" ��#�� ��� ��

� � �� L������ � � � : � , �� / ������ � ���������

� ?M�����FG ������ �� �L ��� �� ������ L ��� �����

� ����� ���:�

�� 5

� � �� L��������� � � � ��

# ?M�����FG ������ �� �� �L ��� �� ������ L ��� �����

� ����� ���:� �����

�� 5� 2

� ��� �=������ �� ��� � � �� �� � ������ �� �� ����� ��� �� ��� �� �� ���� �� �� �� ��� ��� ��� � �� �� � ����� �� � ����� ���� �� ���� ������ � �� � "�� � �" ��� �� $�� � ����� � ��� �������

� ���� �� M�

� ?M 1

Page 87: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� &������ � !!

� �����

.������ � �� "��� �� ���� �� �� ������ � �� � � ������ $� ���� �������� � �� � ��� �� � ���� � �� ��� �� � ����� �� �� ������

� \���H� ���� �� ����� �� � �� L������ B��B � �� B� B � � �� ��� ������ ;�#H� ���� �� ����� �� � �� L������\���H� ����������� B�:�B �� ��� �� �-��� ���&����4 ' ���&��� 4 �� �� ��� ������ � �� ;�#H� ����� � , ��� ������ ���� � ����:����

�� 5��/5

� ��#�� � ���� � �� � � ����� �� �� �� �� � � ����� �� ����� ��#���

� ;�#��H� ���� �� ����� �� � �� L������;�#H� ����������� B��)B �� ��� �� ����������&��� ����&������ �� ��� ������ � �� ;�#��H� ����� � , ��� ������ ���� � ����:���� �����)���

�� 5��/5� � ��F

5

�G

����� - ������ � � � �� ���� �� ��� ������

� �!:����� B������� ��� � � �:� �B� B������� ��� � �B ��

����

6� �=������ 1�2�� ���" � ���� ��#��� �� � ��� �� �� � � ������ �� ��#��� � ���� �� M���� ���"�

Page 88: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!" � �� ���� � ���� ++��� ,��� �������

��" ����%��

��� ��� � � ����� �� " ��� ����� ��������� $��� � ����� ��������� �� �� �� ���"� � � �#��� �� � � ��� �� ���� �� � ���� � ������������

4��� �� � �������� �� ���� �� � �������� �� � ���� �� �� ��� ���� �� �� �� ������ � "����� -������� �������� ���� � ��� �� � ���� �� �� ������� � �� �� � ���� ���� � ���� "������%�� � ����� ������ -�������� ��� ���� ��� ��� �� � ���� ��� �� ��� ��� ���� ��� �������� F� ���������G�

���$���� �� ��� �������� ������� � ��� �� �������� � � �������"�� �� ���� � ����� ��� � �� 6� �=������ �� ������ �� �4���-��������� �� ����������� �������� � � ��� � ������ "�� ���������� "�� ���� �� ��C� ��� �� $�� ����� ������� � ������ � ���� ���� ����" �� � ���� � "�� � � �� �� ���� � %�� �� ������� � �� �� �� � ����� � �� ��� �� � �� ��%�� ������� $������������� ������� ��� � �� �� ��� �� � ���� �� ��������� �� ���� ����� ���� ����� ��

����/0���� ���$���� ��� �������� � � ��������� �� ������ $��������� ���� �� ���� ��� ���������� ������ �� �� �� ��� ��� ������� � �� �� ��� �� �� ���= �� � ���� �� � ���� ��� $������ ����� �� �� ��� �� �� ������ �� �� ��������

-�� ������ "�� ��, ���$���� ��� ��� � � �� �" ����������� ������� �� ��������� � ��� �� �� ���� � ������� �� �� �=�� ������� $�� �=�� �� ���� �� �� ������� � �� � � ����� �=� ��������������� � ���� ��� �� ���� ���� �� � �� ��������

���$��� ������� (��� �� �� ��� � � ������� �� � ����� ���� ����������� � �� �� �� � �=�� �� �� �������� 6� �������� ����������� ��� ���� �� ������� �=�� � � � �� ���� �� �� �=�� � �� �� �� ����� ��� ��� 6� �������� ��������� �� ������ �� ������� �=�� �� � �� ���� ��� � ���= �� �� ���� �����

�������� �� �=�� � �� � ������� �� � � ������ ��� ��� �� ��� ��� �� �� ��� ��������� �� � �� � ����� �������� �� � �� �� ���� ���=�� �� �� �� ������ � �� ��� �� � ��� 7 ���%�� ��� ��� �� � � ��� �� � ��� ��� �� �� �� ���� �� �� ���= �<5�� $���� ������ ���������� �� �=�� � �� � ��� �� � � � ����� ��� "�� � �� �����"�� � ��������

Page 89: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � !#

��� �� <5 �� � �������������� ��� �� � �� 3 �� � � ���� �� �� ���� �� �� �� �� ��� � �� �=�� �� �� 3� �� �� ���� �<53<5� ���� ��� �� #�<53'<5�� �� �� � ��� � � �� ����� �� � ����� � 3� $������ �� ���� � � ��� ��� ����� � �� � ���������� 6� �=������

� �� 8������������������,���������� B��������B � B������ �����)���B ��

" ?M

�/� � �� �5� � 2� �

� G����� �)�:����G ?8�����;�� � � � ���"!)��� � &���� ��

��=F��� /�O ��� 5� � ��� ��O ��� 2�G

����� �� � ���� � 1�� � �� � �������� ��9/�� �� �� ������������������� E� �� �� ���=�� ���� �� ����

� G����� �)�:���G ?8�����;�� �� � � ���"!)��� � &���� ��

��=F��� /�O ��� 5� � ��� ��O ��� 2�G

-���� ���$���� ������������� 6� �� ����� ��� � �� ������� ��� � ����7 ���%�� ��� ���� � ��� �� �=�� � �� � �������� $� ������� � ��� �� ����� � ���� � 2��4 �� � ������ �� �� �� ������������ �� ������� ���������� )��� 2��4� �� �� �������� �������� �=�� �� ���� �� � �������� $��� ����"� �� � ������ �� ��������=�� �� "��� ���� �� ������� � �%=� �� ����� �� ���� �� ���=�� � ������� � �� �������� �� �� ����� ������� 6� �=������ � ���� �� �4���- �������� �� �� ��� � �� ������

� #��$� �! �$���� ��

(�����)� �$� ��������� �� � ����� $�� :��� ����&������� !����������

Page 90: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"$ � �� ���� � ���� ++��� ,��� �������

I���� � � ����� ������ �������� � �������� �� � $ �����

������0& � ��������� � ������ � ���� � � ���� �

������ ��� �� �$������ �$�� � ��������� 1���� �

��������� � $� �������� ����� ��� ��������� � ���� �

� ������ � � ������ ��� � ��� ��� ����� � ����� �

��������� ������$�� � ��������� �������� � ������ �

����� � �������� � %� &� ��� ����� � �� ����� � ��������

������� �� � ������ ��� '� ��*������ � ���*��� � (� ����J

$�� �@�� �� ��� ������ �� � ���� �� ���� �=�� �� �� ���� �4���- ������� F� ��� �� "���� �� � �� �� �� ���� � 2��4G ���������� ���� � ��� �� �������� ����� ��������

� �&���� � ' � �4.� �� +� B�!:���)����B� B�� ��)!���B ��

/

/� � �

/ O/

F� O /G�

/� /

:

F� � /G�

/ O/

:

F� O �G�

/ O ���

4����� 0���� �������� �' #��� 0 ����$��� ����� ���� ���� ��" � " �� ����� �������� �� ��� ��� ����$�� �����"�� � ������� � ��� ���� �� �=������ �� ��� � �� ��" ��� ����

��� ���������� �������$�� % � �=����� ������� �� � ����� ������� ������ ����������� $����=����� ��� � ��� �� ����� � � � �� � ������� ��������� �� ������ ����

0��$����� *���� ���� � � � ����� ��� � � � ��� � � �� ����� ��� ��@� � � ������ $�� � � � ��� ���� �� ����� ����� "���� ����� � �� ����� ���� ����� � ��� ��� �� �� ���� �� � �������� ��� ��� $�� �=����� ������� ���" � ��� � ������ � ������� ��" ��� ���� � �� ������� �������� �� � �� ����� �����

$�� ���� � � ����� ��� � � �� ��� � �� � �� � ������ ��� � � �������� � �� �� � ��� �� ��������� � ����� "�� ����� �� �=���� "�������� -�� � �� �� ������� �� %=�� ���� ��� �� "�� "� �����

Page 91: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � "�

��� ��� � ������� ����� ����� �� % � ��� ����� �� ��� �� ����� � �� �� �� ����� ��� �� �� � ���� � �� �= ��� � �� ����

$�� ���������� ������� �������� � ��� �� ��� ��%��� �� �� ��� ��� � � �� �� ���� ���� ����� ����� ��� ���� � ��� �� �@�� �� ��� ��� ����� � ����� ��� �� �@������� �� ����� �� ��% � ��� �

$�� ��� ��� �� ��� � � � �� �� � ������� � ������ �� � ���� �� ��� � �� "� ������� � ������ ���� �� �� � �� ������ �� ������ ��� �����%����

� M ��� F����F�G� ���F�GG

�� ���� ��� �� � ������� �� � �� � ����� ����� ��� ��� ����������� ����� ��� ������ �� �� �7 �� � �� ��� ��� � �� ����%��

����F��G M ��� ���F��G M ���

��� �� ����� ���� � � 7 �� ��@� � � �� �� ����� � ���� ���� � ��� "���� � � ����� ��� ���� � ���� *���� ���� � � ��� � ����� ���������� � "���� �� "� � �� ������� � ��� � �� ��� � ���� ����� ���

���$��� �������������� $�� ���������� ������� �� ��������� ��� ��� �� ������ �� � ������ ��� ���� � ��� �� �� ����� �������� ���� �� ������� �� ��� ��� �����

� ����� ?I 9L � ** �� / &�� ���� �������)� G��.��G��� �� ��!����� ����������� J��!����� &�� �� ��� ���.�� �����J�� ������� ����� �!����� ������ $����� ������ ������ ���)�$�� � :���� ��������� �������� ���� ������ ���!��� �����!��

����� � �� ���� � �� ������ � ��� ��� � ����� ��� ��� ��� ������ �� ��� �� �� �������� ��� ������ ����� �� !����"� !�� " ��� !�� "�

Page 92: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

" � �� ���� � ���� ++��� ,��� �������

� ���� ��������� ?I 9L�� ������� ���.�)��� ���� � ���!��� !����� � �����!���

� ���!� �� ������� )��:�� *�����I���*� *�����G��.��G���*�� *�����I���* �� B@ ?I 9L� ����$��)� ����$��) ��� ���������� ��� � AB�� *�����G��.��G���* �� ����� ���� �� �& ���� � ��� �$��� ��!�� ���& ����� ����� I��� � �$��� ����� ����� ���� �� BG��.��G���B �� ����� &����� ��� �&� ��� ������ !�����&�� � BG��.��G���B�� J��# ����� *I���B ��� *G��.��G���B ��&����J ��� ;7GG� ��� ������

� �����!� �� ������� )��:�� *�����I���*� *�����G��.��G���*�� !�����&�� � BG��.��G���B�� J�������) !� )��:�� �����J ��� *�����I���* �� ������ *�����I���* ��� *�����G��.��G���* �� ������ *�����G��.��G���* ��� ;7GG� ��� ������

� ���� �� � �� : �� �� ��������:!��� B?I 9LB� �� : �� B�����B ��� $��� �� � ���I��� �� �� *�&*� � � ���� ���� ��� � � � ��� ���� �� � ���I��� �� �� *�&*� � � ���� ���� ��� � � � ��� �!��� �� � ���� �� �� ����:� ���� � ��� ���

� ���� �� ������� ����� �� G�� G �� ����� &�� � �� ��)� ��� G �� ����� �� G �� ��� ��� ��� ������

� ���)�$ �� ����� ��� �� �& �!���� ��� � �$��

Page 93: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � "�

� 2� ����� ' ���)�$� ����� ��� � �� ��� �&� ��� ������

� � :�� �� ����� ��� � ��� �� �& �!���� ��� � �$��� &����� ���& ��� � $���� ��� � �$��� ��!�� ����� ������ �� ��� � ����� ��� � �� ��� �&� ��� ������

� �� �� ����� �� ��� �� �& �!���� ��� � �$��� ���� ����� ����� �� $���� ��� � ��� ������ �� �� ����� ��� � � �� ��� �&� ��� ������

� ������ �� ����� ���� ��� �� �& �!���� ��� � �$��� ���� ����� ����� $���� ��� ��� ������ �� ����� ��� �� ��� � �� ��� �&� ��� ������

� ������� �� ����� ��&��� ���� �� �& �!���� ���� � �$��� ��&��� ����� ������ �� ����� $���� ���� �� ��&�� ��� ����� ���� � �� ��� �&� ��� ������

� ������� �� ��� �� �������� ���� ��� ���

� ���!�����

� ��� ��!���

�� ������ � ������� ��%��� ���� ��� "� �� �� �� �� �� � ������� �� %�� ��� � �= ���� � � � � "� ����� ��� �� ����� � ������� �� �� ����� � ���� ����� �� ��%��� "� �� �� �� �����"�� �� ����� � �� ������ � ���� � ��� �� ��� �� �� ��� �� �� �� ����

Page 94: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"� � �� ���� � ���� ++��� ,��� �������

� � ��?

� ������:� BG��.��G���B ��

+��� ��� �� ������ ���� ����� �� ��� �� � �� % � ������ ��� � � �� ������ �� ����� ���� �� � �� ������ � ���� "�� �������� �� ����� ������� �� �� � �� ��%��� F� ���� �� �� ���� � ��� ��%���G

��������� ��"��� �� � �� �� ���� � ����� ��� � � �� " ���� ����� � ����� ����� �=� ������ � �� �� �� ���������� ���� �������� � �� ���� � ����� ��� � �� �� ��� ��� � ��� � �� � ������ �� �� ����� � "���� �� ������ �� ����� ���"� ��

$�� ������� �=�� � � � ����� �� �� �=�� � �� �� ��� ��� � ��"����� �� ������ � � ��� � ������� �� �������� $�� ����� � ���� �� �( �� �������( � � �� �� �� ������� ���������� �� �� ���������� � �� � �� �� �������� $��� � � ������� ��� "��� �� ��� ����%���� $��� ����"� �� ������� � �� � ���� ��� ������ � ��������� "��� ��� ��� �� ���� �� ��� �� �� �� ����� � ���� ���������( �� �( "� � �=�� �� F� �� ��������� � �� �G� � "� �� ����� � �� �� � �� � ������ ���� � ��� "��� � ����� �=�������� �� ����� �� ����

$�� ������� ��� ��� "� ������� F�����G � ���� ��� ����� ��������� $���� � � �=�� ��� ����������� "�� �� ��� �� �� % � ���� �� � ������ �� �� "�� �� ������� �� ���� �� ���� �������� � "�� ����� �� ��� � �=��

-���� ��� ���$��� $�� ������� �=�� � �� ��"��� �� �������� �� ��� �� ��� �� � �� ��� �����

� G��.��G���������� �� : ��

F�� �G

6� �������� "�� �� ���� ���������� ������� ������������� ���=�� ���� �� ���� �� ����

� G��.��G���� B����B �� �� : ��

F�� �G

Page 95: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � "'

$��� �� � �7 � �� �� �� ���= F� ��� ����� �� ������ ���G ��� ����� � �� ���� ���� �� �� ���� ���� � �=�� � ��������"�� ���� � ����������

$� ������ �� ������� �=�� � �� �������� �� �� 2��4 �������

� #��$� G��.��G��� ��

(�����)� �$� ��������� �� �� ���)�$� �� ��� � :��$��� :��� ����&���� ��� !����������

I������ � ���� � ������ � �� � ���� ������ � � � � ������ �� � �

��$����� �� � J

��� ��� ���� ���� �� �� ������� �=�� � �����" ������ � ���� ��"�� �� ���� ���� �� 2��4 ������ ��� �� "� ���� $���� "� ���� � � ���� $��� ���� �� �� ���� ���� �" ��� � �=� ��������@� � � �� �� �=� ������ � "���� ��� ��� �� � ���� ���� ��� ���=�� � �� �� ������� ���������� ���� ��� �� �� �� �� ���� ����� �� "� �� ������ ����� � ��� "�� ���� ����� ��� �� �� ������ ������ �� ������ �� ��� �� � ���� �� �=������ �� ��� �� ���=<5 � ����

� !�� G��.��G��� ��� � :��� �� DD ��� �� � :��� �� � �� :� �� � � �� ��� !���

����

����

$��� �� �� �� �� � ������ �������� �� ��� ��� ��� �� ������ ��� �� �������� � ������� ���������

*��� � � ���� � �� �� ������� ��� �� ��� �=�� �� �� ��������� � �� ������ �� ���� �=�� �

� G �� ����� &�� � &�� �� 2 ��� G �� ����� �� G �� ��� ���

Page 96: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"� � �� ���� � ���� ++��� ,��� �������

) ?M F/� � �G

) ?M F�� F/� � �GG

) ?M F5� F�� F/� � �GGG

) ?M F2� F5� F�� F/� � �GGGG

) ?M F�� F2� F5� F�� F/� � �GGGGG

) ?M F:� F�� F2� F5� F�� F/� � �GGGGGG

) ?M F3� F:� F�� F2� F5� F�� F/� � �GGGGGGG

) ?M F0� F3� F:� F�� F2� F5� F�� F/� � �GGGGGGGG

) ?M F1� F0� F3� F:� F�� F2� F5� F�� F/� � �GGGGGGGGG

) ?M F/�� F1� F0� F3� F:� F�� F2� F5� F�� F/� � �GGGGGGGGGG

� ���)�$� G ��

/�

� � :��� ,� G ��

����

� � :��� 22� G ��

�����

� �������� G ��

F/� F�� F5� F2� F�� F:� F3� F0� F1� F/�� � �GGGGGGGGGG

� ��� � �� �4� G ��

F/��� F0/� F:2� F21� F5:� F��� F/:� F1� F2� F/� � �GGGGGGGGGG

� � :��� 22� D ��

����

Page 97: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � "!

� G �� ����� �� :� �� � ��

#* ?M F�� F�� F�� F�� � �GGGG

� ��� ���� G ��

F��F�G� F��F�G� F��F�G� F��F�G� � �GGGG

� ����� G� @ � � � : � � � � ,� � � � A ��

F2� F5� F�� F/� � �GGGG

� ��� ����&� 2 �� D ��

F2�� F5�� F��� F/�� � �GGGG

� � �&����� ��/��� �������$�� �����"�� �=����� �� � ������� ������ �������� � �� ��� � ����� �� �� ��� ��� �� ���� ��� � �%���� �� ��� � � ����������� ����� � �� ��� �� � �=����� �� � ����� �������� �� ��� � ��� "���� "���� ��� ��� �� �� ���� ������

*����� E� �� " �� ��� �� �=� ���� ���� �� �� �� � �� �� ��� � �� �� � �� ��?

� �� �� �� ����

� &�� �� � "� � "�� �� � ��� � �� ��� � "���� � ������������ ��� ����

� �� ���� � � �� ���� � ��� ��� "���� ���� ����� � �� ���� � �� �=�� �� �� ���� �� ����� $�� �������� ���� �� ������� ������ ��������� � ������ �� ���������� � ���� �� ��� ��� � � ���� �� ��� �� ���=

���� ���� ��������� ������� � ������ ���� �� � �#��� ���� ��� ������� �������� ���� $� �� � ���� ������� ��� �� �����������

Page 98: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"" � �� ���� � ���� ++��� ,��� �������

���������# K��������K . � '>

�� �� ��� �� � ���� � ������� � � �� ���� ��� � �%���� A� ��� � �=������

� � �� ����� � �� �& � % 2 �$��� 3 �� ����� ' 3 �� ��� �&� ��� ������ ��:!)����� B���������B � � ��

��� �� � ���� � ��� ��� �� ����� ���� ��� � �� �=�� ���� �%��� ��� ���� � �� ����� ����� �� �� ��� $� ���" �� � �%������ ����� �� �� � ���� � �4�2����

� �� ��

� �$�#����� � ��

� �� �������YH���� <������ (����Y

ILVH Y 20222 Y Y 20222 Y �& � % 2 �$�� Y 2 20222 2Y 3�

����, Y 20222 2Y '3�

��� �&��� ����

$�� ������� ���"� �� ��� �� � ��� �� �� � ����� �� �� ���� ���� �� � "�� ��� �� �� � $��� �� ���� �� ��� � �������� � � ��� ��� ��� � ������ �� � � � �� � �� $� �� ������� ���� ����� ������ � � �� � � ���� �� � �������

� �� � ��

��

� �$�#����� � ��

Page 99: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � "#

� �� �������YH���� <������ (����Y

ILVH Y 20222 �Y Y 20222 �Y �& � % 2 �$�� Y 20222 2Y 3�

����, Y 20222 2Y '3�

��� �&��� ����

$�� ������� ���"� �� ���� ����� � �� ���� �� � ��� ��� �������

$� ������� �� � �%��� ��� ����� �� �� ��������� ������"�� �� ������������.���������9� � �7 ��� � � ���

� ��:!)����� �����������:���� ������� � �2� � �2/ � �/ � �

����

$�� ������� ��� � ��� � ��� ����� ����� �=�� ��� � �������� ��� ���� �� ��� �� � �� ���� � �� ��������� "�� �� �������������

$�� ������� ������� ��� "� �=�� �? ������ �� �������� $"�� ���� � ���� ��� ������� �� ������ � � ��� �� � � � ���� $���� � �� �� � ����� �� ������ �� �� �� ���� ��� �� �� �� ��������

�� ���$��� ����� A� � �� �� �� �� ���� �� �� ��������

� ������)� �� ��!����� ����������� J� ���.�)� �& !�������� &�� J� J���� ������)� ���&����)J�� ������ ���.�)��� ������ ���&���� ��������� ����� ����&���� ������� !����������

� / 9����! ��� � ������!�� �� ��!��� / &�� ������)� ���&����)0 L��!�� �$�� / �! :�� �& ������!��� �����! �����0� ���&��� �� ������� ����� ��)�� ���� ����&���� ��) �� ��) � � ��)� � �� ��� �����

Page 100: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#$ � �� ���� � ���� ++��� ,��� �������

� ����&��� �� ����� ����� � �� ����� ��� �& ����� �� B������!��B � �$��� ��:!)����� B���������B � � ��� � ���& ����� �� B* ��!��*B � �$��� ���� ������ �� � ��� � � ������� ������ � �������� �� B��������B � ��� B@ * ��!��*� ������!�� AB � �� ����� ����� J���� ������!��� ��� ��!��� ��� :� ���&����J� ��� �&� ��� ������

� / <!:��!���� �� ����)��>� ����:!����� ������!���� !�������� �� ����� ��� ����� B�B� ������!��� ��� ���� ����� B�B� :!����� � �� ��� ������

� / <!:��!���� �� ����)��>� ���&���� ������!���� ������ �� ����� � �� ��:!)����� B�������������B � B�B �� ��� ������

� / 5���� ��� #$��$ ������!��� $���� / ������)� ��&�� �����0� ������� �� ������� ����� <�� < �� � ��� ��� � ��� < �� ������� !��������� < ��� < �� ������� ������� < ��� �& ���)� � 2 ��� ��)�� � � B���>���B �$��� < �� ������� � �� ����:� ���� %� 2 �� < �� ���& ���)� � 2 �$��� ����� J�������� ��)! ��� �� �$� �� � ���>���J� ��� �&�� ��� ������ ��� �������� <� B�����)B � �� ��� ������ ��� ��!���

1�, ��� ���$��� 2��$� $�� �=�� ������ �� � �� ���� � ���������B� � ������ �������? �� ���� � ���� �� �� ��� ��� �� ���� ��� � �%���� � � � �� ��� �� � ���� �� �� ����� ������� �� � ���� � � � �� ������� � �� ��� �� �� "� ��

/� $�� � ���� � ������� ������ � ��� � �� � � � ��� �� � �� ����� �� � � ���� �� ������� ������ ����� ��������� � �� ���� � ���� � ������� � �� ���� ��� "���� �� � �� �� ����� � ��� ��� ������� ������ �� �=�� � �� �� ��� �� �� � �

Page 101: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � #�

� ���� �� � ��� ��� �� ����� ����� �� ������ � �� �� ������ �� �� ���� � �� ������� � ��� � �� �� ��� ���� �� ��=����� �� ������

�� $�� �=� ����� � �"�����# �8 K�������K ' ���� ��� � � ����� ��� �� �=�� �� �� ������ �� �� ��� �� �� � � ������� � �� ��� ���� � � ���� �� ������� ���� � �"������ ���� �� "������ ���� � � ������ � ������� � � �� ���� ����� �������� ��� �� ��� �� ��� ������� ��� ��� $��� ��� ����� ��� �� ��� ���=�� �� �� ���� �� � � �� ��� ���������� � �� ��� ������ � �������� �� ��� � ���� � ������� $�� �� ��� �� �@���� � ������ � ��� "���� � �� �� � ��� �� �� ��� �� �� ���� ����� ���������

5� $�� �=�� �� � ���� � ������� �� ��� � ��� ��� "���� � ����� �� ���� ��� �� ���� �� ������� "�� � �%��� ��� ������ ��� �� �������� ����� "� �� �� � ��� ��� ���� � � � �������� � �� ������� �������� ��� ��� ������ ������� �� �� ������� 7 � � �� �� �� ���� �� �� ���� �� �� � ���� �� ������ ��� �� ���� �� �� ���� � �%��� ��� ���� �� ���A�"��� � � �� ��� ���� �� ���� �� � ���� � �� ���� �������� ��������� �� ����� � ���� ���� � �%��� ��� ��� ���� ��� ��� � �� � ����� ������ �� $�� ��� �� � ����� �� 7 � ��� ������� �� ����� "��� ��� � � ��" � � ���� � "�� ������� ��� ����� �� ��� ����

$�� � ���� � ������� 7 � ��� ����� �� ��� �� ���� � ��� �������� ��� �� ��� �� ����� ������ � �� FQ������� ����RG������ �� ������� � � �%��� �� � ���� �� � � ������� ��� ��� � � ��� ��������� �� ������ �� �� ���H��� ���� �� ������ ��������� �� ��� ���� "���� ���� �� ���� ��� ������ � � ������$�� %�� �����

� ��� ������ ��� �������� <� B�����)B � �

% � ���� � �� ���� � � ���� �� �� ����� ���� � ���� � ��� ���� � � �� � ���� � �� "���� � �%��� ��� �� �� ���

-���� ��� ���$��� �� "�� ��� ��������� �� �� ������ �� �������������� �� ������� �� ��� �� 2��4 �������

� #��$� ������)� ��

(�����)� �$� ��������� �� � ���&��� $�� :��� ����&������� !����������

Page 102: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

# � �� ���� � ���� ++��� ,��� �������

I��$���� � ���'��J

� ��� �� �� ������� �=�� � �� � ��� ��� ������� �� ������� �=��� � �� ��"��� �� �������� �� ��� �� ��� �� �� �������<5�������� �������<5��������

( ����� �� �� "� � �� �� � ���� � ���- F����� ���� �� ��� ��� G� $��� � ���� � � �� ��� � �" ���� �� � ����� � ��� � �������" �� �� ������� ������� ��� ��� �������� ������� �� ��� 2��4������� ����

� ���&���� ���� ��

/

$�� � ��� � �� / ������� ��� �� �=������ �� � ���� � "���� ����� ��=� ���� ���- "�� � ��" � � ��� F� � � �� �����G?

� ����� ��:���� ��� ����� ������ 00 , � ��

)��� �������� ���- ��� �� � �%��� ��� ���� �� ���

� �������� B���>���B ��

I���� � �J

6 �� �� � � �� �4�2����

� �$�#����� ���� ��

���� �� ����� ������ ]�

YH���� <������ (����YILVH Y 20222 �2Y

Y 20222 +2Y �& ����� �B���:��B� �$�� Y 2 20222 2Y ���:������:��?���&��� ��

���:��?�� �� �� ����:��?�������� ���������� � &�����

���& ����� �B��:��B� �$��, Y 20222 �Y �& ����� �B�� �B� �$��� Y 2 20222 2Y ������� �� ��)� ��� ���������� ��

����+ Y 20222 ++�Y ������� �� ��)� ��� ����� �

��� �&���& ����� �B������!��B� �$��

� Y 2 20222 2Y �!:��] � ]������ �����& ����� �B@ ��!����&��������

Page 103: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � #�

* ��!��*AB� �$��1 Y 2 20222 2Y ����� J������ ���� � ��!�� �� ��!��

��&�������J����

� Y 2 20222 2Y ��� �&

��� ����

� ����� � �� �� ���� ���� F����� �G ��� � ��� ���������� � �� �� �� ���� �����

� ����� ���:���� ��� �$�#����� ���� ��

���� �� ����� ������ ]�

YH���� <������ (����YILVH Y , 20222 1MY

Y , 20222 +�Y �& ����� �B���:��B� �$�� Y 20222 �1Y ���:������:��?���&��� ��

���:��?�� �� �� ����:��?�������� ���������� � &�����

���& ����� �B��:��B� �$��, Y 20222 �Y �& ����� �B�� �B� �$��� Y 2 20222 2Y ������� �� ��)� ��� ���������� ��

����+ Y 20222 ++�Y ������� �� ��)� ��� ����� �

��� �&���& ����� �B������!��B� �$��

� Y 2 20222 2Y �!:��] � ]������ �����& ����� �B@ ��!����&��������* ��!��*AB� �$��

1 Y 2 20222 2Y ����� J������ ���� � ��!�� �� ��!����&�������J

����� Y 2 20222 2Y

��� �&��� ����

(���� 2 ��� � ��� ������� $��� ����� �� �� �������� ������� � � �� � ���� � � ��� �� �� ������ ���- "�� ����� �� � � ���

� � �� ��:������ ����� � ��� �$�#����� ���� ��

���� �� ����� ������ ]�

YH���� <������ (����Y

Page 104: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#� � �� ���� � ���� ++��� ,��� �������

ILVH Y � 20222 �Y Y � 20222 ��Y �& ����� �B���:��B� �$�� Y 20222 �1Y ���:������:��?���&��� ��

���:��?�� �� �� ����:��?�������� ���������� � &�����

���& ����� �B��:��B� �$��, Y , 20222 2Y �& ����� �B�� �B� �$��� Y 20222 �1Y ������� �� ��)� ��� ���������� ��

����+ Y 20222 ++�Y ������� �� ��)� ��� ����� �

��� �&���& ����� �B������!��B� �$��

� Y 2 20222 2Y �!:��] � ]������ �����& ����� �B@ ��!����&��������* ��!��*AB� �$��

1 Y 2 20222 2Y ����� J������ ���� � ��!�� �� ��!����&�������J

����� Y 2 20222 2Y

��� �&��� ����

$�� ��� ���� �� ��� � ��� ������ �� �� �� � "���� ��� � �� � ���- �� ������� ��� �� � ����� � ��� � �����

� ����� ��� �$�#����� ���� ��

���� �� ����� ������ ]�

YH���� <������ (����YILVH Y + 20222 �2Y

Y + 20222 Y �& ����� �B���:��B� �$�� Y 20222 �1Y ���:������:��?���&��� ��

���:��?�� �� �� ����:��?�������� ���������� � &�����

���& ����� �B��:��B� �$��, Y , 20222 2Y �& ����� �B�� �B� �$��� Y 20222 �1Y ������� �� ��)� ��� ���������� ��

����+ Y 20222 ++�Y ������� �� ��)� ��� ����� �

��� �&���& ����� �B������!��B� �$��

� Y 2 20222 2Y �!:��] � ]������ �����& ����� �B@ ��!����&��������* ��!��*AB� �$��

1 Y 2 20222 2Y ����� J������ ���� � ��!�� �� ��!����&�������J

����� Y 20222 2Y

��� �&��� ����

Page 105: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � #'

$�� %�� � � ���"� �� ��� � ����� ��� ��� ������ ���� �� ������ $��� � ������� �� �� � ��� � �� �� ������� ��������� � ��� �� ����� � �� ����

����� $�� �� �� � ����� �� � �� �� ������� ������� ��� ���������%�� �� � ������ � � ��� �� �� $�� � �� �� �� ���� �� ���������� �� � ����B����� �� ��� � �� �� ����� ���������

��� ������ ���������� ��� �� �� �� ��� ��� �� �������� "�� ��� � ������ � � ��$��� ��� �� ��� "�� ���������� ����������� �� ��������� $�������� � ����?

� A�" � � ���C� �� �� �� ���� �� � F��������G �� �� ������� ����� � � ����� � �� � ��

� � ���� ���� �� �� 34��� �������� ��� ��� ������ �� �� ������� ����������

� A�� ����� � �� �� ���� � ���C����

$�� ���������� � ������� �� ��� ������� �� ������ � � �������� ���� � ���� � � ��� �� �� � ��� ���� �� �� �� � ���� %� ���"���� � � ������ �������

����� ��� �� ��� �� �� �� �� ���� �� ��� ������� � � ���" �� ��$�� � ��� ������� �� �� ���� �� �� �� � � �� � ����B�����B�4����� ��� � �� �� ����� ���������

����� !��� %�����+����� $�� 34��� ������� �� � ���C�� �� ����� �� �� �� %���?

�4���% ��

�����% ��

��� ���% ��

������% ��

�����% ��

�������% ��

Page 106: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#� � �� ���� � ���� ++��� ,��� �������

$� ����� ����� �������%� ��@� ����� � N� �� ��� � � � � �� ����F��� �� �� �� %��� ����� � �� ���� �� ��� � � ����� �G

shapes.mpl Shapes Package

point.mpl

segment.mpl

triangle.mpl

square.mpl

circle.mpl

$� ��%� �� ��� �� �� �������� ��� �������� �� �� ����� � ��� ������ � ��� �� �� ������ �� �� %��� � �� ��� �� ��� ��� ��� ���� �� �� %�� �4���% ��� � ��� �� N������� �� ������ � ���� ��� � �4���% ��� � �� ��

N������� L�����% ��L

N������� L��� ���% ��L

%%%

(����� � �� �� � �#�� �� � ��� �� �� �� %��� ����� � ����� � ������ �� ����"� ���� �� �������� � � "� � � � � �#�� ��� ����� ���� $�� �� �� %�� �� ������� �� �����������%� � �������� ��� ���� � ������� �� ����� �� ������ �� ��������� �� �� �� ������ �� � �� %�� �����% ���

���$��� ���������� $�� 34��� ������� �� � � �� �� � ��� ��"�� � ��� �� �=�� �� � ���� ��� ������ �� � ���� ��� � �����

Page 107: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � #!

�����������%� � ������� �� ���� ����� ��� � ��� �� �� �� ��������+��� �� ���� �����������%� � ���� ��� �� �� �� � �� �" �� �� %��L���� %��� � � ��� ��� �� �� ��� ������� �� �� %��� �4���% ���

$�� ������� ��� �� 34��� ��� � � ���� ��� ���� ������ 34����$�� � ���� �� 34���<534��� ����� �� � ���� �� �� ���� ������ ��� ��� $��� � ���� �� ��� � ��� �� ��� � ��� � �� �����"�� ����� ���

Shapes

Shapes

point

segment

circle

square

triangle

Shapes Package Submodule Structure

$�� �� � �� � �� ������� �� ��� %�� �4���% �� � �� ��� � ��� ��"���� �� �� ��� �� �����"�� ��� �� � ����

34��� <. �����#'

�"���� ��8 ��8 ����� ������>

���� 34���8 ����� 9����>

34��� <. �����#'

�"���� �����8 ��� ���8 ������8 �����8 �������>

����� <. �����#' %%% ���>

��� ��� <. �����#' %%% ���>

%%%%%

��� �����>

�� <. ����#' %%% ���>

�� <. ����#' %%% ���>

����� 9���� <. ����#'> %%%

����� ������ <. ����#' %%% ���>

��� �����<

Page 108: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#" � �� ���� � ���� ++��� ,��� �������

�� ���$��� �� $�� 34��� ������� �=�� � �� �����"�� � ���?

/� ��

�� ��

5� ����� ������

�� �� �������� $�� �=�� �� � ���� � �� �� � ��� �� �� ������� � �� ��� � � ��� � ����� �=� ����� � �� �� �� ���� 6� �=������ ���� � � ��� ��� � �� ��� � �� ��� ������

� ��) �� �.�� B�����B� 2� 2 ��

�� ?M ����F�� �� � �� �G

� �� ��� �� ��� ��� � �� �� ��� �� ��� ��

� ���� �� �.�� B������B� ��)� ��

� �� ?M ����F� ����� ����F�� �� � �� �G� �G

� ���� ����� �� ��� �� �� ����� �� ������ �� �� % � � � ���� ������� � �� �� ��� �� ����� � � �

�� �� �������� $� ���� � �� � �� �� � ������ ���� �� �=�� ��� ���� � �� "�� �� ����� �� �� � � ���

� ����� ���� ��

� ��F����F� ����� ����F�� �� � �� �G� �GG

�� ����� ������ �������� $�� �=�� �� � ���� � ����� ���������� �� �� �� � ��� ��� �� � ���� ������

� ����! &������� ���� ��

�� � ��� ���F����F� ����� ����F�� �� � �� �G� �GG

Page 109: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � ##

����� ������������� (����� � � �� ����� �� ���� ��� � ��������� $�� � � ��� � �� ���� � � �� �����������%� ��� �� �������� 6� �=������ � ��� "�� ��� ����� F�� 5G �� �� ����� �� �� ���� ��� � ��� ���� ��01�# �8 � '� (��� ����� ��� � � ���������������� 6� �=������ � ����� �� �� ������ ��� �� ��������� � ���� ��� � ��� ���� �� �� �� � 3=�/=1�# ����9�����8

���9����� '� $�� �� �� �� ���� �� �� ����� �� �� �������� ����� � �� ��� ��� �� �

�������� *������� $�� 34��� ������� ��� � ��� � �� ���� �� � ����� � ���������?

/� >�������� � � ���� �� �=�� �

�� &������� ���������

5� $���������� ���������

*���������� �� ������� ������� $�� � ���� � ��� "���� �� �=��� �� � �� �� 34��� �������� ��� �� � ���� �� 34���<534���

�� � ���� � ����������$� �� "���� � ����� �� � ���� ����� �� ���������� �� � ��

��� � �� ��� "���� �� � �� � � ���� �� �� �� ��� � ��34���<534��� � ���� ��� �� � � �� � ���� �� �� �� �� � �=������ �� ������ ��� "���� �� �=�� �� ���� ��� ��������� �� �������� � � ��� �� "� � ���� � �� �������� 34���<5 �� � ���� ��$�� �� �� �� ���� �����"��

� �.� �� ����� #$������ :�� �� ����������� J������!���� &�� �$����J�� ����� ����� / �$� �$��� ������!������ / �& &�!��� �$�<$���� / �$� �!: ��!�� &�� �$�� / .��� �& �$��� ��-!������

� �& ��� � :��� #$��� <$����� B�$�<$���B � �$��� ����� J�$��� *DB ��� ������:��J� #$��� ��� �&�� �& � :��� B�� �.�B� �$�<$���� B����B � �$��� ����� ��)�� 00 ���)� � �� ����� ����� J�� ������!���� �������� &�� J� J�$��� DJ� #$��� ��� �&� ��� �����

Page 110: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$$ � �� ���� � ���� ++��� ,��� �������

������ $�� % � � � �� � �� �� � ������ �� ����� �� ����� ����� � ��� � F������ ������� �������G� $��� ������ �� ����� � ���= � �� 34���<534��� � ���� ��� $�� % � ����� ��� � ��� � �� "���� �� ������ ������ � �� �� ���� 24� �� �=��� �� �� �� � ���� �� 34���<534���� �� � �� � �� �� � ��� ��� ��� �������� �� ��� ��� �� � �=����� ������ �� � ��� � ��� ��� � ����� �� �� �� � � � ��� �� ����� �� ����� �4�34��� ��������� �� �=�� �� � � �� � ���� ���

6� �=������ �� 24� �� �� ������ ������� �� �� ����� �� ������4�34�� �� ������� �� � ���� �� 34���<534���<5������ �� ��������� ��� ���� � �� ����� $�� ���� ���� �� ��� � ����� �� �����������%� ��� �� L � �� �� ��� � ������� � �� ����� �� ����� ����

�� � ���� � ��� � � �� �� ����� ���� � � ���� �� ������� � ��� � � ��� �� ��� � ��� � �� ������ $���� � � ������ � �� �� �=�� � � �����������%� � ���� ��� �� �� �� �� � � � �������� �� � ��� ������ $��� ����� ������C�� �� ������ � �� �� �������� ���� ���

!���������� *���������� $�� � ���� � �� ��� � ������ ����������������� ��������� $�� �� �� �� �� ����� �� �= ���� �� �� ��� � �� �� ����� ���� "�� �� ������� ��� �� � ��� ��� "���������������%� �� � � � �� � ���� � �� �� � �� � �� ���� ����

� ���� �� ����� �$��� �� ����������� J�� �!�� �$� ���� �& � �$���J�� ����� ��)��

� �& ��� ����� �$���� B&!������B � �$��� ����� J��������) � �$��� ����������� J� J:!� )�� DJ� �$���� ��� �&��

� / =������ �$� J��)J ��&�� ����� &�� �$� �$���� ��) �� ��� 2� �$��� ���

� / 5������$ �� �$� J��)J ���!�� �& ��) � B��IV9;XB �$��� <$������������������ �$��� �� ���& ��) � B��<=O8=;XB �$��� <$��������) ���������� �$��� �� ���& ��) � B��H9LHG=B �$��� <$������������������� �$��� �� ���& ��) � B��<[7 L=B �$��� <$�������-!���������� �$��� �� ���& ��) � B��XL9 ;OG=B �$��� <$�����������)��������� �$��� �� ����� ����� J��� � ����)��>�� �$���� DJ� ��)

Page 111: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� �* ��� � �$�

� ��� �&� ��� �����

����/����� *���������� $�� �� � ������� ����� ��� � ��� � ��34��� ������� �� ����������� $��� ����7 � �� ��� �� �� �=�� ��� ���� � ����� ������� "���� ��� ���� �� ���� ����� ���� ����� � �� ��� �� ��� � �� � ����� $��� ���� �� � �� ������ ��������� �� � ��� � �� ���� �� �� 34��� ��������

� ����! ?��:�� �� ��:������ ����! ?��:��� BIV9;XB � �� <$�����������������! &�������� ����! ?��:��� B<=O8=;XB � �� <$��������) ���������! &�������� ����! ?��:��� BH9LHG=B � �� <$������������������! &�������� ����! ?��:��� B<[7 L=B � �� <$�������-!���������! &�������� ����! ?��:��� BXL9 ;OG=B � �� <$�����������)��������! &�������

$�� �� �� ���� �� �� � ���� � ����� ������ �����"��

� ����! &������ �� ����� �$��� �� ����������� J�� �!�� �$� ����! &������ �& � J� J�$��� ����������J�� �& ��� ����� �$���� B&!������B � �$��� ����� J��������) � �$���� :!� )�� DJ� �$���� ��� �&�� �& ����)���� ����! ?��:��� ��� 2� �$��� � � � �$��� ����! ?��:��� ��� 2� �$��� � �� �$��� �� ����� ����� J�� ����! &������ ��$�� ������:�� J� J&�� �$��� D0 <!������� �$���� J� J���� DJ� ��)�� ������&� JD-J� ��� GG?<T I=< � �� ��� �&� ��� �����

������ ������� �� ��� � �� � �� �� �� ��� �� ��� � �� �� �� � � � �� �� � � �� ���� ����� 9���� �� �� ����� ��F�� "�� �� �� � ��G� �� �� �� ������� � ���� � �� ������"�� �� ���� ����� �� � � � ��� F$�� ����� � � �� ������ �� �� � ��� �� �� �� �����������%� � � � �� �� �= �� �� �������� � �� ��G ��� "���� � �������� �� ��� ��� �� � �=����� ������

�����/�����3� �������� �� �� ���� ���� ���� ����� �� ���������� � � �����������%� � ���� ��� $�� �� �� �=�� � �� ���� ���� �� �� ���� � ���� � ��� � �� �7 � �� �=�� � ��� ��� ������� ������ � �� �������� 34��� ��� ��� -� �� �� ������ � ���� ��� ��� ����� ��� "� � ���� ��� � � ���� ���� �� �� E� ����� �� �� �� �� �� ��� � ���� ��� � �� ������ �� �� �����

Page 112: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� � ���� ++��� ,��� �������

�� ����� ������� $�� � ���� �� �� �������� ���� �� ��� ��������� � ���� � ����� � ��� ��� � �� ��=������ ������ �� ������ ��� �� � ��� ��� F34��� �� 34���<534���G�

� ����� �� ��!����� ����������� J�!����� ��!����� &�� ������J�� ������ �.�� ����� ����! &������� ������� �������� ������ ���.�)���

� �.� �� � �� � � �� BIV9;XB� �� � ��� ���� �� �� �� 2�� ����! &������ �� �� �� 2�� ������ �� � �� ��� � � ��� ������ �� � �� ��� � � ��� ��� ��!���

(��� �� � �� �� �� � ��� ��� �� � ��� � � ��� �� ���� � ����� �� � � ����� � �������� � ������ � �� �7 � �� �=�� �� ������� � ���� �� ���� �=�� � "� ���� � ���� "����� �� -�������� � ����� �� � �� ��� ����� �� � ���� - ������ ���� ������ �������� �� ����� �� ��� � ���� �� � �� � "��� ��"�� ������ ��� �� ��� �� �� ������ �� ����� $��� ����� � ����� ������ �� �� ������ ��� � �� �7 � ���

���� ��� � ���� ��� �� ���� ��� ��� �� ����� ������

�����" �� ���� "�� �� ���� �=� �� �� ������ � �� ��������34��� ��� ���

�� ������ ������� $��� � ���� �� � ������ �� �� ���������%�� � � ��� �� �� 34��� ��������

� ������ �� ��!����� ������ �.�� ������� ����!�� ��� ������ ����� ����! &�������� ������ ���.�)���

� �.� �� ����� ����I�� ����!� �� BH9LHG=B� ����I�� ����!� �� ��� ������

� ������ �� ���� �� ��� � ���� ��� ����!� �� ���� �� ��� � ���� ��� ��� ���� �� ���� �� 3 ����!�� ���� ��� ����! &������ �� ���� �� I� 3 ��� ����� ���� ��� ���� �� ���� �� I� 3 ����!�� ���� �4�� ��� ��!���

����� � ��" �= � � ��� � � � ������ � ������ � ���� �7 � ��� �� �������� �� �� 34��� �������� $�� �=�� �� � ���� � �����

�� ��� � ��%� ��� � ���� � �� �� ���� ����� � ��� � ���� ���

Page 113: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� %�� !�� -� ��+��� � �$�

��& �� ��� � � ����

$�� ��� ����� �� �� ����� ����� � ��� ���� � �� �=� ������������ � �������� ��� �� � ���� � �� ����� "�� ��� �������� � ���� �� � �������

������ ��� ��������� $�� ���"� � � � �� ��� �� ��� ������"���� ��� �� �����"�� ���= ������?

��� ��� ��

���-

��� ���>

A� �� ��� �� � �=� ����� ��7 ��� �� � �� � ����� ���� ���� �� "������ ���� � ��� �� � � �7 ��� "���� ��� ���� �� � ������L �� ������ � ��7 ��� �� ����� ������� $�� ��� ���� �� � ����� �7 ����� �� �� ����� �=� ������

+=�� �� � ��� ����� �=�� �� �� ���� �� �� ������ +������ ��� �� � ��� �� ����� � � �� ��� ���� �� �� �� �� ������7 ���� �� ������� �� �� ��� ���� �� �� �� ������� �7 ����

6� �=������

� !�� & � ���� ) � ��� ��� &� � �4 ' )� � �4� ��� !���

��F�G� O ���F�G�

!�������������� �" ��� ��� ��������� $�� ��� ����� �� �������

� !�� & � ��� ��� !�� ) � ��� ��� �� ���&�� &���4 ' )���4 �� ��� !��� ��� !���

/

��� ���� ��� ������ � � ��� � ��� �� ��� ������ ����������� �� �� �� ��� ����� ��� � ������� ��� ���� �� ��� � ���

Page 114: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � �� ���� � ���� ++��� ,��� �������

� !�� � � � : � , ��� !�� � � , �� � ' : ���� ��� !���

:

� ��� �=������ �� �� ����� �� �� ��� � � � �� ��� ����� �������� �� �� ��� � �� �� �=� ����� 7 � F�� ���� �� �� �� ������G �� �� ��� I� $�� �� ����� �� � � ��� � �@����� "��� �� ���� �� �� �� ��� ������ ��� �� �=�� �� ����=��� �� �� ��� ������ �� ����� �� � � �� ��� ���

� !�� � � � : � , ��� / $��� � �� :�!�� �� ��� : �� ,� !�� � � , ��� / $���� : �� ����� :�!�� �� ,� :!� � �� :�!�� �� ,� � ' :� ��� !���� / :�����) �& � �� �� ��������� � ' :� ��� !���

:

$�� ��� ����� �� �7 � � �� ����� ��� ��� ���� �� � �� � ��� ������� � �� � ����� ������%����� � �� � �������� � �$������ ���� ������ F9����� �� ����� ��� � ����%�� ���������� � �����"���� �� ���� ������� �� �� �����? �� ��� F �����G� ������� � � ���� '��� ��� ���� ���� �� � ����G

$� ��� ��" ��� "� ��� ������ � �=����� � "���� �� ��� ���������� � ����� � � ���� ��

� & �� ����� �� : �� !�� � � � ' :� � � � � : ��� � 3 �� ��� !��� ��� �����

� ?M ����F�� �G F�O �G F�� �G ��� ����

��� �� �� ���� �� �� � ���� � ����� � ��� ������> �� � ����� ������%����� �� ��� ����� �� �� ��� �� ����

Page 115: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� %�� !�� -� ��+��� � �$'

�� "�� �=������ ������� �� �=� ����� �� ������� ��� �� �� ����� � �� ��

������ ��� ��� ���������� �� � ������� ����� � ��� �� �� ����� � �� ����� ��7 ��� �� � ��� ������ $�� ��� �� �� ��� ��� ��� ��� ������ �� �� ��7 ��� �� �7 ���� . <5� � . <5�� � � � �"�� � 8�8%%% � � �� �=�� � �� �� ��� �� �

6� �=������

� �� ��!���� ������ �� :� � �� � : �� ,� ����� !�� �� � ' : ����

$��� �� ��� � �� � �� ����� "�� ���������

� �� 8������ �� �� �� �� 2� 2� ,2 ��� � 2� ��� �M2� 2��� � 2� �1� �+�� 2 ��� � 2� 2� 2� 2�� ��

" ?M

�����: � � 5�� �2/ �1� �� �3 ��: �� � � �

����

� !�� G����� �)�:�� ��� 5���� ������ ��� L��.� ��� H$������������I����� ���� � B�� :��B �� ��� !���

5

$� O 3/$� � 0�:$� � 255/:$

��� �� � ��� �� ����� � � � ����� ��� �� � ��� ������"���� �� ����� � �� � ��� ��� � � ���� �� � � ��� �� �� ��� � ����� ��� ��������� � � ��� '��� $��� �� ������ � ���� �� �� ������%����� �� �� ��� ����� � � �� ���� � ��� ��� �� �=�� � �� ����� ��� � �� �� �� � �� �����"�� ���� � ���� � ��� �� �� � ��� ���� � � � ���� � ���� ��� "� �� �� ������ � � � � �� ��������%���� �� �� � ���� ��

Page 116: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � �� ���� � ���� ++��� ,��� �������

� ����� � �� : �� !�� �� �� �� : � ���� ��� �����

=����� �� :�����)� #��� �����&��� �� � �����

$�� �� �� "�� � �� � ��� �� �� � �� ���� �� � ������� ������ � �� �� � �=�������� � �� �� � ��� �=�����?

� ����� � �� : �� !�� � � ��� �� � ' : ���� ��� �����

����F"� �� �G �O � ��� ����

$��� �� ������ � ���� ��� �� �� � ���� � �� ������ "�� � ��� ���=� ����� �� % � � � ��� �� ��� ��� � � �� ����� � �� $�� �� ������ �� �� ��� � � ��� �� �=�� � � ������� ���� F� �� �� � ���������G� $� �=��� �� ��� ������ ��� � � �� ��" � �� ��� ��� ���� � �� ������%���

*������ ���� ��� �������� ��� � �� �� ��� ����� �� �� � ����"� ��� �%=�� � �%= ��� �� � � �� ����� ��� ��� � �� ��� �� $��� �� ��� ��� �� ��� ������ �� � � ���� � �� ����� ��� ���� F� �� ��&OOG� ���� �� �� ������ ��� � � �� � ����� ������%���� �������

�� � ��� �� ��� ����� � � �� ��� ���� �� � ����� �7 ����� � ��� ����� F����7 ���� �� � �� � �=�� �� ��� �� � ��� ���� �� �� � ��� ���G� �� �� �� ������� ��� �� �=� ������ ��� ���� �� �� ��� ����� � � ���� ��� �� � ��� ������ 6� �=�����?

� !�� *'* � F �� � ' : ����

6F�� �G

� �� ��!����� ������ *3*� *'*�� *'* �� � �� : � �� � ' : � �� *3* �� � �� : � �� � � :�� ��� ��!���� � 3 � � ' � ��

Page 117: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� %�� !�� -� ��+��� � �$!

� F�O *G

� !�� �� � 3 � � ' � � ����

�O *� /

$�� ��� �� � �� �� �� ��� � � � � ��� �C�� � �� �����"�������

�������� ���� ������� ����������

������� ��������

7 ��� � �%= ������E ��� � �%= � ���������% ��� � �%= � ���������* ��� � �%= �=�������5 � � � �%= �����B � � � �%= ��� ��� F ���� ����G

���� �� ��������

�� ��� � �%= ������� ���� ��� � �%= ������� � ��� � � � �%= ������� �����

��������� ��������

O ��� � �%= ���� ��O. ��� � �%= ���� �� � �7 ��6 ��� � �%= � ��� ��6. ��� � �%= � ��� �� � �7 ��. ��� � �%= �7 ����O6 ��� � �%= � �7 ��

���� ��������

+ ��� � �%= ���������++ ��� � �%= ��"� ���������P � � ���%= ���� ���

��� �� �� ��� �� � 5 �� B � � ���� �� ����� ��� �� � F�� �� ��� ����� �� ��� ���� ����������G� ( � ���� �� �� ������� ���� � ����� �� �������� ������ �� �����? 5 � . 7

#5�'� (����� �� �� �������� $�� ��� �� � �� � ������ � � ��� ��� ��� ���� �%= ��� �� � 5 �� B�

��� ���� �� � �=� ����� � �� �� 7 � 7 � 7 � �� ���� ���� �� � "� � �� �����C�� �� ## 7 �' 7 �' 7 �� �� �� ���� 7 ���� �� �� ��� �� 6� �=������

Page 118: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$" � �� ���� � ���� ++��� ,��� �������

� !�� *'* � F ��� � ' : ' � ' ��� � ' � � : ' � � ' � �� ��� !���

6F6F6F�� �G� �G� �G

6F�� 6F6F�� �G� �GG

��' �������% ,�-�� �

� � ������ ��������� �� ��� ��� �� ������� ��#���� � ���� �� �������� �� ��� ��� ��� �� ������� � ��� � �� ����� ��� ����� ����� � ��� �� � �� ����� "�� ��#���� (��� �� ���� � � ��������#���� ����L ��� �� �=������ ��� �� (�������� &*�(� '������ ��&OO�

����� �� � � ��#���� ���� � �� ����� ��� ���� � � ����� ��� � �� ����� "�� ��#���� � ������ � ��#�� �� �� �� ������ �� � ��� ��� $�� ��� �� �� ��#�� F��� ��G �� �� �� � �� ������� �=�� �� ��� �� ������� $�� ������� �� �� ��#�� �� �� ����� ��� ���� �� ������� � �� �=�� �� �� ������� � ������ � ���� �� ���� � �7 �� ����� "�� ��� �=� ������ � �� ��� ���L �� �������� ��"�� ��� �� ������� �� ����"�� � �%���� �� �=��� ��� ��� �������

$�� ������� ���� ����� � �� ����� "�� ��#��� �� �� �� ���#��� �� � ��� ������� "�� ���� &���� �� � ��#�� �� ����� �������� �� ����� �� ��#�� ��������� ��#��� ����� � ���� ���������� �� �� ��� ���� � ��� ���� ���� ��� �� �� ��� ���� �� ����� ������ �� �� ������� F�� ��#��G �� �� ������� ����� F"������� �� �� ���� �C�� �� ��� � � ���G� $��� �� � �� �� � ����#���� ���� ��� ������ � � �� ������ � "���� �� ��#��� � ����"� � ����� �� ��� ���� ���� ��� �� �� �� �� �� � �� � �� � �� �� ���� ����� "���� � � �� ����� ���� ���� � �� �� ��#����� � ���� �� � ��� � ����

%�&���� ��� !���������� ��#��� � � � ���� � ���� �� ������ ���� �� � � ����� �� �� � � ���� � �� � ���� �� ��#�� �=� ������ �� ���� F�������� ����G �� �� �� �� ����� ��� ��� �� � �� � ��� �� �� ���� �=� ����� ����� 6� �=������ �� � ���� � ����

Page 119: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' �������� /�0���� � �$#

�� � ��� �� �� ����� ������ �� ������ �� � ��� �� �� ������� ��� �=� �������

� ��� �� ���� �� ��� � � ��� ��#��� �� ���� � �� ���= F� �� �� �� ��� �� ������ � �����G� � �� ���� �� ��� �� �=� ������ �� �� ���� � �� ���= F�� ;��� ��� �� �� ��=����� �� �� ��� ����G� $�� ��� �� ��� �� ���%�� ��#��� � � ��� ���� �� ��� � ��� �� � ��� �� �� ��#�� �=������ � ��� ������ � ��%�� �� ��������� � ��� �� �� �� ��#���

�������� !������ ����� !��������� � ������ �=����� �� � ��#���� �� �����"�� �� ������ �� � ������= ��� �

� 8�.�H� ���� �� ����� ����� � �) �� �& ���)� %� �$��� ����� J���� ��� � �)����� ����� ��� ��-!����J� ��� �&�� ��!����� ����������� J� �� ���� �! :��J�� ����� ����?����� � �)?������ ������ ��� � � �:�� ��)��

� ����?����� � �)?���� �� ����� � �)�� �� �� �� �� ����?������ � �� �� �� � �)?������ �:� �� �� �� �-��� ����4 ' � ��4 ��� ��) �� �� �� ������� � ��� ���� ��� ��� ��!��� ��� �����

$� � ��� �� ������= ��� / O �� �� �� ��� �� �

� > �� 8�.�H� ����� � ��

?M�����FG

����� ���� ���� � �� ���� L

������ ��� �� ���� �� L

���� �� �� Q� ������= ��� RL

��� �����

$�� � ���� � /���� ���" �� � ��� �� �� ������= ��� ���#���� $�� ��� � � �� �� �� � ���� � �� �� ������� �� ����� �� "���� ��%��� ����� � � �� ���� �� /���� ���"�

$�� ����� ��� �� �� ������= ��� �� �� ����� �� �� ������� ������ �� �� ��� ��� ���9��� �� � �9���� $�� ������� �� ��� ����� �� �� �=�� �� � ���� �� ��� � � ��� �� ���

Page 120: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� � ���� ++��� ,��� �������

$�� �=�� � �� � ��� �� �� �� ���� � ��#�� � � �����������"�� ���� �� �������� ��#��� ����� � ���� �������� �� �=�������� ������� �� �� �������� ������

� >������� >��� ���

/� /

� >���:����

��

� >����)���

/

2&

6� ������ �� �=� ����� H<5��#' �� ���"�� �� ����� �� ��

������� � �� ������= ��� ��#�� H� $�� ��#�� ������ �� ����� �� �� ����� � ��� ��

��� �� ���� ��� �� � ���� � /���� ���" �� ������� � �"��� �� �� � ���� ��� �� ��� �� ��%��� �� �� ������� "��� ��� ���� � ����� $� �� ������= ��� � � ���� �� ��@� � ����� � ����� �� � � ������ ��� �� �� � � ��� ��� �� � � � � ������� ����� � ��� �� ��� �� � �� �� ����� ��#��� �� �� ������ F�����G ��� ������ � �� � � �� �� ��#��� ���� ��������6� ������= ��� ��#���� � ����� ����� "�� �� ���� �� � ��� ��� �� �� �� ���� ��#��� $��� �� �� �������� �� ��� �� �� � ���

���� � �� ��� �� � 6� �� � ��� ����� ��� � ����� : �� �������������� ������ � �� ���

�4��� �" �������� ����� ������ $�� � ���� � /���� ���" ��� ��� �� ���� �� ����� ��� �� ������= ��� ��#��� �� ��� "� ������� ������ ���9��� �� � �9���� 6� ��� ��#�� ��� �� �� ����� ��� �� �� ����� ��� �� �� ��#�� �� �=����� � �� ��� ����� � ���������� ����� �� ������ �� � ��� � �� �������� � �� ��� �� � �� ��� ����� ��� �� �� ��#��� $�� ��� �� ����� �� �� ����� �� ���� ���� � � �� ��� �� � "���� � � ������� "��� �� ��� �� �� ������� ��=���� ������ ���� )��� ��� ����� �� � ���� � ��� �� ���� ������%�� �� �����"��

Page 121: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' �������� /�0���� � ���

����� ��� ������. 1���� �������

� ��- $�� �� � ���� � �� �� 7 � ���� 9� �� �������� �� �� ���

������ ��� � � �� ��C�� ��������� 9����� F�� � G �� ������ � �� �� ���

� 8�.�H� ���� �� ����� ����� � �) �� �& ���)� %� �$��� ����� J���� ��� � �)����� ����� ��� ��-!����J� ��� �&�� ��!����� ����������� J� �� ���� �! :��J�� ������ ��� � � �:�� ��)��

� �� �� �� �� ������ � �� �� �� � �)�� �:� �� �� �� �-��� ����4 ' � �)4 ��� ��) �� �� �� ������� � �)� ���� ��� ��� ��!��� ��� �����

������' ������� ��� � ��� � � � �� �� �� ��������� � � ��#���� ����"�� "�� ��� ��� �� �� � �� �� 7 � �� � �� �� �� ����� �� � ����� ��� � � � �� ����� �� �����"�� ��� ����?

� $�� �� � ���� � �� �� 7 � �

� ��� � � �� ��C�� ��� �� � � �� �� 7 � �

� 9� F����� ������G �� �������� �� �� ��� � �� � �� ��7 � �

� >���� �� ������ � �� �� ��� � �� � � �� �� 7 � �

*����� $���� ��/ ���� �� ������ �� � ��#�� �� ������ �� � �� ��7 � ���

$��� �� ������ ����� �� ���� � �� �����"�� ����� ���� "������ �� ��� � ������ � �� �� 7 � ���

� *�����I�������[!�!�* �� B* ��!��*� � ���� ���� �������� ������ �B�

Page 122: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

!��������� �������������� - �� �� 7 � �� �� �� ��������� ������� ��#��� �� " ��� � ��� �� �� �� ��#����

� I�������[!�!� �� ����� ����������������!�� �� ����������� J�������� -!�!� ������!����J�� ����� ���)�� ����)���

� ����)� �� ���)��� �& ����)� � �$��� ���)� �� � ��)�� 00 � � �� ����� ���)� �� ��� ��� �&��

� ��!����� ����������� J� �������� -!�!�J�� ������ � ���� ���� �������� ��>�� ������� ������ ����� $���� ���� ��� :!::��!�� :!::����#���

� ���� � �� 2�� $��� �� ��:������

� :!::��!� �� ����� �$����������� �� ����� �������� ������ �� �-!�� �$���� ��� �& �$��� � � ��� ��������� $���� �$��� � � � ��������� $����� ������ � � �$��� $���� ������ �� $���� �$��� � �� $���� �$��� ��� $���� ������ ��� ������ �� ������ � / ���!���� ��� �&� ��� ������

� :!::����#� �� ����� �������������� �� ����� �$����� �$��� �� 3 �������� �& �$��� % ���� �� ��� ��������� $���� ' �$��� � � � ���������� $���� �$��� � � �$��� �$��� �� ' �$���� ��� �&�� �& �$��� %� ���� �� ��� ��������� $���� ������ � � % ��������� $����� �$��� � � �$��� $���� ������ �� $���� �$��� � �� $���� �$��� ��� $���� ������ ��� ������ �� �$��� � / ���!��� ���# �������� ��� �&� ��� ������

� / 9�������>� �$� �������� -!�!�0

Page 123: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' �������� /�0���� � ���

� ���� �� ������� $��� �� ��:������ ���� � �� 2� ��� ������

� / X��� #$��$�� �$� �������� -!�!� �� � ���0� � ��� �� �� �� ����:� ���� � % ���

� / L��!�� �$� �! :�� �& ��� � �� �$� �������� -!�!�0� ��>� �� �� �� ���� ���

� / [!��� �$� $�)$��� �������� ��� 0� ��� �� ������� �& � ����� �$��� ����� J�������� -!�!� �� � ���J� ����� $���� �� ��� �&� ��� ������

� / 5����� �$� $�)$��� �������� ��� &�� �$�� / �������� -!�!�0� ������ �� ������� ����� ����� ��� �� $���� �� / ��� �� ������ / ��� :���� �� �$� ���� $���� � �� $���� ���� � ��� / ����# ���������� �� :� ���������� $���� ���� � � �� ������ $���� ���� � � ��� / ����� ��� �$� :���� �& $��� ��!����� ���� � �� ���� � � �� / $����&� �$� ������ :!::����#�� ��� / ���!�� �$� ���!�� ���� ��� ������

� / 9����� �� ��� ���� �$� �������� -!�!�0� ������ �� ����� � �� �& ���)� � �$��� ��� ��� ������ �� � ��)� � � �� ����� ���� � �� ' ���� ��� $���� ���� � � �� ��� :!::��!�� ���� � �� ��� �&� ��� ������

� / 9����� ��� �������� �����&��� ��� �0� �& ����)� � �$��� ������� ��� ���)� � �� ��� �&� ��� ��!��� ��� �����

Page 124: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

$�� ��� �� ���� � ����� � ���� � �������- �� �� � � ��� 6� ���� �=� ����� ������ � �� 7 � �� ��� � ���� � � � � �� ������ � �� �� � �� ��� ���� � �� 7 � � � � ������� � � � �� ��C��� �� �� �� �� ������ � �� �� ���� � � ������ % ��

� ��� ������ ���� ��� "�� � � �� �� 7 � �� �� �� ����� � ���� � ���� � �����4 �� �� � �� �� �� � �=� ������ A� �� �� ��������� ��� �=� ������ � � ��� �����������

� �- �� I�������[!�!�� � �� ���)�$� � � ��

�� ?M�����FG

����� ����� � ����� ��������� ����������L

������ ����� � ���� ����� � � -�� ������� � � L

���� �� �� Q� � �� �� 7 � �RL

��� ������ &�� � &�� �� 2 ��� �-��������� ��������� � � ��� ��� ���� #$��� ��� �-��� ����� ��� �-����������� ��� ���

3/� /��� O :��� � 0��� O 0��� � 22�

�0/ O 1��� O //�� � 21�� � 23�� O 2��

33 O 1/�� O :0�� � /��� O 5/�� � �/�

�1 O 3��� O 53�� � �5�� O 03�� O 22�

��1 O 10�� � �5�� O /��� � :/�� � 0�

2�� /3�� � 3��� � /��� � 3�� � 2��

32� ���� O �5�� O 3��� � 1��� O :�

��:� 3�� O ���� � ���� � 12�� O 03�

/: O 1��� O �� O �� O ���� � �0�

�05� :��� O 13�� � 35�� � 2�

�������� .�� -���� - �� �� 7 � �� �� �� ��� � ������� � ������� ���� ����

� T���<��� �� ����� G��������! ����� �� ����� �-� �� ��!���

Page 125: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' �������� /�0���� � ��'

� �- �� I�������[!�!�� � �� ��� ��� G � ��� � �� ������ 00 ����� G � ��� ��!�� �� 2�� #$��� ��� �-��� ����� ��� ��!�� �� ' ��!���� �� ��!�� � �� �-����������� ��� ���� <<=LX� ��!�� � ����� G � ��� � ��-� �� ��!�� �� ��!�� � 00 ����� G � � �� ��� ������ � �� �����22��� G �� � ��-� ���� � � 00 2 � ��� T���<���� G ��

I/� 5� 0� 1� //� /�� /2� /3� /0� �2� 2�� 2�� 25� �/� �2� :5�

3/� 3�� 02� 01J

����� $�� � ��� ������� �� �� ���� �� �� �������-Q���� ���� �� �� ��������� � �� � ����B����B�������-Q���� �� ��� � ���� ����� ���������

� *�+��������� ������ �������$��� ����� ����� ��� � ��#���� ���� ��� ���� � �� 34���

������� ���� ���� � ����� ��5� $�� �� ��� ������ �� �� ������� ��� ���� ��� � ��� ����� �� �� ��� �� �� ������ �� ������� $�������� ����� ��� ��" � � ��� � ������� �� �@� � �� ���� � ��������� � "���� �� ���� ������ �� ��#���� +��� ����� ��� � ��� ���� �� ��� �� �� ������� $�� ������� ����� ���� � �=�� ���� �� ����� ������ ��� �� �� �� ������� ���� �������� ����� �� ���� ��� �� � � ��������� �� �� �� ���� ����� ��#��� �������� ������� �� �� ��� � �������� �� ��� �� � �� �� �� �� � ������ ������� E� �� �� �� �� ��#�� �� ������ � � ��"� ������ ��� ��� �=���� �� ���� �� ���� �� �� % � 34��� �������� � �������� ���"� ��" � ���� �� ��#���� ���� � � �� ����� �=� �������� � ���� � � �� �� �

�� ����� !��������� -��� � � ������ ������� �� �� �� ���������� �� �� ������ �� �������

� ����� �� ����� �� � �� ��!����� ������ ����� ����! &������� ������� �������� ������ �� �� �� ��� ������ �� �� �� ��� ���� �� �� �� 2�� ����! &������ �� �� �� 2�

Page 126: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

� ��� ��!��� ��� �����

$�� ��� �� � �� �� ��� ��� �� ��� �� ��=������ �������� ���� � � �� � �� ����� �� �������� �� � ���� �� �� ����$���� ��� �� � � �� �� �� ����� ���� � ����� ���� �� ���� ������ ���� $���� ���� � � ��� �� � �� ���� �� �� �� �=�� ��������� �� �� �� ������ ����� � �� ��� �� � "���� � �� � ������� �� � � � ������ ��

�� ��� ��� !��������� (����� � � �� ����� ��� �� �� ���� ���� �� �� ������ $���� � � �� ���� � �� �� �� �����

��� �� �

� ��) ��� �� ����� ��� �� �� ��!����� ������ ������ ����! &�������� ���)�$�� �����?������� ���?������� ����� � ���������

� �����?����� �� �� �� ���� ���?����� �� �� �� ���� ���� �� �� �� 2�� ����! &������ �� �� �� 2�� ���)�$ �� ������� ����� �� ��� � �� ������������ � �������������� � �� ������������ � �������������� �-��� �4 ' �4 �� ��� ������ ������� �� ������� ����� �� ��� �& ����)���� � ������� � �$��� � �������� ����� � �� ������������� ' ���������������� � �� ������������� ' ���������������� ������ �� � �� ��� �&� ��� ������ ��� ��!��� ��� �����

$�� ����� ��#��� ������� ������ � ������ � �� �7 � ���� �� ����� ������������� ��� � �� �� ����� ���= ����������9����� �� ���9������ �� � � � ������ �� ���� �� �� ������ � ����� �� �� �������

Page 127: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��!

�� ������ !��������� &� ���� � � �� ����� �� ��� �� ��� �� ��� � �� �� �� ��� �� ����� ����

� ������ �� ����� ���� ��� �� ��!����� ������ ����� ����! &������� ��� ������ ������� ������� ����!��� ����!� �� �� �� ����� ������ �� �� �� ����� ������ �� ����� ������ �� / 7P �������)� ��� ���� �� �� �� 3 ����!����� ����! &������ �� �� �� I� 3 ��� �������� ���� �� �� �� I� 3 ��� 3 ����� ��� ��!��� ��� �����

����� �� ��=������ ������ �� ���� � ��� �� �� ����� �� ������ ��� �� �� �� ��� ��#���

����� $�� ������ �� �� ��#�� � ���� �� ��� �� �� 34��� �������� �� �� ��� � 34����!% �� %�� � �� � ����B����� �� ��� � ���� ����� ���������

��* �� ������ ��� �������� � ����

����� � ������� � �� � � �� ����� ���� �� � ���"� � ����� ������������ �� ���"� � � ��� � ��� ����� ��� ����� � ���� ���� ���� � � ��� ��� $�� ������ ��� �� 7 ���� �� � �� �� ���� �� ����� ��� �� ������= ��� �� ����������� ������� � ����� ���� �� ��� ��� �� ������ ��� �� 7� � �� � ������ � � �����" � �=� ����� �� �� ������ F$�� � ����� ������%� �����C����" ����� �=� ������ � � �� ������G �� "�� �� ���������� ������� ���� ����� ����"� �� � � �� ���� �� ��� �� � �� ������ ���� ���� ����� ��� ���� F��� ��� ��� ���� � ��� � � � ���G � �� ���� ��������� � � �� ��� � � ���� � �� �� � � ������ ��� "��� �� �� �� ��� �� ��� �� ����

'������ ����������� �� '��� ��"�,��� ����������� �������� � ���� �� � �#��� � �� ���� � � " �� �������� ����L �� ��� ���� �� ���� �� � � "������%�� � ��� � � "��� �� ��� �� �� ����� 4�� ��� �� ��� �� � ��� � �� ������ �� ��" ��� �� � � � �� ������$��� � � ���� � �� �� � ��� � ��� � ��� �� � �� ������ � ������%�� �� �� ��� ���� �� ������ ���� ��� ��� � � ���� ���� � � ��

Page 128: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� � ���� ++��� ,��� �������

�� �� ����$ �� �� �� �� � ��� �� � ��� �������� �� ������� �� �� ��� ���� �� ��� ��� �� �� ������� $��� ������� ���������� ������ � ��������� 4�� �� � �� ��� ��� ���� � �� ��#��������� �����%�� �� �� �� ��� $��� �� ��� ��� � ��"����� �� ��"� ��#�� �� ���������� (�� ��� �� ���"� � ��������� �� ����� � ��������������

*���������� 0��,��� ����� ��� �������� ��������� $�� ������� ������%�� �� �� �� �� �� � ��� �� ��� ��� �� ��� �� �=�� �� ������ �� �=� ����� � � �� �� ����� �� ������ �� � ���� � �� ��� ��� �� ��� � �� ����� ��� � ��� ��"� �� ����� �� �� ��� ��� F&��������� ��� � ���� �� ��� ������� ��@� ��� ��"�� ��� �� ������ ���=�� ��G

.��� � �� � �� ��� �� �� ��� �� ������ ����� �� �� �� "����� ��� � ����� ��� �� ������� ����� � ��� "���� ���� ���� �� ������� � ��� 7 ��� FAG "� � ������ �� � ����� �� � �� ���� ��� . ��� "�� ��� � ������� �� ���� � � "�� ������ �� �� ������ �� ������ � ���� ���� ��� ���� �� ��� ���� �� � ��� �� ���� ���� � � ������ F� �� �� ����� � ��� �G� ��"� ��� ��� ���� � �� �������� � ����� ���"� � ������ �� ��� �� ��� �� ��� �� � �������� �������� � �� ����� ��� ����

����$����$�� �� ��� ���� ���� � ���� ��� � ��� ����� � � �� ����� �� ������ ����� �� � ��������� � �� ���� �� � ������� ��� �� � � �� ����� ��� �� �� �

A �����A# �- ��� '>

� "���� �- ��� �� � ��7 ��� �� ������� � �� ���� ������� F�=�� ������ �� �� �� � �- ���<<�-��G� 6� �=������ � �� ���� �� � ���� �� " �� ��

� *��������)* �� B* ��!��*� *'*� *3*� *�*� >���� ��� �B�

"���� � F�������G ������ � � � �� ��� �� �� �

� *������:)��!�* �� B* ��!��*� *'*� *�*� >��� �B�

$���� ������� � � �� ��� � "���� ����� ���� ������ �� ��� ���=�� ��

� ��� �� �� ���� � ��� ���� � � ��������� � �� ���� �� � �� �� ����� ��%�� �� �� �� �����

Page 129: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��#

� >+ �� ��!����� ����������� J�$� ����)��� ��!�� +J�� ������ *'*� *3*� *�*� >���� ����� *'* �� ���:� �� �': �� +�� *3* �� ���:� �� �3: �� +�� *�* �� � �� +�� �� +�� >��� �� 2�� ��� �� �� ��� ��!���� ����� >+� B���)B ��

����

� ��� �� �� ������ �� � �� �� �� �����

� ����� >+� B�:)��!�B ��

����

�� ����� � � � ��� ���� �� �� � �� �� �� ����� ��� ������$��� � ����� � �� � �� ������� ��� ������ ������ �� ��� � ����� ����� � �� ����L ��� ���� �� ���� �� �� � ���� ���� � �� E� �� ��%�� ����� ��� F��� �� � ������� �� � ����� � �� ����G � ���� ����� ������

� *����������&���* �� B����&!��� @�� :����� :��������A�� * ��!��* �B�

$��� �� � � � �� ���� � ���� ���� �=� ������ �� � � ���������� � �� ����� $��� ���� �� �� � �� � ���� ��� � ��� ����"�� �� ��� �� ������ A �����A �� ��� � � ��� �� ��� �- ���� � �� ��� �- ���<<�-��� � �� "� � ���� � �=������ � ��� ������ ������ �-��B���� �� �-��B������ � � �� �� ���� �=� ������� �� ������ ���� �� ������ � � �� �������� ���� �� ���� �� ������

���$��� "�� ����������� �����"���� �� ����� � � � ����� ����� � �� � �� "� �"���� � ������� � ������� �� ���� ���� ����$�� ������� �� ����� �� �� �� � �� �� �� �� ��� �� �� � � ��� � ��� ���� ��������� � �� � ����B����� �� ��� � �� �� ����� ���������

� 9����&��� �� ��!����� ����������� J� ���.�)� &�� ����!�����) �����&����J�� )��:�� *����������&���*�� ������ ��&���� / ��&��� �� �����&���� ������� / ������ �� �����&���� �������� / ���� &�� �� ���������� �-!��������/ ���� �-!��������� ������:� / ���� �� �����&���

Page 130: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� � ���� ++��� ,��� �������

� �����&���� / ���� #$��$�� � ��!�� �����&���� / �� �����&���� ����� )����)�� / ����)� �� � )��:�� �����:��� ������� / ������� &�� �����&��� �� � �� ����� ������ / ������� &�� �����&��� �� � �� � ���� ���!�� / ������� *����������&���* )��:����� ������ ���.�)�� ���� � ���!���

� / 5�&��� � )��:�� ���� &�� �����&����0� / X$�� ����)� ��� ��.�� ���� �& ���������) �$� ����� / �� �$� 8���� ������� �� #$��$ �$�� ��!�� ��&�������� / �� ����!����0 H�����) *���!���B ���!��� �$�� �$�� ����� / $������ #$�� �$� ������������ ��!�� �� ���� &�� �� / ����������0� *����������&���*� �� B����&!��� @�� :��� *��*A� * ��!��* �B��

� / =��!�� �$�� *����������&���* �� ��&����0 X$�� �$!�. ��� / ������ #$�� �$� ������������ *9����&���B ��!�� �� ����� / &�� � 8���� ����������0� ���!� �� ������� )��:�� *����������&���*�� *����������&���*� �� B����&!��� @�� :��� *��*A� * ��!��* �B�� ;7GG / -!��� ���!��� ��� ������

� / ���)� �� �$� )��:�� �������� �& � �� �� )����)� �� ����� �� ���� :��� ��� �� ������ �������� ����� �!:�� ?] � �� �� ������� )��:�� ?]�� ?] �� ���� ��� � ���� ��� ������

� / H������ �� �����&��� �� � �� �$� ������������) ����0� ������ �� � �&����� :�� � �� � *�����* YY �&� ���

� / H������ �� �����&��� �� � �� � ��� �& �� :���0� ����� �� � �&����� :�� � �� @ ��� � *�����* YY �&� � � A��

� / 9������ � ��# �����&��� ���� �$� ���� ����� 0� ��&��� �� ����� �&� �� ����������� J��&��� �� �����&���J�� �& ��� ����� @��)�A� B�� :��B � %� @ ��!� A �$��� ����� J��)! ���� !�� ��� :� �� :���J� ��� �&�� )����)�� *�����* YY �&��� B* ��!��*B� ��)�� 00 ���)� � � ��� �&� / ���!�� �$� �����&��� �� �� ��� ������

Page 131: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��

� / 9 ��� ��� �!:�����)0� ������ �� ����� ��#� ��� �� ����������� J������ �� �������) ����&���J�� �& ��� ����� @��)�A� B�� :��B � %� @ ��!� A �$��� ����� J��)! ���� !�� ��� :� �� :���J� ��� �&�� �& ��� ����� ������� ��� �� B�����&���B � �$��� ����� J������ &��� �� �����&��� �� �� DJ� ���� ��� �&�� ��&���� ��#� ��� ������� ��� � �� ��)��,00���)�� �� ��� ������

� / X��� #$��$�� �&� �� �� ��������� �& �&�0� ������� �� ����� �&�� �&� �� ����������� J���� #$��$�� �$� ������ �����&��� J� J������� �$� &����J�� ����� �� ��� �� � �� ��� ��� ������� � �&�� �&� � � ��� �& ��� ����� ������ B������&���������&����B � �$��� �& ��� ����� �� B�����&���B � �$��� ����� J��)! ���� !�� :� �����&��� �� ��� J� J:!� )�� DJ� �&�� ����� ����� J��)! ���� !�� :� �����&��� �� ��� J� J:!� )�� DJ� �&�� ��� �&� ��� �&�� ������ �&� � �!:��� ������ �&� �� ��� ������

� / <��� �� �����&��� �� �$� ����������0� ������: �� ������� ����������� J���� � �� �� �����&��� �� � J� J����������J�� ����� �&��� &�� �&� �� ��� ������� � ��)� � � ��� �& ��� ����� �&�� B�����&���B � �$��� ����� J��)! ���� !�� :� �����&����� J� J:!� )�� DJ� �&�� ��� �&�� ��������:� ������� �&� � �� ��� ��� ��� ������

� / X��� #$��$�� � ��!�� �����&��� �� �����&���0� / X$�� �� �� ��� �� ����������� �� � ����� / �� *������B0� �����&��� �� ����� � �&� �� ����������� J���� #$��$�� � ��!�� �����&��� �� �����&���J�� �& ��� ����� ������� �&� �� B�����&���B � �$��� ����� J������ ��)! ��� !�� :� �� �����&��� �� �� J� J:!� )�� DJ� �&�� ��� �&�� ����� � �&� �

Page 132: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� � ���� ++��� ,��� �������

� ��� ������

� / X��� #$��$�� �#� �����&���� ��� �-!�������0� / <���� !�����!���� &!������ ����� �� ����� / ��&&������� �& �$��� ��)! ���� ��� �� �� / ��&&����� ������ #� ������� �$� �� ���� &������ / ��� �$�� ���� &�� �-!�����0� �-!������� �� ����� �&�� �&� �� ����������� J���� #$��$�� �#� �����&���� J� J��� �-!�������J�� ����� �� ��� �� � �� ������� �&� �� ������� �&� ��� �& ��� ����� �� B�����&���B � �$��� ����� J��������) �� �����&��� �� �� J� J:!� )�� DJ� �&�� ���& ��� ����� �� B�����&���B � �$��� ����� J��������) �� �����&��� �� �� J� J:!� )�� DJ� �&�� ��� �&�� ����:� @ ��� � � A � @ ��� � � A �� ��� ������ ��� ��!���

$��� ������� �������� �� �� ���� ��� ����� � ����"� �� ����� ��� �� ����� "��� ����� � "� � ��� ��" ��� % ���� ����� ��� ������

� #��$� 9����&��� ��

(�����)� �$� ��������� �� �� ��&��� ��� ������: $���:��� ����&���� ��� !����������

I��'��� ��� $����� � ������ � �������� ��� �'��� ��$�� �J

� ��&���� B�:)��!�B� B*'*B� B*�*B� B>���B ��

������

� ����� *������:)��!�*� B�����&���B ��

����

� ����� >+� B�:)��!�B ��

����

Page 133: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��

� �����&���� >+� B�:)��!�B ��

����

� ������� B���)B� B�:)��!�B� B*3*B� B���B ��

� �

� ����� *��������)*� B�����&���B ��

����

� �������� �:)��!�� ���) ��

����

� �����&���� >+� B���)B ��

����

� ����� >+� B���)B ��

����

�� ���. %����� $��� ������� � ������ � ��� ���� �� �� �� ����� ����� � ����� �� ��� � ��� � ��� �� ��� � � � ���� �������� ���!�� ���.���������9� � ����� � �� 0������ ��������� ��� ���� �� ��� � � ��� �� ������ "��� $�� ����� ���

������ ��� . �����>

�� ����� � � �� ��� �� ��%��� �� �� ����� ��� "�� ��������� ��� �� �� ��� � �� � ������ �� � �� � ���� �� � ���� ������� $�� � ���� � ���� � � �� � ����� � � �=�� �� ����� �� ����� ��� $�� ����� � ���� � ����� � ��� ��� �� ������ �� �� ���� ������ �� ����� �-��B������� �� ������� � ��� �� ��� ��� �� $���������� �� ���� ���� � �� ���� �� �� ��� �� �� �� �� ��������� ���� �=�� �� � �� ������ � "���� �� ��� �� �� �������� $����� ��� �� ��� � ���� � ������ � ��� ������ ������ ������ �����

� �� ���� �� �� ��� �� ��%����

Page 134: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

������ ����� ������� �$�� �����"�� �=����� ��� ������ � ��� ���� ���� � ��� � �� ��� ��� �� ������

������������ *���������� � �� ���� � ��� �� �� �� �� �� �� ���#�� �� ������ �� � �� � �� �� ���� �� � �� + � � �� �� � �� ����� � �� �� ����� ������ ����� 4 ���� �� �� ��� ���C�� �� ���� ��� ������ �����"���

������

������

������

������

������

������

������

������ ��

����

������

������

������

ba

c d

e

f

$��� ���� �� �� ���� � � ��� "�� �� �= �� � M ��� �� �� �� !� ��� ������ �� + M �F�� �G� F�� �G� F�� �G� F�� �G� F�� �G� F�� !G� F�� !G� F�� �G� F�� �G����"�,��� ������ 4 ���� �� �� �� ����� � � �� ��� �� "���� $�������� �� �� ��� �������� ������ � �� �=����� ���������� �� ��� ���� $� �� ������������ �� �� ����� � ���� � ���"� � � �?

/� (� � �� �� � �� �� ���� �� �� �� + �� ����� �=��������

�� (� � �� Q��#����� �� �=R �� �� � ����

5� (� �� �� ���� �� �= �� �� � ���� �� �� �� ��� �� ������ ��

F$�� ��1������ ���� � �� � �7 � � �� �= "���� �"� �� ��� �� � ����=�� �� �� �� ���� �� �� � ���L �� F�� �G�� � �� �7 �� � / �� �� ��� � ���� � �� � � �� �� �� �7 �� � � ��� "����G E� �� " �� ���"� ��� ���� ���� � � ��� ������� �� �� �������

*�������� � '���� �����"��� $� ����� �� ��" ��� �� �� ��������������� � ���� �� ��#��� �� ������� �� ������ ����� � $���� ����

$��� �� ��� �� �������� �������� �� � � ��� �� � ����� ����

� *�����O���$* �� B* ��!��*� ��������� ��)��� �����)�� ������� ��>� �B�

� ��#�� ��������� �� � ��� �� ���� �� � �� �� ��� ���4�

Page 135: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �'

����� ��� 2� �� �������

�������� 9� � �� �� �� �� ���� �� �� � �������� 9� � �� �� �� ����� �� �� � ���

������ ����"� �� � ��� � �" ���� � � � �������� 9� � �� ��� �� �� ���� �� �� � �����H� 9� � �� ��� �� ����� �� �� � ���

!������� ������ *������ '���������� �� � ��#�� �������� ����� ����� �� �� �� " �� ��� �� ���� ����� � �� �� ����� 6� �=������ �� �� " �� �� �����"�� � ���� � � ���� � �� ����� ���� � ���� �� �� � �� �= �� � ���� � ����

� ���) �� ����� O��O���$� � �� ����� ��� ���� ����������� J�� �!�� �$� ��� ��� �!����)���� J� J�& � ������ �� � )���$J�� �& � :��� �� O������������ � �$��� �� �� ������� � �� ����:� � � �����!����� ��� O����)���� ��� �� �� ������� � �� ����:� � � ������)���� ��� O����)���� ��� ����� �� �� ����� �� �� ����� 2� 2� ��� �&� ��� �����

E� �� " �� ��� � ���� � ��� �� ��� � ��� ���� �� �� � ��"�� � ��� ����������� $��� ��������� �� �� � ���� � "�� �� � � ������� � �� �� ���"� � ������

���� %�&��� ������������� ��� �� �� ����� � � �� ����� �� ���#��� �� ������� �� �� ���� A �����A# ������8 ����� '� $���� ���� � ������ ������ �� �= ���� �� �� �� �� � �� �� ����� �� � ����� � ��� � ��� �� =��� �� ����� �� �����

� =�)� �� ����� ���� ���) �� ��!����� ����� �$�?��!���� �$�?���)���� ������ ��!���� ���)��� �����!���� ������)���� �$�?��!��� �� ����� �$�?���)�� �� ���)�� ��!��� �� �� �� �$�?��!����� ���)�� �� �� �� �$�?���)���� �����!��� �� ����� � �� �$�?��!��� �� �� ��� ������ ������)�� �� ����� � �� �$�?���)�� �� �

Page 136: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

� ��� ������ ��� ��!��� ��� �����

����� '���� !��������� � % �� �� ���� ������ � ���� � � ��� �� ������ �� �� ������ � �������� A� � �� � � ��� ��� �� �� � �� ��� � ���� �� ����� �� �� �� �� �� �= �� ���� ����=������� �� �� �� �� ��� �� � ��� ���

� O���$ �� ������� ����� ������?���� ��)�?����� ����������� J)���$ ������!����J��

� ��)�?��� �� @ ��)� A�� �& ��� ��� ��� ����� ��)�?���� B� ����$��)� ����$��) �B �� �$��� ����� J)���$ !�� :� �����&��� :� � ��-!���� �& ��)��J� ��� �&�� �& ��� ��� ��� ��)� �� ����:� ���� � ��)� �� �� ��)�?��� �� �$��� ����� J���$ ��)� !�� :� �����&��� J� J�� � � ��!���� ���)�� � ����J� ��� �&�� ������?��� �� ��� ��� ��)�?��� ��� ��)�?��� �� ��� =�)�6��� ��)�?��� ��� ��!����� ������ ������ ��>��� ��������� ��)���� �����)�� / ��-!���� �������� �������� �� �� �� ������?����� ��)�� �� �� �� ��)�?����� �����)� �� ����� ���� ���) �� ��)�?��� �� @ =�)�� ���� ���) � A� !���� ��)�?����� ������?��� �� @ ���� ���) A� !���� ������?����� ;7GG� ��� ������ ����� �� �� �� ����� ���������� ��� ��>� �� �� �� ����� ��)���� ��� ��� ��!��� ��� �����

�� �� � ��� � ����� � ��� ��� ��� ��� ��

� ) �� O���$� � �� : �� � �� � �� � :� � � ��� ����� )� BO���$B ��

����

Page 137: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �!

�� �� �� �� � �� ���� "�� �� � ��� �(� ���� � ���� � �� ����� ���4( ������� �� ���4 �� �����

� ���)� )� � ��

�� �

� ���)� )� : ��

/� /

� ���)� )� � ��

�� �

$�� ���� � ��� � �� �� � ���� � ���� �� �� ��� �� 7 ������ �� �� ��� "�� ��� ���������� �� � ���� �� �������� �����4 �� ���� � ���� ��� �����%���

������ '���� !��������� A� � �� ���� � ��@� � ���������� ���� ���4 �� ����� $�� � ��� �� �� ����� �� ��� � ���� 1 � "������ ������ � �� ���� �� �= � � �� ���

� O���$ �� ������� ����� ������?���� ��)�?����� ����������� J)���$ ������!����J��

� ��)�?��� �� @ ��)� A�� ������?��� �� ��� ��� ��)�?��� ��� �& ��� ��� ��� ����� ��)�?���� B����B � �$��� ����� J)���$ !�� :� �����&��� :� � ��-!���� �& ��)��J� ��� �&�� �& ��� ��� ��� ��)� �� ����:� ���� � ��)� �� �� ��)�?��� �� �$��� ����� J���$ ��)� !�� :� �����&��� J� J�� � � ��!���� ���)�� � ����J� ��� �&�� ��!����� ������ ������ ��>��� ��������� ��)���� �����)��� ����� ;� �� �� �� ��)�?������� ; �� ��:������ ��)�?����� �� �� �� @ ��-�� ��-� � �� � �� � � ;� � � ��� � � ��� ��� @ �������� ; � A �� � A�� �������� �� �� �� ��� ��� ��)�?������� ��

Page 138: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� � ���� ++��� ,��� �������

� ��)�� �� �� �� ��� =�)�6��� ��)�?������� ��� �����)� �� ����� ���� ���) �� �& ����)���� ;� ��� � �� ��� ��� � :��� ���)� ;� ��� � � �$��� ;� ��� � �� @ ��� ;� ��� � �� ���) A� ����� ;� ��� � �� @ ���) A�� ��� �&�� ;7GG� ��� ������ ����� �� �� �� ����� ���������� ��� ��>� �� �� �� ����� ��)���� ��� &�� � �� ��)�?��� ��� �����)�� ��� � � �� ��� � � � �� ��� ��� ��� ��!��� ��� �����

� � ��� � �� �� �� ��� �� ���4� ���� ����%�� �� ���4 ��� �����

� ) �� O���$� � �� : �� � �� � �� � :� � � ��� ����� )� BO���$B ��

����

$�� ��� �� �� ���� � � ���� � ���� "� �� �7 ���� "��� "�� ��

� ���)� )� � ��

�� �

� ���)� )� : ��

/� /

� ���)� )� � ��

�� �

����� $�� � �� �� �� ���� �� ���� � ���� �� �� ��������� � ��� ����B�����B���4 �� ��� � �� �� ����� ���������

'������ !��������� �" �&������ �������� ���� �=����� �� ���� �� � ���� � ��� �� ���4 �� ���� �� �� �����"�� � �� �� ���� �� �� ��#����� �� �= �� � � ����

Page 139: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �#

� �"������8����� �� ����� )��O���$ �� ����� �� / �$� ��"������ ������ ���!����� �� / �$� ����� �& �$� )���$ )� R� / �$� ������ ��� �& �$� )���$� =� / �$� ��)� ��� �& �$� )���$� ��#� / ��# ����� &�� ������ ���� / ���! � ����� &�� ������ �� / ���!����� �����:�� &�� �����

� � �� )����������� � �� 8������ �� �� B�����)�B � B������B ��� R �� ����� �������� )������������� B����B � ��� = �� )����)������ &�� � �� = ��� �& ��� � :��� �����!������ R� B��#B �� �� ��� � :��� ������)����� R� B���B � �$��� ����� J������������ )���$ ���!��!�� ��������J� ��� �&�� �� ��#� ��� � �� � ��� ���� �� ��� ������ �"������8������ ) ���

� � / /� � /� � �

��

� �"������8������ ) ���� � / /� � /� � �

��

������ 5��� ��� � �=����� �� ��� �� � �� ������ � ��� �� 7 ��� %��� F� %����� � �����G ��� ��� ���� ��� �� ���� �����

������������ *���������� 4��� � ��� �� ����� ,� �� 7 ���%��� �� F � � ����� �����G �� �7 � %��� �� ��� �� "�� � �C� � �������� ����� - ? , �� �� "�� �� � ��� � ��� �� �� �C� � �������� ����� . ? , �� / � � "���� / �� � %���� �� � �� � �7 � �������� ����� ' �� "���� �� ���� ��

Page 140: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� � ���� ++��� ,��� �������

D

k

ϕ

σ

���� ��� .��� �� � �C� � �� ������ ����� �� � %��� � � ���#������ ��� ���� �� ��� � %��� / �� ����� , �� � � � �� � ����� ���� � ����� ���� ���� �� ��

&�� ����� �� 7 ��� %��� �� � ��� �� ����� , �� �� �� ���� �� �� �� �� Q �� ��� � �����R ���� "�� �� � ,� � �� ��� ���� ��� �� �� � �� ��� �� ��%�� � �7 ������� ����� � �� ��, � F, � ���G� ���� ��� � "���� "� ��� � F�/� �/G �� F��� ��G � ��7 ����� ��� ���

�/ �� M �� �/�� �� ������� � �� ���� �7 ������� ����� �� ����� � �� ��� ��%��� ����� ��%�� �� �� ������ $��� �� ����� � ���� �� ����� � �� ������ �� �� 7 ��� %����

-��� ������ �������������� �� � �� � ���� ���� �� "�� � ����������� ������ ��

0F�G�� �� � ? F�� #G� � #�� � � �� ���� �� �� � � � 0F�G �� �� �� � � �� +��� � �� �� ������� ��� � �� ������� ������ �� �� � ������ �� ������� �� �������� &����� � �@����� ������ � �� � �� ������ �� � � ��� �� ������� �� ���� ������ 6� ������ �� �� �� � �� ���� �� ��� � � 0F�G �� �� �� �� �� �/��/�� �� � ��� � � �� ��� ������ �� � � ���� ����� "�� ���� �� �� ��� �� � � ��� �� �������� �� �� ������� ����� �� ���� � ��� �� � �� �� � �� ���� F$� ���� � � ��� ������ ������ ���� �� �� ��� �� ����� � ��� � ��� ���� �G $�� � � ��� ������ � �� �� �I J �� ���������� �� ���� ���� ��� � %��� � ��

�F G� /

��F�F GG �F G�

� "���� ��F�F GG ����� �� ������ ������ �� �� ��������� �F G�F$�� � � � �� �� � �I J �� �� �� �� M � � ���� �� �C� � ����� � ���� �� ���� � �� �� �I J �� �� ���� �� �� ����� � �7 � ������������� �� �� �� �� ��������G

Page 141: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ���

*�������� ��� ��� �����"���� $�� % � ��� � �� ����� ���� ������ ���"� � �� � ������ � �� ���� �� ���� ���� �� ���� ( ����� ���� ��� � � �7 ����� "�� �� ����� �� ��� ����� �� "��� �� ���� �������� �� ������� ���� �� ���� �����

� *�����L��)* �� B* ��!��*�� *'*��������!���� *3*��������!���� *�*��������!���� ��>�����������!���� �������������!���� >���� ���� �B�

$��� �� ���� �� ������ � ���� "�� � �� ��� ���������� ��� ���� �C��� �� �� �� �� � ���

�1�O� � �� /�

�� ����%�� � ��� �� � ��� ���� �� � "���� ���� ���� ���������������� ���� ��� ������ 4��� �� "�� ��� �� ��� ���� "� � ������� � � ����� F5G �� ������ F� � �� � ����� ��� ��� �������� ������� �� ��� �� ���� �� � � ��� � ���� �� �� � ���� ���G

6� ���� ���� ����� �� ��� � ������� ���� � � ��

� *�����O��L��)* �� B* ��!��*�� *'*��������!���� *3*��������!���� *�*��������!���� -!���������!���� �� ��������!���� )����������!���� !��� ����������!���� ��>�����������!���� �������������!���� >���� ���� �B�

$��� �� ���� �=��� �� C��� �� ���� ��%�� � ���� ���� ��� ������ � �� ���� � ��� ��� �� ������ ��� � ��� ��� F� �� ������ � ��� �� ������ � ����� �7 � ���� �C���G� � �� ��� ������%�� �� ���������� ��� ����� $� ���� � "�� �%�� ��� F�� ����� �� %�� ���G� �� �� � �7 � � � � �� ��� �� �� ������ ���� ��� E� �� ��� � �� ��� � �� �@������� ���� ���� ��� ������ �� �� � � � ��� �

����������� ��� ���� � �" �������� �� �� �� ������� �=������ �� � �� �� � ��� � �� ���� ���� �� �� �� �� ���� � � � �� ��������� �� �������

Page 142: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

� 8����9���)��� �� ��!����� ����������� J�$� ���) �& ����)���J�� ������ *'*� *3*� *�*�� )��� !��� ��� ��>����� ������ >���� ���� �� � -!��� *'* �� � �� : � �� � ' :�� *3* �� � �� : � �� � 3 :�� *�* �� � �� ���� -!� �� � �� : � �� ���-!�� �� : ��� �� �� � �� : � �� ����� � �� : ��� )�� �� � �� : � �� ���)��� �� : ��� !��� �� �� ����� �������)�� �� �& � % 2 �$��� �� ��� ����� � � / ����!��� 2� ��� �&� ��� ������ ��>��� �� � �� ����:� � � 2 ��� ����� �� � �� ����:� � � ��� >��� �� 2�� ��� �� �� ��� ��!���

$��� �� � ���"� � �� ������ �� �� �� �� ���� �� $�� � � ��������� �� �� ����� �� �� �=�� �� � ���� � ���� �� � � � ��=� ����� ��7 ��� �� ���� "�� "���� % � ����� �� � �� �� "��������� ����� �� �� � � ��� �� � �� �� � � ��� $�� � �� � ���� � � ��� �� ������ �� �� �� ������ $�� ��� ������ �������� �� �� ������� � ���� ����� ��� �����

� ����� 8����9���)���� BL��)B ��

����

� ����� 8����9���)���� BO��L��)B ��

����

� �����"��� "�� ������ $�� 7 ��� %��� ��� �� � �� ��� � %����� �� ���� �� ���� ���� %���� ��@� � � �� �� �� �� ��� �� �������� �� ������ �� � ��� ����� F���� ��� � � �����G �� �� ������ ���� F � �G B ��� �� �� ���� �� ��� ���� $�� ������ �� �� ���

� � ���� � ��� ��� � �� ���� � �� %����� ���� �� ��� � � ������ � %���� $"� �" ������ � � ��� ���?

� �� �� ��� ��� %��� ������ � �� ��� �� �� � �� �������� �

Page 143: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ���

� � ���� �� � �� �������� �� �� ��� �� ����� , �� �� %���� �� � ������

����������� �� "� ������ �� �� �� ���� ����" �� �� � �= ���� ������� �� � � �����

� *�����F����* �� B* ��!��*�� *'*��������!���� *3*��������!���� *�*��������!���� *�*��������!���� ��� ����������!���� ��>�����������!���� �������������!���� >���� ����� �.���������!���� � :����������!���� �! ����������!���� ���� ��������!��� �B�

�� ����� �� �� � �� ���� � �� � � %����

� ����� 8����9���)���� BF����B ��

�����

6����� � �� ��� �� �� 7 ��� %��� ��� �� ������ ��� �� �����

�� .������ ����� ������ A� � �� �� ��� �� ��� �� �� 7 ���%�����

� [!������F���� �� ����� L��O��L��) �� ����������� J-!������ &���� &!�����J�� ��!����� ����������� J� -!������ &����J�� ������ *'*� *3*� *�*� *�*�� >���� ����� ��>���� ������� �.��� �! ��� ���� �� ��� ��� � :���� �.� �� ����� �� � �� ����� !� ���� �& L����>���� � � �$��� ����� J�������� :� >���J� ��� �&�� !� �� �� L��!��� ��� � ��� BFL HX9V;B� !3�� �� �� ��� ������ � :�� �� � �� �.�� �� L����� ��� �! �� �� & �� ��� � & ��� ���� �� & �� ��� � & ��

Page 144: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

� >��� �� � :��� L��>��� ��� ��� �� � :��� L����� ��� ��>��� �� & �� ����:� ��� ��� & � � >��� ��� ����� �� & �� ����:� ��� ��� & � � ��� ��� ��� �� �� ����� & �� ����� )� �� :�� ) �� L��)��� �! ��� & �� ���� � & � ��� �& L�������� ) � �$��� &� ����� � �� L��-!�� �! ��� & �� ) ��� : �� L��-!�� ���� � & �� ) ��� �.�� �� : �� ��� �&� ��� ������ *�* �� & �� ��� ��� L��*�*� �! ��� & � �� ���� � & � ��� *�* �� & �� ��� ��� �.�� ���� � & �� �! ��� & � � ��� *'* �� ����� �� : �� !�� *'* � L��*'*� *3* � L��*3* ��� ��� ��� �.�� �! ��� � � 3 ���� � : �� ' ���� � � � 3 �! ��� : ��� ���� � � � 3 ���� � : � � �� ��� !��� ��� ������ *3* �� ����� �� : �� !�� *3* � L��*3* ��� ��� ��� �.�� �! ��� � � 3 �! ��� : ��� ���� � � � 3 ���� � : � � �� ��� !��� ��� ������ ��� ��!��� ��� �����

����� $�� �� �� ���� �� Q�������;����% �� �� ��������� � ��� ����B����� �� ��� � �� �� ����� ���������

��� �� �� �=�� �� � ��� � � � ������ "� �� $�� � ���� ���� �� �� ������ "� ����� � �� �� �� � �� � � ��� �� � ��� ��� ��� � ����� "���� �� �� ����� �� � ���� ��� � ������� �� �� �� �

;C���0�1# �� �����8 ���� ����� '

$�� �=�� �� � ���� � � ��� �� �� ������� �������� - �� �� ���� �� ����� �� �� 7 ��� %���� ���� ���� � ���� ���� $��� ����� ����� �� � �� ���� $�� � ������ ��� �� � � � ������ ������������ �� �� ������� ��� �� � ���� � ������?

�O�

�M��O ��

��

Page 145: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��'

�� �

�M��

�����

��M

����

M���

��� ������� ���� ������ �� � ���� �� �� � �� � ����C�� �� ���� ���� � �� ����� � �� ��� � F� �� �������� � �� <5��� �G�$�� ��� � � �� ���� ��� �� �� �� ���� "� � � �� �� ��� ����� ��� ��� �� � � ��� �� ��������� �� �� ������� ���� ��� ��� �� � ��� �� �=�� �� � ���� �� ��� �� ��� � �� �� ���� � ����� � �� ��"�� � ��� $�� � ���� ��� �� �� �� �� �������� � �� ��� %��� ������ �� �� � ��� �� � �� ������� �� ����� �� ��� �7 ������� ������ $�� �� � �� � ���� ������� �� C� ���� �� ��� ������� � � �� � � ��� �� ��������� $�� ��� �

� �� �� �� �� � ����� � � �� ��� � ������ ������$�� ��� ���� � � ��� � �� �� Q�������;���� � �� �� ��

� �� ���� �� � ����� ������ � �� ���C��� �� ����� �� ��"����� ���� ��� �� �� ������ �� �� �� ��� �� ����� C F��� ���� � �� � ��� �� �� ����%�� �� �7 � �� �� ����G �� ��� � ����� ���� $�� ��� �� � "� �� "�� ��� ���������� �� �� ���C����� ���� ��?

� �������� �� �� �� ������� �� �� � ���� ��� ����

� (���%�� �� ��� �� ��� �� �� � �� � ���"� � �� �������� � ��� �� ������ F$��� ��� �� �� �7 � �� � �� � �� ��� ������ ��� ���� � � "��� ��%���G

!���������� ��� �������� �� ��� .������ ����� �" � $� ��� ��� 7 ��� �� �� �� �� /���0������� ��%�� � ���� ���� � ������� �����"��

� FF �� [!������F����� 8����9���)��� ��

!! ?M�����FG

������X O X� X X� X� X� X�X� -���� ���� �-���� ����� �����

����� � ������ ������ � ����� L

���� �� �� Q� 7 ��� %���RL

��� �����

� ����� FF� BF����B ��

Page 146: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

����

� � �� FF�� �.�� � , ��

� ?M 69�&$���F�� 5G

� : �� FF�� �.�� � � ��

� ?M 69�&$���F�� 2G

� !�� FF ��� � ' :�� � 3 :�� � � :� ��� !���

69�&$���F3� :G

69�&$���F/� 5G

69�&$���F2� 5G

!���* $��� �� � ������= �� ������ �� �� %��� �� ����� ��� ��

�� .������ ����� �" ��� ���������� ��� � I J $� ��� � �� ����� �� 7 ���� �� ��� ��� �� � ��� � �� %��� � I J �� ������ ���� � � ����� ���� ���� � �� � ��� �� �� ������ ������� ����� �����������

� 8����I��� �� ��!����� ����������� J�$� ���) �& �������� ������ ����J�� ������ *'*� *3*� *�*�� >���� ����� ��>���� ������� )��� !��� ���� -!�� �� �� *'* �� � �� : � �� ������� � ' : ��� *3* �� � �� : � �� ������� � 3 : ��� *�* �� � �� ���� )�� �� � �� : � �� ��)��� �� : ��� !��� �� �� ����� � �� ����� ���� �& ��>���� � � �$��� ���� >���� ����� !�� �� � ����&&� � � ��� ��� ����� ��� � � �� �

Page 147: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��!

� ��� !��� ��� �&� ��� ������ ��>��� �� � �� X���>���� � ��� ����� �� � �� X���>���� � � ��� >��� �� 2�� ��� �� �� �� �� � �� : � �� ���� � �� : ��� -!� �� � �� : � �� ��-!�� �� : ��� ��� ��!���

$�� ���� � ����� � �� ��� �� ������ ������ �� ���� ���������� � ���� ��������� � � I J� $�� ������ �=�� � ������ ��� �� ���� ����� ��� ���� � ��� ��� ����� �����������

� LL �� [!������F����� 8����I��� ��

22 ?M�����FG

������X O X� X X� X� X� X�X� -���� ���� �-���� ����� �����

����� � ������ ������ � ����� L

���� �� �� Q� 7 ��� %���RL

��� �����

� ����� LL� BF����B ��

����

$� ���� � ��� � ����� �� � �������� � �� �� �� �����"�� �=����� � �� ����� �������

� *������FL HX9V;* �� � �� � � �� ����� � � � ����� � ��

6������ ��� � � ��" �=������� �� �� �� � �������

� � �� LL�� �.�� ��������� BXB� B��)���B � �� B��� �B � , ��� ��������� BXB� B��)���B � �� B��� �B � , � ��

� ?M���3� � � /1:� O �25�

� O3

0 � O

1

0

� : �� LL�� �.�� ��������� BXB� B��)���B � �� B��� �B � , ��� ��������� BXB� B��)���B � �� B��� �B � , � ��

� ?M��31� � O 21: � O �3::

� � 33

:� � 55

5/

Page 148: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� � ���� ++��� ,��� �������

� !�� LL ��� � ' :�� � 3 :�� � � :� ��� !���

F��31� � 330/

2 � � /:50 � O

2�/0�3

/�2 �

O/1253/�

/�2 � � /222��

5/ O

03555

/�2G

F

� � 1/

�20 � � /�:3

21: � O

:

5/ � � :15

21: � �13

�20G

F�30�00� � O 222�:00 � � /:/�322� � � 1���00� �

� //5�/5:� O 5/5��1/�G�F

� � 1/

�20 � � /�:3

21: � O

:

5/ � � :15

21: � �13

�20G

F�30�00� � � /3//�0� � � �0/����� � O /5���:0�

O /:/55�2�G�F

O��/

5:� � � 3

2� � � //5

/�� � � �2/

/�� � � 15

2�G

� ������ ���� � ��� �����$��� ����� ��� � ��� ��" � ������� � ���� ���� ������= ���"� ������ �� ��� ��� �� �� �� ����� ��� �� ������ 4�� �� � �� ������ �� � �� ��� �� �� ������ ��� � � ���� �� �� ������� ������ �� "���� �� �=������ � � ��� �� ���"� � ����� �� ���� �� "��%�� � � �� ���� ���� �� �=������ �� �����"� 9����� �� � ���� ��� �� �� ��#��� ����� "�� � ���������� ��� � ��� ���� �� "������ � �� � �7 � "������� ����� ������ �� "�� ����� � "�������� ����� �� �� �� ���� �� ��������� � �7 � ��� ��� +=�������� � � �� ��� ��?

� (����� �� ��� �� ��� ������

� &����� ��� �� ��� ���� �� ���� F��� �� �� ���� ��C�� "�� � ������ � � %���G� ��� � ��������� F���� � � ��G

� &����� ��� �� �� � ���� F��#����� ������� � � ��G� ��� ���������� F�� � ��� � � ��G

� 4 � �� �� ���� � ������� � ���

��� %�� � � �� � � ���� �����

Page 149: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��#

����� ��� 3���� �� 2���� �������

�� 9� � �� � � � �����A%A -� �� �� �� ��� � ��� ��� � �� � � � �� ��� � �� ��� �� A%A��� -� �� �� �� � � ��� ��� ��� �����2 &��� �� ��� �� ��"� � �� � � � �������� $��� "���� "� � � � ������ � � �7 ��

� ��� $��� ����� ���� � �� � � � �� � ������� 9� � � ��� ��� �� �� �� � � ������ 9� � �� � �� �� �� � � �

��� ���� 9� � � � �� ��� �� �� � � �B� ����� �

� �����"��� "�� ������ '���� 6� �� �� � � ������ ��" � �� ����� ��� �� � � � �� ����� $��� �� ��� ���� �� �� � ������ �� �� ��� � � ��#���� ��� ����� �� ����� ���� � � � � � �� � ������ � ����� �� ���� ����� �� ����� �� �� �� 7 � � � ������

$�� ����� ���� � ��� � �� �=������ ���� ���� � ���� ���������� �� ��� �� � � �� �� � ��� � �� ������ � $���� ��5�

� *�����O��!�* �� B* ��!��*�� ��� *0*� !�� ����� �-� � :���� )����� ������ ��� ����� �B�

� �� ������� ��� �� �� � � �� �� ������ " �� ��� �� C�������� �� � �� ��� �� ��� � 6� �� �=������ � ��� ������ � ���� ������� � � � �� ����

� O��!� �� ������� L������ ��� *�����O��!�* � ��� ��� �����

$��� ��� �� ���� �� � ���� "� � � �� �"� � ����� � �� � ���������C�� ��� �� � � �������� ��� � ��� �� � ���� �� �� �� �������=�� ���

E� �� " �� ��� �� ���� ���� ��� ��� �� ���� ������������ ��" ������ �=������ � � ���� � ��� �� ���� �� ��# ���� ������ �� � �� � � � ������� $�� ���1���� �� � � � � ����� � ��� � � � ����� � �� ������ $��� � �� ���� �� �� ��# ��� �� ������ �� � ����� � � � � � � ��

� H��"!)��� �� ����� O� �� : �� ����������� J�� �!�� �$� ���"!)��� �& � J� J)��!� ��� ��� :� ����$��J�

Page 150: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� � ���� ++��� ,��� �������

� !�� *�* � O������ *0* � O��*0* ��� :4��� 0 � 0 :� ��� !��� ��� �����

(��� �� � � � ��� ���� A%A �� ��� � � ��� �� � � � ���� ��������� �� �����"�� ���� ��� �� ��� �������������

� H��"!)���� O��!���� B�B� B�B ��

F��FGG � � �

(����� ��� �� �� ���� � �� ���� �� I�� �J M ������������ ������� �� �����"��

� H� !����� �� ����� O� �� : �� ����������� J�� �!�� �$� �� !����� �& J� J�#� )��!� ��� ����J�� !�� *�* � O������ !� � O�� !� ��� !�� ���� � �� ���� : �� �� : �� ��� !��� ��� �����

����� ��� ���� ��� �� ��� ������������� �� �� � � � ��� ���� � ���� ����

� H� !������ O��!���� B�B� B�B ��

� �F��F�G� ��FG� �� G

$�� ������ � " �� ��� �� ���� ���� ��� � ���� �� ���� �� ����� � �� �� ������� �� �� �� ���"� � � �#��� ������� ����������� �� �� �������� �� �� ������� �� ��� �� ��������� �� ��� �� � � � ��� �� � ���� "�� �� ���� � ������� "���� ����� �������� �� ���� ����� ��� �� � ���� $�� "� �������� ��� "� � ���������� � ������ ���� �� �� �� �� "� � ���� ��� ���� �� ���� �� �� ���� �� ��������

���������� '���� .��� � ������ � ������� �� ���������� ����� ����� � �� ����� � � ���� � ��" ��� �� � �� �����%� ���� ��� � ��� $���� �� �� �� ��� � ������� ��� �� ���� ���� � �����%�������� 6� ��� ����� ������� � � ������ "� � ���������� ���� � ��� � � ���

-� � ���� � � �� ����� ��� ����� ����� 6� �=������ �� �����8(8� �� ���� �� �� � ��� �� ���� / � �� ���� � � /��� ������ 5 %=��� F� ����� ����� ��� �� " �� �� �� ��������

Page 151: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ���

F/�G�G $�� ��� �� ���� � ������� ���� �� �� % � � � ��� �������� �� ��� �� �� �� �� � ��� � � �� $�� ������ � � ��� � ��=����� � �� �� � ���� F �� ����� �� ����G �� �� ���� ��� ���$���� � � ��� � �� � �� ��� ��� �� �� �� � � � � �� �� ����� �� �

� I�� !������O��!� �� ����� ��)�������� �� ����������� J��� !������ )��!� ������!����J�� ����� O� )����� )��� �� @ ��)�� 00 � � A�� O �� O��!����� O���� �� � C 00 ��) ��� O��*0* �� ����� �� : �� ����� ��� � ��-� :� � �� � � � � �� ��� ������ O�� !� �� �� �� &����� O��*0*� O����� ��)� ��� O����� �� ����� ) �� ����� �� ��� � �� ������ 00 ��) ��� &�� � &�� �� ��) ��� �� )� � � � �� �� ��� ���� � ��-� �� � �� � � 00 ��) � �� ��� ������ O�� � :�� �� ����� )� <� ������� � �� �& ���)� � �$��� ����� )� B����� ������ �B �� ��� @ ��� ) � A � @ C 00 ��) A� ����� �� � :��� ��)� �� ��� �&� ��� ������ O���- �� � �� : � �� ����:� � � : ��� O��)��� �� )����� ����� O� �� ��� �����

6� �=������ � ��� � �� � � � �F/�G� F/�5G� � �� ����� �� � � �1�� �� �� ��� ����������� ��� �� �� �����"��

� O �� I�� !������O��!�� �� @ ���,���� ��,���� A ��

2 ?M�����FG

������

� � X�X� ��� � �$ � �� � ������ � ���� ����� � ��������L

��� �� ������ L

��� �����

Page 152: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

$� ���� � "�� �� ������� �� �� ������ �=�� �� �� �� �������� � � � ��

� !�� O ��� ���� � ��,�� � � 0 ��,������ ��� !���

I5� �� /� 2J

� �� ��� � � � ����� �� � ��������C�� �� � ��� � � � ���� �� � �� ������� ���� �� � � ��� )��� �� ��� �� ��� �� ��� ������������ �� ��� ���� ���� �� �� �=�� �� ������� �� �� ��%� ���� �� �� ���� ��������C�� ��� �� � �� �����"��

$�� � �� ����� �� � � � 1� � �� � ���� �/� �� 5� � � � � �� �� � ��� ��� �� ��������� � �� �� �� �� �� ��� �� � �� � ���� ��� �� F"����� � �� �����%�� �� � � � �� � �� ��� �� G�

� <� ����� �� ����� ��������� �� ����������� J�� ����� )��!� ������!����J�� �& � % �$��� ����� J��)! ��� !�� :� �� ����)�� ���)�� �$�� J� ���& � � �$��� I�� !������O��!�� � ��� ��� ����� I�� !������O��!�� �� ���C,00��� �C00��� ��� ��� �&� ��� �����

$��� ��� �� ��� �� 1� �� �� "����� �� � � �

1� M �F/�G� F/�5 �G��

�� �� ���� � � 5�� ����� ������� ���� �� �� ����� �� ����� �� � � ��� $��� �� ���� ��

�� � � �� �� ����� ��� �� �� �� ���� �������� $�� ����� � � � ��� �� �� �� ���� �� �� ����� �� � � � �� ��� �� � �� � �� ��L � ������� �� ,��

D6

(12)

(123456)

)�� �� �����"�� ���� �� ��� ��� �� � �� �� � ����

Page 153: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ���

� �������� �� ����� G������ �� ����������� J������� � ����J�� ������ �������� � ��-� G� �� �� � � 00 ����� G � � �� ��� ������ 5�$����� �� ����� ��������� �� ����������� J��$����� )��!� ������!����J�� ����� �� :� 5�� �& � � �� � � , �$��� ���!�� <� ������ � �� ��� �&�� � �� � C 00 �� ��� : �� � � ��� ��������� � C 00 � � � � ��� 5 �� I�� !������O��!�� �� @ �� : A ��� 5������� �� �� �� 3��� ����� 5� �� ��� �����

���������

/� )�� �� ��� �� �� ��� ��� � � � 3� �� ��� �� � 4M 5 �� ���� ��� �� �� �� �F/�5G� F�52G� F52�G� � � � � F�� �� �� /� �G� �� 5�������� " �� � ��� �� ���������� �� ��� ����� �� � � ���

*�����5� �������� >����B� ���� ��� �� ��� � ���� � � �������� �� ��� �� �� ������ �� � %�� � � �� ���� � ��� ��� �� �� �� � � �� ( ����� �� �� � � ���� � ��� ��� �� ���� ��� � � � � ��� �� � %�� � � � 2� $�� ���� ����� >����B� ���� ��� �� � � �� ���� ����������� �� ������ �� ���� �� �� � �� � ��

2� M ���� ��� � � � � ���

�� 4� "���� �� � � ����

���� M 2� � 2� � � 2� � � 2� M 2�

$���� ������ �� �� � �� ��� �� �� ��� � �� �� �� �� ��� �� ���� ��� � � � � �� � ��� �������� "���� �� ��� �� ������ �� 2 ���� ����� �� >����B� ���� ��� ���� ��� � � �� �� � "��� ������� ������ �� �� � ���� �����

)�� �� �����"�� ���� � �� � ��� ��� �� � ��� ������� �� ����� � �� �� ��� "�� �� � � �� �� � � � �� � ��1,�� �=�� ����� ��7 ���� (��� � �� � ����� ������� � �� ��%�� "�� ������

������>�

� =������ �� ����� X �� ����������� J���!�� � ��� �& �� ��� ��:�� �������J�

Page 154: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

� ������ �������� ��� ��� @ �������� X � A �� ��� �����

A� � �� �� ���� �� >����B� ���� ����

� 5� ��� �� ����� O��O��!� �� ����������� J��! ����� �$� ��� ���� �& � &����� )��!�J�� ����� �� )� ���� ��� ����� �� "� ����?���� ���?����� ���� ���=��� )�����

� �& ���)� � �$��� )��� �� ��)�� �� ����� )��� �� O��)���� ��� �&��

� �& ��� ����� )���� B@ ���� ���� AB � �$��� ����� J�� )��������) ��� �����&���J� ��� �&��

� �& ����� )��� � � 2 �$��� / ������� )��!�� ���!�� @ O���� A� ��� �&��

� ���=�� �� ����� $ �� ��� �� ' ����� ��� ����� ��� � �� $� ��� ������

� ��� ���� �� ��:������ ��� �� 2�� ���=��� O���� ���

� / T����� �$� &���� ������ �!:)��!�� � �� )���� ��� ) �� ��� #$��� ��� O���-� )� O���� � ��� ���=��� ) ��� ) �� O��*0*� )� � �� ��� ���� !�����&�� � B5� ���B� J&����$�� &���� ������ ����� ���J� ��� ���

� &�� � &�� �� ����� )��� � ��� !�����&�� � B5� ���B� J ����) )�������� �! :���J� � ��� � �� )���� � ��� �& ��� O�� � :��� �� =������� ��� ���� � � �$��� ����?��� �� ����� ���=��� � ��� &�� " &�� �� ����?��� ��� ���=��� O��*0*� ��� ����� " �� � � �� ��� ���� ���?��� �� ' ����?����

Page 155: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��'

� ��� &�� � �� )���� 00 � � ��� ��� �� O�� !�� ��� ����� ���?��� �� � ��� �& ��� O�� � :��� ���� =������� ��� ���� � � �$��� ���=��� ��� ��� &�� " &�� �� ����?��� ��� ���=��� O��*0*� ��� ����� " �� ��� � �� ��� ��� ��� �&� ��� ���� ���?��� �� ���?��� ' ����?����� �& ���?��� � ��� �$��� :���.� ��� �&� ��� ��� ��� �&� ��� ���� =������� ��� ���� �� ��� �����

$�� ����� �� ��� ���� ��� �� ��� ��� $�� �=�� �� ����� � �� ��� � � ��#�� � � � ��� � �@�� ���� ���� "��� �� � ���� ��+�� ����� ���� �� �7 ���� �� �� �=�� �� ����� �� �� � ��������� ��� ��� �� A.A� F$�� ��� �� ��� �� ��� � ��� ����"�G

)��� �� 3- ����� ��� �� � ���� ��� ��%��� �� �� ���� ��� ������ �� �� ����� �� � � � 1�� ��� >����B� ���� ���� �������"��

� O �� <� ������ � ��

2 ?M�����FG

������

� � X�X� ��� � �$ � �� � ������ � ���� ����� � ��������L

��� �� ������ L

��� �����

� 5� ���� O ��

�I�� /� 5� 2J� I�� 5� /� 2J� I/� �� 5� 2J� I5� �� /� 2J�I�� 5� 2� /J� I5� �� 2� /J� I/� 5� 2� �J� I5� /� 2� �J�

I5� 2� /� �J� I2� 5� /� �J� I�� 2� /� 5J� I2� �� /� 5J�

I5� 2� �� /J� I2� 5� �� /J� I2� /� �� 5J� I/� 2� �� 5J�

I5� /� �� 2J� I/� 5� �� 2J� I2� /� 5� �J� I/� 2� 5� �J�

I2� �� 5� /J� I�� 2� 5� /J� I/� �� 2� 5J� I�� /� 2� 5J�

Page 156: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

�������� ��� ����������� �� � ���� � �� ��� ��� �������� � ����� � ������ ������ � � �� �� �����%�� � ��� ���� �� ��� �� � � ��� $� �� �� �� �� ���� � �� ���� �� ��� ���� �F/�G� F�5G� � � � � F�� /� �G� �� ��������� ������

� 5� ���� O� @ ���,���� ��,����� �����,� A ��

�I�� /� 5� 2J� I�� 5� /� 2J� I/� �� 5� 2J� I5� �� /� 2J�I�� 5� 2� /J� I5� �� 2� /J� I/� 5� 2� �J� I5� /� 2� �J�

I5� 2� /� �J� I2� 5� /� �J� I�� 2� /� 5J� I2� �� /� 5J�

I5� 2� �� /J� I2� 5� �� /J� I2� /� �� 5J� I/� 2� �� 5J�

I5� /� �� 2J� I/� 5� �� 2J� I2� /� 5� �J� I/� 2� 5� �J�

I2� �� 5� /J� I�� 2� 5� /J� I/� �� 2� 5J� I�� /� 2� 5J�E� ���� ��� � ���� �� � � � ��#�� � �� �� ��� � ������ ��

��� �����>����B� ���� ��� �� � ��� � �������� ���� ���� � ��� %��

� � �� �� �� �� �� �� � �� ��� �� � ������ ��� �����%� ��"������ �� ��� � � �� 6� ����� �=������� �� ���������� � ������� � � ���� � � "���������C�� ���������� �� ���� ��������� ��� � ������ �� � � � ������ �� �7 � ���

����������� ������� � � ��� �� � � � � �� �� �� � � � � �� �� �� � � �� F ��� �� ��� ���� ��� ��� � �� �� � � �� �� �� �����G �� ������ � �������� 6� �=������ �� 5������ �� �F/�5G� F/5�G� F/G��� � � �� � � �� �� � �� ����� �� � � � 1� �� ��� �� 5 F"���� ���: ����� �G� $�� � � � ��� ��� ������ �� �� ����� �� � �� � ����� "�� �� � �� ��� � � �� � � 5 �� � ��" � � � 2 �� ���������� ��� ��� �� �� 5 �� ������ �� ���� ����� �� ����� � �� �� �� ������ �� 2 � �� �� ������ �� 5� $� �� �� ����� �� �������� � �� G �� 2 �� 5 "� �� ��� �� �� ��� ������

$�� � �� � ��@� � ��� ���� �� �� ��� � ��� � ������� �� �������� �� � �� � ��� $��� ����� �� �� �=���� � ����" ������� �� ������� �� � �� � �� �� �� �� � ��� � ���� � "�� ��� ����� $�� ���� �� � �� ��� � � �� � � �� � ������ � � � �������� � ��� � �� �� � � � � �� � ������� �� ��" � �� ��%��� � �� �� �� �� � � � �� $� �� � � �� � � �� �� ����� �� � ��� ��"�� � �=�� ����� �� �� ������� �� � � � � "���� �� � �� � ��� ������� � ����� �=�� ��� � ��� ������� �� �� "�� �"���� �� � �� � � �� ��%��� �� "�� � ��%� � � �� � � � � �� ���� �� � �� � ������� � ��� ��� ��� ( �� � �� ��%�� � ��� "�� � �

Page 157: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��!

�� ����� �� � ��� �� ����� �� �=�� ���� �� ��� ���� � �����"�� � ��%� � � �� � � �� �� � � ��� �� 6� �=������ �� ��� ��� � � � �� ��%�� �� �� � ��� � �� ��� �� ����� � ���� � "����� � ����� �� �� � � � F� � �7 �������� �� ���� ����� �� ��� �� � � ���� �� "�� ��� �� ��� �� � �� �� �� � � � �G� E� ��������� � ��� ��� �� ��� � � ���� � �� ��� �� ����� ���� � ��� �� � �� $� �� � �� � �� �� �� ���� ���� �� ���� �� �� �����"���� ������

����� -� � � � �

���� ����� ���� �� F� � ���� �G���� (� �� ��� �� �

��� �� �� �� ������ ���� �� ���� ��� �� � ���� � ��������������� �� ��� �� ���� �� �� �����"��

� *�����<!:O��!�* �� B@� * ��!��*� ��������O��!�� )�������� ��� * ��!��*� ��������O��!�� ������������!�� �� AB�

$�� 3������� ��� �� � � ������� � �� ��� �� �� ����� � � ��� � ��� ��� "���� ��� �� ��� � � � ��� � ����� �� � �� � ��

� <!:O��!� �� ����� O��@O��!��<!:O��!�A� $�#��@����������!��A �� ����������� J�!:)��!� ������!����J�� ����� <�� �& ����� $�#� B������!��B � �$��� <�� L������ B������B� B����B � ����� $�#� � �� ����� < �� L������ B������B� B)���B � $�# �� ��� �&�� <�������� �� O�� ����� <� �� ��� �����

6� �=������ �� ��� �� �� ����� �� � � � 1� �� �� ��%�� �������"��

� <, �� <� ������ , ��� K �� <!:O��!�� <,� ����� > �� ����� )�� !�� <, ��� &�� ) �� )��� ��� �& ��� �-� !�� ���� ) �� ���� > �� ) �� > � �$��� ���!�� &����� ��� �&� ��� ���� ��� !���� ��!�� ��� ���� ��

Page 158: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� � ���� ++��� ,��� �������

� ?M�����FG

������ ������ � ���� L

��� �� ������ L

��� �����

� K������� ���,� ��

�����

� K������� ��,�� ��

�����

� K������� ���,� ��

����

(����� ��� �� �� " �� � ��� �� �� �� �� ���C� �� � ������ � � � ��

� H�������>�� �� ����� O� ) �� <!:O��!�� O� ����� � �� !�� *0* � O��*0*� *�* � O���- ��� � 0 ) � ) 0 �� ��� !�� ��� ���� �� ��� �����

'������ �����"���� >����B� ���� ��� �� �������� ���"� 6� ���������� �� � � ��� �� � � � ��� ��� ����� �� � �� ��� � � �������� )�� >����B� ���� ��� ��� �� � ��� ��� � $�� ��������� >����B� ���� ��� �� �� � "� �� �� ��� %�� � � �� $� � ������ ���� �� ��� � �� ���� � �� � �� ��� � �������� �� ��������� � � ��� � ���� �� "���� ����� �� ������� � ������ �� ������������ ���� ����

� O��!�=�� ���� �� ����� O �� ����������� J��! ����� �$� ��� ���� �& � &����� )��!�J�� �& ����� O� BO��!�B � �$��� �& ����� O����� ����� B���B � �$��� O����� ����� ���& ����� O����� ����� B������!��B � �$��� O��������!����� ����� O����� ���� �� 5� ���� O �

Page 159: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � ��#

� ��� �&� ����� B������ �B� ��)� �� ��� �&� ��� �����

(��� �� ������ �� �� ����� ����" �� � ��� ������� �� � � ����"����� � ��� ��� ������� $��� � �� % � ������ "���� ���=�� ��� ���� �� �� �� � � � �� �� ��� ���� �� � ��� �� � �� ���� �� � �� �� � �� ��� �� �� � � � ������ �� �� ������ � ������ "���� �� �� �=�� ��� ���� �� � � ���� �� �� � �� ��� � �� �F�� ���� ��������C��G � �� �� ���� �� �� �7 ���� � �� ����6������ >����B� ���� ��� �� ��� �� � ��� ��� �� � ��� ��� ������ � ������� �� � ������ �����C���� �� �� � �� >����B� ���� ����� �� �� �� � �" ��� � �� �� ��� ���� �=�� �� �� � ��� ��� ������ �� ����

- ������ �� �����=�� ���� �� ���� ������� �� �� � �� ������ ��" "�� �� ��������� ��� ����� � � �� ��" � �� ���� � ��������� ���% �� �� ����� �� �� � ����"� �� � ����� �� ���� ���������� � �� �� � �� ��� F� �� �� ���"� � �� ��� � ���� � ������ � �� �� ���� ��� ������G� &��� ��� ��� �� ���� ��� ��� ����%��� � ������ �� �� � �� ��� �� � ��� �� �� ���

���������� �������� �� ������� ��� �� ������ �� �� �� �� � � � � ��"� �� ����� � �� �� � �� � � �� �� ���� �� ��� ����� � �� � ���� ����� ������ �������

� ������� H������� 5� ���� O � ��

A�" ��� � � �� �� �� ������ �� � � �� � � ������ �� ��"� �� ��%�� �� "�� �� ��" ��� �� �� � � � �� $�� � ���� �3�������=�� ���� �� �����"� ���� � � �� � � �� � � �� �� ������ � %� �� ������ "�� � ���� � �� ������ �� �� � �� � �� �� ���� �� ��������� �������

� <!:O��!�=�� ���� �� ����� < �� ����������� J��! ����� �$� ��� ���� �& J� J� �!:)��!� �& � )��!�J�� ����� I�� I �� <�� #$��� ����� I� B<!:O��!�B � ��� I �� I��������� ��� ���� �& ����� I� BO��!�B � �$��� �& � :��� ������� < � �$��� ������� <������� O��!�=�� ����� I � �� ����� <<=LX� � :��� ��)���� < � ��

Page 160: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'$ � �� ���� � ���� ++��� ,��� �������

� 5� ���� I� <��)��� �� ��� �&� ����� B������ �B� ��)� �� ��� �&� ��� ������ O �� <� ������ � ��

2 ?M�����FG

������

� � X�X� ��� � �$ � �� � ������ � ���� ����� � ��������L

��� �� ������ L

��� �����

� <!:O��!�=�� ����� H�������>��� O� � � ,� � � � � ��

�I/� �� 5� 2J� I2� 5� �� /J� I/� 5� �� 2J� I2� �� 5� /J�

��� 3�������=�� ���� ���������� � �� � ���� ���� � �=�������=�� ���� � ����� � �� � �� ����� � � � ������ � ����� ��� �����

� O��!�=�� ���� �� ����� O �� ����������� J��! ����� �$� ��� ���� �& � J� J)��!� �� �!:)��!�J�� �& ����� O� B<!:O��!�B � �$��� <!:O��!�=�� ����� O �� ���& ����� O� BO��!�B � �$��� �& ����� O����� ����� B���B � �$��� O����� ����� ���& ����� O����� ����� B������!��B � �$��� O����� ������� ����� O����� ���� �� 5� ���� O �� ��� �&� ����� B������ �B� ��)� �� ��� �&� ��� �����

!������� ��� %���� �" � '��� �� �� �� � �� �� ��� �� � � � �B�������� � �� ��"��� �������� � ��� ��� �� � �� � F��� �� ��� �� � ��� �� ��� "�� � �� ���� ��"��� �G � ��� ������ � �� �������� �� ����� � �� ��� "��� � ���� � �� � �� �� � � � �� 6� �������� ����� �� � � � �� ��� �� � ��� � �� �7 �� � �Z� �� �� ����� �=�� �� �� �� ���%�� � ���� � ��� ��� ������

Page 161: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �'�

� ��� �� �� ���� � ���� �� � � � � �� �� � �� ���� ��� � �������=�� ���� �� �� " �� �� �����"��

� O��!�V���� �� ����� O �� ����������� J�� �!�� �$� ����� �& � &����� )��!�J�� �& ����� O� B<!:O��!�B � �$��� ����� O��!�=�� ����� O � �� ���& ����� O� BO��!�B � �$��� �& ����� O�������� B������B � �$��� O�������� ���& ����� O����� ����� B���B � �$��� O������� �� ����� O����� ���� �� ���& ����� O�������� B������!��B � �$��� O���������� ����� ����� O��!�=�� ����� O � �� ��� �&� ����� B������ �B� ��)� �� ��� �&� ��� �����

�� "�� �����=�� ����� ��� � �� ������ �� �������� ��� � � ������ �� ��������� �� � � � �� � ����� "�� ���� �� � � ������ ������� �� ���� ���� ��� �� � �� ����� � � �� �� � ����� ��� ������� ��� �� � ��� ��� ���� �� � ���� � ���� �����=�� ���� ����� � � � �� � �� ��� �� �� � � � ������ ��� � � ��� ��� �

� O �� <� ������ � ��

2 ?M�����FG

������

� � X�X� ��� � �$ � �� � ������ � ���� ����� � ��������L

��� �� ������ L

��� �����

� H �� H�������>��� O� � � ,� � � � ��

6 ?M�����FG

������ ������ � ���� L

��� �� ������ L

��� �����

� O��!�V����� O ��

Page 162: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' � �� ���� � ���� ++��� ,��� �������

�2

� O��!�V����� H ��

2

��� ��� "�� �� � � �� � �� ���� � � � � � � � �� � �� ��� ���� � �����=�� ���� � � ���� ���� $��� ����"� �� � �=����� ����� ��� ����� � �� �� �"���� �� ���� � �� ���- � �� �@������ � ����� ��� �=� ������ ������� ���� ��� ����� � �����������

������ '���� (� �� � ��� �� � � �� ���� ��� �� � ��� � � �� � �� �� �� �� �� ��� �� � � ���� ��� � ������ E� � � ���� ���� � ���� ��� ���� �� � � ��� � ���� �� �� �� �=������ ��%�� � � �� � � �� %�� � � �� �� �=�� �� �����

�#����� ��� ���������� ���� "�� �������� .��� �� ����� �� ����� "�� �7 �� � ��� ����� � ��@� ��� ��� �� ����� �7 ���� ������ ��� ��� �� A.A� � �� ������ � � ������� � ��������C�� �� �� ����� ���� � � ��� 6� �=������ ������ �� �� ����

� �� 8������ ���2���2��� ��

3 ?M

�/ �� /

� \ �� 8������ ���,���,���� ��

7 ?M

�� 55 2

� H �� 8������ ���2���2��� ��

6 ?M

�/ �� /

.�� � �� � ���� �� ���� � ���� �� �� ��� �������� ������������ ��#���� A�"��� � ���� �� �� ���� � � � ���� ��� � � ��F������ � �� ������ � �� �= ���� ����G� ��� � � ����� ������� ��#���� $� �� �� �����?

Page 163: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �'�

� � :��� � @ \� H A ��

�����

$� ���� "�� ��� � ��� � �� ���� ��� � � ��� �� � � �������� � ���� � �� ��� �� �� ����� ������ � ���� $�� � � ���

� �� ������ � � ��� ���� ���� �7 � �� �� �� � ��� � �� ������� � �� % � � � ��� "���� �����%�� � �7 ���� ��� $��� ������ ��� � �� �����"�� ���������� �� �� �� �= � � � ��� �� �

� ) � :�� �� ����� ����� )������$��)� <��@��������A� ������� � �� ����������� J� )������ � :���$�� ���������J�� ����� ��� �& ����� ����� B������!��B � �$��� &�� � &�� �� ����� < � ��� �& ����� )� <� � � � �$��� �& ���)� � , �$��� ��� �� �� ��� �&�� ���!�� ��!�� ��� �&� ��� ���� &����� ���& ���� � B*�*B �$��� / !�� �$� �������� � :���$�� ����� �� � :��� ��)�� 00 � � �� ����� B������ �B� ��)� �� ��� �&� ��� �����

$�� � ���� � ���� � =��� � �� ����������� ������� � ������ ��7 ���� � ������ �� �� � ����� �� �� "�� �� �����

� ) � :��� G����� �)�:����=-!��� � @ \� H A ��

����

�� /���"����� !��������� +=��� �� �� � ��� �=�� � ��� ���� �=�� �� ������ �� �� �= � � �� ������ ������� � �� ��� �� ���� � �� � �� ����������� �������� $�� /���"����� ��� �� ���� �� ��� �� � �� �� �� �= � � � �� �� % � � � �� ��� �� ������ � �� �� � � ��� ���� �� ������ ��� � �� �� ���� ���� � � �� �� ��� �� � �� �� � � ��

� 8�����O��!� �� ����� ��������� �� ����������� J ����� )��!� ������!����J�� ����� ��)���� O�� !�� G����� �)�:�� ��

Page 164: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'� � �� ���� � ���� ++��� ,��� �������

� ��)��� �� @ ��)�� 00 � � A�� O �� L������� B��B � 8������ �� �� � �� " � �� *�&*� � � "� � 2 � ��� B*0*B � � � �� : � �� 8�����8�����8!������� �� : � ��� B !�B � � �� �� &����� O��*0*� O����� ��)� � ��� B���B � � �� 8�����9������� � ��� B)���B � ��)����� B�-B � � � �� : � �� =-!��� �� : � ��� B � :��B � ����� )� <� ������� � �� ����� �� ��� �& ���)� � �$��� �& ����� )� B8������ �-!��� �B � �$��� ����:� 5���� ������ ) � %� 2 �� ����� &����� ��� �&� ����� ) � :��� O���-� ��)� �� ��� �&� ��� ������ B�����B� B��� ����B ���

� �& ���)� � �$��� O������� �� �� O����� ���� �� @ O���� A� ��� �&� ��� !���� ����� O� �� ��� �����

A� �� �� �� �= � � � ��� �� �� ��� � ��� �� � ����� �� �� �=� � � �� � �� /��

� �$��� �� I� � ,�

8 ?M/

5&

� � �� 8������ � � �� 2� �� � � 2 �� ��

� ?M

�� // �

� : �� 8������ � �� �������$����������$������� �������$����������$������ ��

Page 165: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �''

� ?M

���

/

/

�5

�/

�5

/

���

� \ �� 8�����O��!�� � �� : ��

7 ?M�����FG

������

� � X�X� ��� � �$ � ���� �� � ������ � ����� � ��������L

��� �� ������ L

��� �����

� O��!�=�� ����� \ ��

�� �� // �

��

���

/

/

�5

�/

�5

/

��� � � / �

� /

��

��� �

/

�5

/

�/

/

�5

��� �

���/

�5

/

�/

��/

�5

��� ����

/

��/

�5

/

�5

/

��� ����

�/�

/

�5

�/

�5

�/�

��� �

��� �

/

�5

�/�

�/�

/

�5

��� ����/

�5

�/�

�/�

�/

�5

��� ����

�/�

�/

�5

/

�5

�/�

��� � � �/ �

� �/��

�� �/

�/ �

����

*����� ������� $� � ��� �� � ���� �� �=����� � � �� �� �� �� ��� ������� � ��� �� �� �� �� �� � �� � �� F"�G � � ��� F+=����� �� ��� �� � ����� �� %�� ��� �� � � �� �� � ������� "� �� � ���������� �� �=������ ������ ����G >� �� � �� ��� � �� � ���� � � �� � �� �� %�� � � �� ���� �� ��� %���� ���� ��� ������ � � �� ������� � �7 � ���� �C��� �� � �� �� � �� ��� ������ � � ��� F� �� ������ ��� �� �� �� � �� �� � � ��� ��� ��� �� �� �� �����G

Page 166: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'� � �� ���� � ���� ++��� ,��� �������

$�� �� �� � �� � �� "� � � �� 3 �� 7 �� �� � � � 2 "���������� � � ��� ��� � F�� �G� "�� � 3 �� � 7� $�� � � � � �� � �2 �� ��%�� �� F��� ��GF��� ��G M F�� ��� �� ��G� $�� ��� �� �� � �����F�� �G �� �� ��� F���� ���G� ��� �� ��� ���� � � ��%�� �������"����9�� ��� �� ������ F�� �G �� �� �� �� � �� � �� "������� �����A� � �� �� ��� �� ��������������

� 5�����I���!�� �� ����� ��O��!�� \��O��!� �� ����������� J������ ����!�� ������!����J�� ����� O� �� :�� �& ����� � BO��!�B � ��� ����� \� BO��!�B � �$��� O �� O��!����� O���� �� � ����� \���� ��� O��*0* �� � !� � � �� � ��*0*� !��� ��� ��� \��*0*� !��� ��� � ��� O�� !� �� �� �� &����� O��*0*� O����� ��)� ��� O����� �� � �� � ������ �� � ��� \������ �� � � ��� O��)��� �� � ��-� ��-� � �� : ��� � � ��)��� �� : � \��)��� � ��� O���- �� � !� � � �� ���-� !� �� �� � �� ��� \���-� !� �� �� � ��� O������� �� �� �� O��!�V����� � 3 O��!�V����� \ ��� O�� � :�� �� ����� )� <� ������� � �� �& ���)� � �$��� �� � :��� )� � �� ��� \�� � :��� )� � �� ����� ) � :��� O���-� ��)� �� ��� �&� ��� ������ O����� ���� �� �� �� � ��-� ��-� � �� : ��� � � O��!�=�� ����� � �� : � O��!�=�� ����� \ � � ��� ����� O� �� ����� B������ �B� ��)� �� ��� �&� ��� �����

��� �� �� � � � ������ � � � ������ "� �� � �� �� ��" � � �� � � � �� �� �� ������=�� �� ���� ���� ���� � �� �� ������ �� ����� �� ��� ���� �=�� ��

� �� <� ������ , ��� O �� 5�����I���!��� � \ ��� O��!�V����� O ��

3�

� ����� O��!�=�� ����� O � ��

Page 167: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� )����� ��� �� )+���+��� ����� � �'!

����� �� 4�+�+������+ )����� ��

�� �� >���� �� �� ������ ��������� �� &������ �� �� ������ �������� � ������ �� �� ��� �� � �� �� ����� �� �� �������

3�

1������������ � ��� ����� ��� ��� ���� ��������� ��� ���� � ��� ���� � � � � ������ ����� �� � ������ � �� � � � � � ���� F�������� �� ����G � � � "���� ���� �� "�� �� � � � ��� �����$�� ��� � ��� . ? 3 �� 7 �� � � �� 3 �� 7 �� � ������ ����� ��.F��G M .F�G.F�G� �� ��� � �� � � 3� � ������ ����� �� ��� ���� �7 ��� �� �� �@�� � � ��� ��� �� �� �� ������ �� � ��%� ������� ������ � �� �� �� � ������� �� ������ �� ���� ���� � �� ����� �� � �� �� ������

)�� �� �� ���� � $���� ��2 �� ������ �������$��� ����� �� ���� � � ������ ��� �� �� ������ ����� ��#����

� *�����T� � ���$�� * �� B* ��!��*� �� ���� ���� ���� )�� �� �B�� T� � ���$�� �� ����� ��O��!�� \��O��!�� ���������!�� �� ����������� J$� � ���$�� ������!����J�� L������ B�� ���B � � B���� ���B � \� B)�� ��B � � �� ��� �����

$�� ��� �� � � � � ������ ����� . ? 3 �� 7 �� �� � ��� .F3G �� 7������� �� ��� ������ �� 7 ����� �� �� � .F�G� �� ���� ����� �� 3� � �� � � �� � � �� 7� $���� �� �� � ����� ������� ���� � � �������� � ���� �� ���� �� � �� ����� ������ �� ������ �������

� T� 9 �)� �� ����� $� ��T� � ���$�� �� ����������� J�� �!�� �$� � �)� �& � $� � ���$�� J�� <!:O��!�� $� ������ ����� ��� $� ��)�� ��� $� ���� �����)��� � �� ��� �����

�� � �=����� ���� ���� ���� � �� ����� �� � ������ ����� � ���� ����� �� � � � 1� �� � "������� �� �= � � � ��� ��� ���� �N����

� 8������ � � 2� �� � � 2 � � ���� // �

6� �� ��%� �� � � ���

Page 168: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'" � �� ���� � ���� ++��� ,��� �������

� �� <� ������ � ��� \ �� 8�����O��!�� � 8������ ��2�����2�� � ��

>�%� � ������ � �� �� ��� �� � �� � � �� � � � M �� ��� �� �������� �� �� ��� �� � �� � � ���� �B� ������ �����

� $� ���,��� � �� 8������ ��2�����2�� ��� $� ��,���� � �� 8������ ���2���2��� ��

$��� ��%�� � ����� � ���� � 4 �� �� �� �� �� ������� �������� � � ���� ��� �� �� ��� � � ����

� ����� $ ��

����FG��� �� �������� L B� �����F� ��GB ��� ����

)�� �� M �� 4 � ��� � �� ������ ����� ��#���

� $� �� T� � ���$�� � � \� $ ��

��� ?M�����FG

������ ���� �� ������ �� �����L

��� �� ������ L

��� �����

� ����� $� � BT� � ���$�� B ��

����

)�� �� ������ � ��������� �� ��� � ��� �=����� � ���� � ��� �� �� �� ����� �� ��� ������ ������

� O��!�V����� T� 9 �)�� $� � ��

$� �� �� ������ ����� �� � #����� F�� �=�����G� E� �� ����� � �� ������ �=��������

� O��!�=�� ����� \ ��

��� // �

��

�/ �� /

��

� O��!�=�� ����� T� 9 �)�� $� � ��

Page 169: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �'#

��/ �� /

��

�� // �

��

���������

/� � � ��� ����� �� � � � � 2 �� ������ ���� �� �� � �� � ������ � 2 �� "���� F�G M ������ �� ��� � � 2� � �� � ��� �� �� �� � ��� ������ �� � � ���

������ ��� ��� �� � �� ����� �� ��� ��� ������� ���� ���� � 7 ��� %���� � � � �� ��� W � �� ��� �� � �� ��� ��� ���� ��� $�� � �� Q�������;���� �� �� �� �� � ��� �� � � ���� �� � �� � ���� �� � � �� ���� �C�� �� �� ���� ����� ������� �� "���� ��� ���� �� ��� �� ������ 9���� %����� � � ����� � �� � �� � � ��������� �� ���� ����� ������������ "���� �� �� � ��� � �" ������ "�� �� ���� ���� ����� ��������������� ���� ���� � ������ F"���� ��� � �� ����� � � � ��"���� ���G "�� ������ �� ��� ������� �� �����%� � � �� ��� ����� ����"� �� ���� ���� ��� "��� ��� �%��� ��� ����� $�������� � � ��"� � � �� ����� �� ���"� � � ��� �� �� �� � ������ �������� �� ���� �� ����� ��� �� ������

��. () ����� ()�����/ � ����� (�%���

(�� �� ����� � � ��� � � �� ��� �� ���=� � ����� ��� ��� ������ � ������ � 7 � �� < � ��� ����� �� ��7 ���� �� ��� �� � ��! "� �� �� � � ��� � � ��� ��� �� � �#�� ��� �� ��������� ���� +=������ �� ��� �� ����� ��� �� ��� ��� �� ����� ��������� �� ������ A�"��� � ��� �� ����� �� �� ������ � ��� �� �"��� �� ��� �� � � �� � � � �� ����

$��� �=����� ��� � ��� ��" � ������ ��� �� ����� ����� � �� ����� ����� ������ �� �� ��� ��� ��� ������ ;� �� � ����� ��������� � ��� � � �� �� ����� ����� �� ��� � �� ��� ����� �� "��� �� ��7 � ���� �� �� ����������� ������� �� ��� � �@�� �� ���� ����� ������ � � ����� ����� ��� ����

��� ���� � ��������- ����������� � ��� �� �� � %�� �� � � �� � � � �� �=� � ��� ����� ��� ��� ��� �� ��� �� ��� ����� � ��� �� �� ��

Page 170: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� � ���� ++��� ,��� �������

� �����%� � ���� � *�$�, �� ��� � "�� ����� � ��� �� �� � ��� ������� � � ������ � �� �� �=� �� ��� �� � �� ��� � ���� � ������ $����� �� �� � �" ����� �� ��� �� �� �� ����%�� �� � "����� +������ �� �� �7 ����� "�� � �������� �3� �� ��� � ����%� �� �� ��� �� � ����� �� �� ��� �� ���� $�� ��� �� �> �� ������ "������ ��� �� F������ ���G ��� �� � �� � ��� �� ���

6� ��� ����� ��� ��� � � � ���C�� �� �������� � �� � � �� ��������� �� ��� ��� �� �� �� ��� ���� ����������� ��� ��� ��� ��� � ����� �� � ��� �� ��� �� � ��� � ��� �� � � �� �������� �F� �� ��� ���G "� � � �� ���� $�� � ���� �� � ��� �� �� � ����������� ��� ��� � � ���� �� � �� ���� "���� ���� �� ��� �� � ���$� �� ��� �� �� ������ �� � �� � � � ��� ��� �� �� � �� � ��� ��� ��� $�� � � �� � ���� ��� �� ��� ��� �� �� ��� �� � �� ��# ��� � �� ����� � �� ��� �� � ���

6� ��� �=������ ������ �� �����"�� ������ �� � � �� ��� ����+��� ��� �� �� � ��� � �� �� �=� "���� �� ��� �� ��� �� ��� ���> �� �� ��� �� ����

� ��� �� JX$� ��$� �������B� ��������� ��.� �$� �������B� J� J�� �$� ����B� !�� :� :��!��&!�� �$� ������ ��.� J� J�$� ������ �� �$� #���� !�� &�� ��)��$�� �� � J� J$�� ����!� #��0 \��!�� �� �$� &���� ����� �$��� J� J�� �� ��� ����� ����� �� �$�� #���� J� J&�� !)�� ��$� �����0J� / T����� ��� �� JO�� ���� ����$ ����0J� / P��� F�������$ O�!��� ���, �� J ����� #$� ������ ���� #��$ ��$� ����� �� ���J� J &!��� $! ��0 � :��� $� �� � ������:�� �!:$! �� J� J#$� $�� ������� �� #��� �$���� :��$�� ��� ��� �.� J� J ����� �� �$� $�!��0J� / L�:��� 0 T�������� ���� �� JX$��)� �$�!�� :� ��� �� �� ��� �� �����:��� J� J:!� �� �� ����0J�� ���+ �� J9 ���B� :������ �� ��$� �����0J�� ���� �� J9 �)������� �� ��� � ������� �$�� .��#���)�0J�� ���1 �� JX$� ��� :��!��&!� �$��) #� ��� ���������� �� J� J�$� �������!�0 9� �� �$� ��!��� �& ��� ��!� J� J��� ��� �������0J�� ���� �� JH� �� ����� �� �$� ���������� �& ���"!����� J� J��-!���� :� �)� ��)$����0J�� ���M �� JO�� ���� ��� ���� �:�!� �!� ��$� ������ J� J��&&��!�����0 T� ����)����� � ���������0J� / 0 =�������

$�� �� � � ������ �� ���� ��� ���� $� �������� ��� ����� �� �� � ��� � �� ������� � ��� � � ��� �� ���=� $�� ���= ���� ��� ���� ������� � ���� � 7 ����� ����� ��� ��� � �� �� � � �� � � ������ �� � �� � �� �� ��� �� � �� � � 7 � ��

Page 171: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � ���

�&���� ��� *�������� � �"��� ��� �� � � ��� ��� ���= �� � ������ ��� �� ���=� � ��� ��� � ��� ��� ���= ��� �� � ��� �� ��� �� ������ ��� �� � ��� ��� � �� �� � � �� ������ � ��� �� �� ��� ��� � "�������� ��� �� � � ��� �� &�� ��� �� � ��� �� � � ��� ������= ����� �� ��� ��� � ��� ���� � ������� 6� ������ �=� ���� ��� � � ��� �� ��� �� � �� �� �����"��

� 5��! ���X�� � �� ����� �����������) �� <����)X������(����� ���� �� ��� ������ 5��! ���X�� �� ��� ��

IQ$��R� Q����������B�R� Q��� �R� Q����R� Q��R�

Q���� B�R� Q� R� Q��R� Q���B�R� Q� �R� Q��R�

Q��� �� �R� Q��R� Q�����R� Q����R� Q��R� Q���� �R� Q� R�

Q��R� Q"� ��R� Q� �R� Q%R� Q����� R� Q�R� Q�R�

Q�� ���� �R� Q"��R� Q.�� �R� Q��R� Q��R� Q% �R�

Q��R� Q�� �R� Q��R� Q�R� Q�� ���R� Q�����R� Q�R�

Q���R� Q"� ��R� Q�� R� Q ���R� Q���������RJ

)��� ���� ��� � � ��� �� � � ��� ��� ���=�

� \!���9���� �� ����� ����!�������������)� �� ����� ������ �� ����!���� �� ������ ��� � ����� !�� <����)X���� ��� / H�����!�� ��� ��� � �� �$� ����!�� ������ � �� ��:��� ���-�� ��� � 5��! ���X�� �� ��� ��� ��� � ����!� � ��� ����!���� � �� *!����*� ��-� @��A� ������ �� ��� � ��� ��� � ����!� � ��� / 8�� ���$ ��� �� �$� ���! ���� ���������) ��� ����� �� ��:������ &�� ��� �� ����!� ��� &�� ��� �� ������ �� ��� � ��� �& ����)���� ������ ��� � � �$��� ������ ��� � �� ������ ��� � !���� @ ��� A� ����� ������ ��� � �� @ ��� A� ��� �&� ��� ��� ��� ��� ��� !���� / L��!�� �$� ��:��� ����� ������ �� ��� ������ 9���� �� \!���9����� � ��� YY �C00M� � ��� ����� @�������A� 9���� � ��

Page 172: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� � ���� ++��� ,��� �������

/�2

(�� ���� �� ������� ��� ��� ���=� (�� �� �� �� � �� Q�����������R �� Q��� �R�

� <����$ �� ����� -!���������������)� �� )��:�� 9������ ����� ���!���� ��� �� ���!��� �� @A�� &�� ��� �� -!��� ��� �& ����)���� 9����� ��� � � �$��� ���!��� �� ���!��� !���� 9����� ��� �� ��� �&� ��� ���� ���!���� ��� ������ <����$� � J ��$� ������J� J:��!��J � ��

�Q4�� ���� � �� � ��� � ���������� ��@ ��� ����� A� ��� ��� ���� �������R�

� ����� D ��

/

$�� � � � ���� �� � ������ "�� ��� ���=� �� � ����� �� �� �����= �� 7 �� �� �� F ������ � �� ��C� �� �� �� � �G� ��� "� �� ����� � �� �� � � ����� ���� � � ��� ���� ��� �� ��� ���� ��� ��� � "���� ��� ��� � $��� �� ���� � � ����� �� ������������� �� ��� �� ����� ��� �� � ���

� ����� <����$� � J�$�J � � ��

2

$��� � ����� �� �� ������ �� ������ ���� � � �� � �� �����=� $��� �� �� "��� � �� �� ������ � ���� � ���

� <XVI?(VL5< �� @ J�J� J�J� J��J� J�$�J� J��J� J��J�� J#$��$J� J�$��J� J��J� J���J� J#�J� J��J� J�&J�� J���J� J���J� J����J� J���B�J� J ���J� J��!�J�� J�$��)J A�

� ����� � ����� �� �������� � �� �� � �� $�� ��� ��� ����� � ��� �� �� � � ���� �� ���� ����� � �� ���= �� ��� ����� 6� �=������ ��� ���� �� �� � � Q���������R ��� �� � ��� ���

Page 173: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � ���

�� ���� �� � �� Q����������R� Q���R �� Q������������R���� �� �� �=�� � � Q���������R ���� � ��� � �� ��� ���$� ����� ��� � ������ ��� ���� � � �� �� ����� � �� � ��

$� ������� ���� ������ � �� ���� ������ � � ���� �� �� ��3���������� ��������

� 5��! ���X�� � �� ����� �����������) �� )��:�� <XVI?(VL5<�� ����� #������ !�� <����)X���� ��� #���� �� ��� G�#��H���� (����� ���� � ��� #���� �� �� ���� ����� #����� <XVI?(VL5< ��� ��� <�� � #���� �� ��� !��� ��� �����

.� ��� �� ��2����� � ���� ���� �������� � � ������� ������� � ����� �� � ����� ����� �� ���� � �� ������� � ��� �� � ��?���� � ��"� ����� ����� ��� ��� "� ��� �� ��� "� �� �� ��� �����

� <����$ �� ����� -!���������������)� �� )��:�� 9������ ����� ���!���� ��� � ��� ��� !�� <����)X���� ��� ��� � �� ��� G�#��H���� -!��� ��� ��� � �� �� ���� ����� ��� �� <XVI?(VL5< ��� ��� � �� ��� <�� � ��� � �� ��� !���� ���!��� �� @A�� &�� ��� �� ��� � ��� �& ����)���� 9����� ��� � � �$��� ���!��� �� ���!��� !���� 9����� ��� �� ��� �&� ��� ���� ���!���� ��� �����

.��� �� M����0���" ��� ���� ������ �� �� ��� �� ���=�

� 9���� �� \!���9����� � ��� YY �C00M� � ��� ����� @�������A� 9���� � ��

05

$��� ��� � �������� �� ��� �� ��C� �� �� ���=�

� <����$� � J�$�J � ��

��

Page 174: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

.��� �� �� ��� "� � Q��R ��� ��� ������ � �� �� ���=� � � � � ������� $��� �� ���� � �� �� ���� ������� ���� ��7 � ��� �� ���� ��� "� �� "��� �@���� �� �� ���

� <����$� � J ��$� ������J� J:��!��J � ��

�Q$�� ����������B� ��� �� ���� �� ���� B �� � �� ���B� � � �� ��� �� �L �� ������ ���� ��� ���� � � �� "� �� � � % ����� � � �� ����� � "��� .�� � �� �� % � ��? �� � �� � ��� ��� ����� � ��� "� �� �� ��� �����������R� Q���� "�� ��� ���� "�� ����� ����� �� � � ��� � ��� � ��� �� �� � ��� ��� �� � �� �� "�� ��� ��� �� � "�� ������ ������ �� � ���� ������ � �� �� ���R�

Q� ��B ������� � ����������R� Q$�� ��� ��� � �� � ��� "� �� �=�� ���� �� �� ���� �� �� �� �� �� �� �� �� ��� � � �� �������R� Q4��

� ���� � �� � ��� � ���������� ��� � ����� A� ��� ��� ���� �������R�

� ����� D ��

$�� �" � ����� � � ��� �� � ��� ��� ����� � �� 7 � ��

��� ����� ����� 0 ��� �� �������� � ����� �� ��� �� �� ��� � ���� ����� ����� �� ��� ����� �� ������ �� �� �� �� ��� �������� �� ����� ��� ��� �� �� � �� � �� �� ��� ���� ��� �� �� � ���� � � + ����������� +�� "�� � � �� �� ��� �� ����� � �� � �� �� � �� +������ ���� � ��� ���� ����� �� ���� � � � � �� �� � �� 6� ���� ��� � � �� �� �� �� �� � � � ��� $�� ��� ���� ��� �� �� ���� $����� � ��� + ������ ������ � ������ ������ �� � �� ���� ��� �� �� � � � ���� "���� �� ��� ���� �� �7 �� � / �� �� ��� � ��� � � �� ��� ��� �� �� �7 �� � � ��� "���� 6� ���� 7 � ����� � � � � ���� � $�� �� � �� � �� �� 7 � � � � ���� "��� ��� �� � � ���� �� �� ��� �� 7 � � � �� �� ����� � ��

Page 175: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � ��'

��� ��� � ��� �� ������ �� � 7 � � � �� ���� ���������� # ���� �� � ����� �� �� ������ ��"� 7 � � � ��� $� ���� ��� ���� �� �� �� � �� �� �� �� 7 � � � � ���� "�� ����� �� � � ���� ��

6� �=������ ������ � ������ �� � � ���� ���� ��� �� ��� �������� ���?� �� ���&�

� < ���9���� �� \!���9����� � ���� ���+� ���1 � ��

$�� � �� �� ��� �� �� � � � �� ��?

� < ���H���!�X�� � �� ����� ����� ��� ��� @�������A�� < ���9���� � � � ��

����� �����(���� ?M IQ� ����R� Q� R� Q��� �R�

Q������R� Q�=�� �R� Q���R� Q������R� Q���� �R�

Q�����R� Q�� �RJ

����� $� �� � �� ��� ��� � � ������� �� ��� ���� �� ���"� �� � � ������ � �� �� ���=� $�� ��� �� � � ���� �� ������ �� ��� �� �����"�� � ���� ��

� 5��! ���X�� R����� �� ����� ��� �� )��:�� < ���H���!�X�� ��� ����� ��� ��� ��� � �� 5��! ���X�� �� ��� ��� R��������#�� 00 ����� < ���H���!�X�� � ��� � �� *�&*� � :��� < ���H���!�X�� �� � �� ��� � �� � 2 � �� ��� ������ ���+R����� �� 5��! ���X�� R������ ���+ ��

���45����� ?M I�� �� �� /� �� �� /� �� �� �J

&��� � �� 7 � � � � ���� �� �� ��� �� � � Q������������� �R�

� -!���R����� �� 5��! ���X�� R������ J ��$� ������ :��!��J ��

�����5����� ?M I�� �� /� �� �� �� /� �� �� �J

$�� �� � �� � ��?

� G����� �)�:����5��I���!��� -!���R������ ���+R����� ��

/

Page 176: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� � ���� ++��� ,��� �������

"���� ������� �� �� �� �� 7 � � � �� F�� ������� � Q�����������RG ����� � � �� ��� ���

$� �� �� ��� ��� � �� �� � � �� ��� ������� � �� 7 � ������� ��� � ����� � ���� ��� �� � �� �� � ��

� !�� G����� �)�:�� ��� 5��I���!��� -!���R������ 5��! ���X�� R������ ��� � ��� 5��I���!��� -!���R������ 5��! ���X�� R������ ���+ � ��� 5��I���!��� -!���R������ 5��! ���X�� R������ ���1 � ��� ��� !���

/

/

� �� �� � ���� � �� ��� �� �� � �� � � �� � ����������������� �� � "���� �� �"� � � �� � � ���� � �� �� ��� ��� � ���� � �� 6� � ��� ��� � %=�� � �� �� �� �� ��� ��� � �� �� � ��$�� �� � �� �� �� �� �� ���� �� �� �� ��� �� � �� � �� ��� ����� �� �� �= �� ����� �� �� � � "�� �� � � ���� �� � 7 � ��

� X�� 5��! ���8����� �� 8������� ��� ������� ��� 5��! ���X�� R������� � ���� ���+� ���1 � � � ��

(���3����������� � ?M�� / � � � � / � � � �� � � / � � / � � �� / / � / � � / / /

��

� !�� G����� �)�:�� ��� <����� �� X�� 5��! ���8����� 0 X��������� -!���R����� �� ��� !���

������ ?M

�� �//

��

$�� � �� � ����� �� �� � ���� �� �� ��� �� � ������ $�� ��� �� � �� "� ���� �� � �� �� �� ����� � �� ���� ��"�� �� ���� ��

Page 177: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � ��!

�� "���� �� ����� �� ���� �� �� �� � ��?

��� ���F�� � �� �� � ��G�

&����� �� � �#���� �� �� ��� �� � � ���� � �� �� ���� ������%�� �� �� ������ ���� � �� �� 7 � � ���� � �� �� � �� ����� �� ��� ������� ��� ���� � ��� � ��� ���=� ��� ���� �� �����"�� �� � � ����� �� ��� ���� ���� ���� � �� ����� ��� ���� � �� � � �� "���� �� ���� ��"�� ��� � �#����� �� �� 7 � ����� �� ������

��� 4�������� ��� �� �� ����� ��� ������ �� � ���� � � �� ��� ���������� �� � �� �� � ����� � 7 � ��� ������ �� � � �� ���� �� "�� ��"� ������� $� ��� ��� ������ �� ��� �� ��� �� ��� �� � ����� �� � � � � � ��� ��� � ���� �� � �7 ����$��� �� � ������ ����� � ���� ������ /���"� $�� � � ���� �� ���� �� �� �� ���� �� +� "���� �� � � �� �7 �� � �� ��� ������ �� �� �� � � � � ��� � � �� ��� ���

� 5��! ���X�� R����� �� ����� ��� �� )��:�� < ���H���!�X�� ��� ����� ��� ��� ��� � �� 5��! ���X�� �� ��� ��� R��������#�� 00 ����� < ���H���!�X�� � ��� � �� �! :���!�� ��� �� < ���H���!�X�� �� � � � �� ��� �����

$��� �� ���� � ����%���� ��� ���� �� �� "�� ��� ���� � �� �� �� � ��

$� ��� ��� ��� ������ ����� �� ��� �� ������ �� �� � -� F����� ��� �� � �� "�� � ����������G �� �� ��� ��� 6� �=������� ���� ��� ��� �� � �� � ����� �� � ��� ���� � ��� �� ������� �� �� � � Q���R ����� � �� � ��� � �� ���� �� � �� ��� � �����

� 5��! ���X�� R����� �� ����� ��� �� )��:�� < ���H���!�X�� ��� ����� ��� ��� ��� � �� 5��! ���X�� �� ��� ��� R��������#�� 00 ����� < ���H���!�X�� � ��� � �� ����&� �! :���!�� ��� �� < ���H���!�X�� �� � � �� � ����� ��� � � � �� ��� �����

��� ��� ������ ����� � �� � ����� �� �� �= �� �� �� �=�� ��� ��� "���� �� ���� �� ��� �� �� ��� ���� ����� � �� 7 � �� � ���� �

Page 178: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� � ���� ++��� ,��� �������

� X�� 5��! ���8����� �� 8������ ��� �������� ��� 5��! ���X�� R������ � ���� ���+� ���1 � � � ��� -!���R����� �� 5��! ���X�� R������ J ��$� ������ :��!��J ��� !�� G����� �)�:�� ��� <����� �� X�� 5��! ���8����� 0 X��������� -!���R����� �� ��� !���

������ ?M

�� ��

�����������������������0555555552111111:0

��

���� ��� � ���� �� ��� �� ����� ��� �� � �� �� � � F���?G�� �� ��� ����� � �� 7 � �� �����"�� �� �� �� � ��� �� F���&G�$�� % � ��� �� F����G �� # ���� � ���� � ������� � �� 7 � ��

1��� �� � ������ !��� �������$�� �= ��� �� � ����� � ��� �� ���� ������� �� ��� ��� ��� ����� �� ���� ���� � ��� ���� $�� ��� �� ���� � � ���� �� �� ��� ���� ��������� �� ����� � �� ��� �� ��� �� �� � � �����

$�� ������� ������ "� ���� �� ��� ��#���? ��� ��� �� �� ��� �� +��� �� �� ����� �� � ��#�� �� � ��� � �� �� ��� ���

� ��� �� �� ��� ���� �� � ��� � ��#�� "�� � �� ����� $����� �� ��?

� 5��! ��� �� ����� ��� &���$� &����� �� L������� B����B � ���� B��&���$B � &���$�� B��&�����B � &����� �� ��� �����

$�� �� ��� �� �� ��� �� �>� $�� ��� �� �> � � �7 ��� �� ����� ��� �� "��� �� �� � �� 6� ������� ��� �� �>� � � ������"���� ��� ��� �� ��� �� 7 �� �� ��� ����� �� �� � ��� ��� ���� ������ � �� ������ �� ���������� � �� ��� ��� �� �� ��� ���� �������� �� ��� �� ���� � � �� �� ��� $�� ���4 ��� �� �� ���� � �� � � �� ���� �� � ��� ��� ���� �� ��� �� �>�$�� ����� ��� ����� � � ���� � �� ��� ��� � ��� �� � �� ������ �� � �� ��� ��� "�� � ����������� (��� �� ������� � ���� ���� ��� ��� � � ���� � ������ � �� ��������

� �� � � �� � �������� �� ��� ���� � �� �� ����� �� � ��#���� � ��� � ������ �� ��������� ���=��� �� ��� ���� �� ����������

� <����$=�)��� �� ��!����� ����������� J� �� ��� �����$ ��)���J�

Page 179: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � ��#

� ������ ���.�)��� ������� F������� / �!:���.�)� �& &������� 5��! ���� / ���! ��� ������!����� 5��! ���95� / �������� ������!��� F�����5��! ���� / �������� ������!��� F���$5��! ���� / �������� ������!��� H���!�� / ����!� ������!����� ;! :��V&5��! ����� / ���!��� �! :�� �& ���! ���� �� ����!�� \!���9����� / ����� � ����!�� O��5��! ���9�\�9����� / �������� � ���! ��� 95� <����$� / ���&�� � �����$� ������ ���! ���X�� R������ / ������!�� ���! ��� ��� ������� -!���X�� R������ / ������!�� -!��� ��� �������

� / =�������

� / 5��! ��� ������!����� 5��! ��� �� ����� ��� &���$� &����� �� L������� B����B � ���� B��&���$B � &���$�� B��&�����B � &����� �� ��� ������

� / ������� ��!����� &�� ���! ����0� 5��! ���95 �� ��� �� ��������� F���$5��! ��� �� ��� �� �����&���$� ������� ��� F�����5��! ��� �� ��� �� �����&������ F���$5��! ���� ��� � ���

� / H���!� ������!����0 H����� #��$ ���$�� � ��-!���� �&� / ���! ���� �� � ���� �& ���! ��� 95�� � &���$��� � ���! ���� / &����� ��!����� ��� �� �������� -!��� &����� ��!����0�

� H���!� �� ����� ����V&9��������� &���$� &������ ?-&����� �� ����� ����� -&�������

� / I������ ��)! ����0� �& ���)� � 2 �$��� ����� J��������) ����!� �����������J� ���& ���)� � , �$��� / ���# �$� -!��� &����� �� :� ��&&������ / &�� �$� ���! ��� &������ -&����� �� ����� ?-&������ �� ����� / 9& -!��� &����� �� ��� �����&����� / !�� �$� ���! ��� &�����0� -&����� �� ����� &������ �� ��� �&��

� / H�����!�� ���� �& ���! ����0� ���� �� ��� 5��! ���� ����V&9��� &���$� &����� ���

Page 180: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!$ � �� ���� � ���� ++��� ,��� �������

� / \!��� �$� ����!�0� ��!����� ������ �����$� :!���9������ �! :��V&5��! ������ )��5��! ���9�\�9������ ����� ���� ����!�X�� ��� ���! ������ ��� ?���! ���? �������

� ��� �� ����V&9���� ���! ���� �� ������

� �! :��V&5��! ���� �� �� �� ����� ���! ���� ��� )��5��! ���9�\�9���� �� ����� ����������� �� �& ��� %� �! :��V&5��! ������ �$��� ���� ��� �� ����� ����� J�$��� ��� &�#�� �$�� D ���! ���� �� �$� ����!�J�� ���� ��� �&� ��� ������

� :!���9���� �� ������� ����� ������ ��� / H�����!�� ����!� ��� �0� ������ � �� ��� F�����5��! ���� ���! ���� ��� ����!�X�� � �� ����� ������ *!����*� ��� ��� @��A� ������ � � � � � ��� / \!��� �$� ��� ����! ��� �����0� ��� ?���! ���? ����� �� 8������ ��� �� �� ���� ��� ���! ���X�� R������ ����� ����!�X�� � � ��� B��������B � B&����B� � �� B�����)�B � B������B ��� ����� �$�� ��!��� �� ��� ������

� �����$ �� ����� -!���� �! :��V&L��!����������� �� ����� -�� -�� �������� �& ��� ����� ��� ?���! ���? ������ B8�����B � �$��� ����� J����!� ��� ��� �������J� ��� �&�� -� �� -&������ -!��� ��� -� �� -!���X�� R������ -�� ����!�X�� � ��� !�� G����� �)�:�� ��� ������ �� X���������� 8�����R�����8!�������� ��� ?���! ���? ������ -� � �� ��� !��� ��� ������ ��� ��!��� ��� ������

� ;! :��V&5��! ���� �� ����!� �� ����!����! :��V&5��! �������� O��5��! ���9�\�9���� �� � ����!�� ��� �� �� ����!���)��5��! ���9�\�9����� ��� ��

Page 181: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �!�

� \!���9���� �� ����!� �� ����!���:!���9�������� <����$ �� � ����!�� -!��� � �� ����!��������$� -!��� ���

� / G������ ���! ���X�� R����� �� ����� ���� ����!�X�� ������� �� ����� ��� ��� ��� � �� F�����5��! ���� ��� ��� R��������#�� 00 ����� ����!�X�� � ��� � �� ����&� �! :���!�� ��� �� ����!�X�� �� � � �� � ����� ��� � � ��� B��������B � B&����B� � ��� B�����)�B � B������B �� ��� ������

� -!���X�� R����� �� ����� -!���X�� �������� ����!�X�� ������� �� R���������! ��� 00 ����� ����!�X�� � ��� � �� ����&� �! :���!�� -!���X�� �� ����!�X�� �� � � �� � ����� -!���X�� � � ��� B��������B � B&����B� � ��� B�����)�B � B������B �� ��� ������

� / F������ �!:���.�)�� F������ �� ��!����� ����������� J&����� �!:���.�)�J�� ������ ���.�)��� ������ X����� ����� ����(������

� ����(���� �� @ J�J� J�J� J��J� J�$�J� J��J� J��J�� J#$��$J� J�$��J� J��J� J���J� J#�J� J��J� J�&J�� J���J� J���J� J����J� J���B�J� J ���J� J��!�J�� J�$��)J A��

� X��� �� ����� �����������) �� ����� #������ !�� <����)X���� ��� #���� �� ��� G�#��H���� (����� ���� � ��� #���� �� �� ���� ����� #����� ����(���� ��� ��� <�� � #���� �� ��� !��� ��� ������

� ��� ��!����

� ��� ��!����

� #��$� <����$=�)��� ��� ����!� �� H���!�� � ��� YY �C00M� �� � �� �� F��������X��� ��� ;! :��V&5��! ����� ����!� ��

1

Page 182: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! � �� ���� � ���� ++��� ,��� �������

� O��5��! ���9�\�9����� ����!�� ��

Q$�� ����������B� ��� �� ���� �� ���� B� �� �� ���B� � � �� ��� �� �L �� ������ ���� � �� ���� � � �� "� �� � � % ����� � � �� � ���� � "��� .�� � �� �� % � ��? �� � �� � � �� ��� ����� � ��� "� �� �� ��� �����������R

� \!���9����� ����!� ��� <����$� ����!�� J ��$� ������ :��!��J ��

I���20503�1:332111111�� ��� �����055555552111111��

��� ��������������������� ���

���0555555552111111:0� ��� ��������������������0

J

����� �� ���� ���'���$�� ������ ���� ����� ����� ���� ���� � ���� ��� ��� ��� �������( ����� � �� ��� ���� � �� � � �� ��� ��� ��� ��� �� �� � �Q��R� $�� ������ ���� ����� ����� ��� �� ���� ������ ��� �� ��� ���� �� ���� �� � � Q��R� A�"��� � �� ��� �� ���� ���� ������ ��� ��� �� ���� �� "� � Q�����R� � � �� "� � Q��RF� �� � � �� "���� �� ��� �� Q��RG� $��� ��� � �� ������ ������ !�� � ����� �� ����� ��� �� � �� ��� �� ��� �� ���� �������� "�� � �� � ��� ��� � ����� �� � ���� � � �� ����� �=�� � ��� � ��� �� � � ���� �� ���� ��� �� � �� �� � �� ��� ��� ��� ��� �� ���� � Q���R � Q������R "� �� ���� �� ��� �� � � Q��R��� ��� � ��� ��� �� ��� �� � ��� $��� ��� �� ��� ��"��� � �� � �=��������

� � ����� ���=�� � ���� � ��" �� ������ ������ � ������ �F*(�G ����� � ������� ������ ��"�� � �� �� ��� ��� �� � ���� � �� �� � � �� ����C�� �� �� � � �� � "����� $�� � ����� �� ����� � ���� �������� �� �� ��������� � �������� ����7 �� ������������ � ���� ����� �� ��� ��� � � ��� � � ��� �� ���= �� ��� � �� *(� �� ��� �� � �� ������ ������ � ���� � F*(�G�

� �� � �� ���� ���� �� *(� �� ����� �� ����� �� ��� �� ����� ��� �� ��� ����� ������ ������ � � ��� � �� 3���4=������������ � � ���� �����

Page 183: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �!�

*(� ���� �� � ��"� �� ��� �=����� � �� � ����� �� ��� �=� $�� ��� �=����� �� ���� �� �� ��� �� ��� �� ��� � ������������ �� �� � ����� �� �� �=� $�� ��� �� ��� � ������������� � �� �= 3 �� � ���� �C���?

3 M 0 1 � �

"�� � 0 �� � � � ��� � � ������ �� ����� �� 1 �� � ��������� �= "���� ������� � ��� � � � ���� � �������� � �� � $�� �������� � ��� �� 1 � � ������ �� � ����� $����� �� 3� �� ��� �� �� 0� � ������ �� ���� � ����� $������ �� 3� �� �� ��� �� �� � � � �������� � �� � ����� $������ �� 3� �� 3 �� � � ����� �� �� �=� �� ����� �� �� 0 �� �� �� � ��� �� � � ������ ����� �� �� ���������� � �� � ��� � �� ������ ��"�� � �� � �� �� � � �� ������� 3� "���� �� ��� �� �� � �� �� �� � ��� �� � � ������ ������� �� ������ ���� � �� �� �� ������ ��"�� ��� ���� 6� �� ���� �� �� �� �� �� 1 ��� �� � �� � �� �� � ��" �� ���� $� ����� �� � ��� �=����� �� 3 �� �� ������ � �� ���� �7 � �� ����������� � �� � ������ �� �� �� �� 1 F���� � �� � �� �� � ��"� � ��G� �� �� � �� �� �=?

3� M 0� 1� � ��

"�� � 0� ������ �� �� % � � ��� �� �� 0 � �� ������ �� �� % � ���� �� �� � � �� 1� �� �� % � � � � � ��� �= �� 1�

��� �� �� �= 3 �� � � ����� �� �� �=� �� ��� �=����� 3�

�� ��� �� � � ���� �� � � ���= �� ��� ����� � �� �� � � �� �� ���� �= 3� �� ��� ���� � ��� ��� �� ������ ��"�� � �� � � ��� "�� �� ��� ���� ��� � � � ���� � ��� �=���� �� �� ������ ��� �� �=�� ���=��� 6� �=������ � � �� � � � ���� ���� ��� ������ ���� �� � � Q��R� ��� � �� � � Q�����R� �� ���� ��� � ������� ��� � ��� *(� ������ ��� ��� ������ ��� �� �� ����� �� ����� ����� � �� ��"� ��������� � �#���� �� �� � ����� ������ ��� � ���� �� �� ��� ��� � �� �� � �� � � �������� �� � ����� �� �� ��� �=����� �� � ���� ������ ��� ������� �� ����� � �� 7 ���� �� ��� �� �� ��� .��� �� *(� �� � ������������7 �� � ��� ��� � � �� ��� ��� � �� �� ��� �� �� �� �� �� ��

��� ������ !��� �������$��� ����� ����%�� �� 3���4=����� ������� � ��� �� �� *(� "���� ������ �� �� ���� �� "�� ������� �� �� ������ ���=��������� $�� ����� ������� ����� �� � %�� � � ����" �� � � ��� �� ��� �� �� �� ��

Page 184: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!� � �� ���� � ���� ++��� ,��� �������

� <����$=�)��� �� ��!����� ����������� J� )������ �����$ ��)��� ���.�)�J�� ������ ���.�)��� ������� F������� / �!:���.�)� �& &������� 5��! ���� / ���! ��� ������!����� 5��! ���95�� F�����5��! ����� F���$5��! ����� H���!�� / ����!� ������!����� ;! :��V&5��! ������ \!���9������ O��5��! ���9�\�9������ <����$�� ������ X����� / ������� �!: ��!��� ���! ���X�� R������� -!���X�� R�������

� / =�������

� / 5��! ��� ������!����� 5��! ��� �� ����� ��� &���$� &����� �� ����������� J���! ��� ������!����J�� L������� B����B � ���� B��&���$B � &���$�� B��&�����B � &����� �� ��� ������

� / 5��! ��� ���������0� 5��! ���95 �� ��� �� ��������� F���$5��! ��� �� ��� �� �����&���$� ������� ��� F�����5��! ��� �� ��� �� �����&������ F���$5��! ���� ��� � ���

� / H���!� ������!����0 H����� #��$ ���$�� � ��-!���� �& ���! ������ / �� � ���� �& ���! ��� 95�� � &���$�� ��� � ���! ��� &������ / ��!����� ��� � -!��� &����� ��!����0�

� H���!� �� ����� ����V&9��������� &���$� &������ ?-&����� �� ����������� J����!� ������!����J�� ����� ����� -&�������

� / I������ ��)! ����0� �& ���)� � 2 �$��� ����� J��������) ����!� �����������J� ���& ���)� � , �$��� / ���# �$� -!��� &����� �� :� ��&&������ / �$�� �$� ���! ��� &������ -&����� �� ����� ?-&������ �� ����� / 9& ��� -!��� &����� �� �����&����� / !�� �$� ���! ��� &������ -&����� �� ����� &������ �

Page 185: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �!'

� ��� �&��

� / H�����!�� ���� �& ���! ����0� ���� �� ��� 5��! ���� ����V&9��� &���$� &����� ���

� / \!��� �$� ����!�0� ��!����� ������ �����$� :!���9������ �! :��V&5��! ������ )��5��! ���9�\�9������ ����� ���� ����!�X�� ��� ���! ������ ��� ?���! ���? �������

� / 9�������>� ������� ����0� ��� �� ����V&9���� ���! ���� �� ������

� / ������� ��$���0� �! :��V&5��! ���� �� �� �� ����� ���� ��� )��5��! ���9�\�9���� �� ����� ����������� �� �& ��� %� �! :��V&5��! ������ �$��� ���� ��� �� ����� ����� J�$��� ��� &�#�� �$�� D ���! ���� �� �$� ����!�J�� ���� ��� �&� ��� ������

� / H�����!�� �� ����� :���� �� � ?.��� �������� ������� ������ / �� �$� ��� ����! ��� �����0� :!���9���� �� ����� ?.�������� �� ����� ������ �� .� !� �� ���

� / H�����!�� ����!� ��� �0� ������ � �� ��� F�����5��! ���� ���! ���� ��� ����!�X�� � �� ����� ����� *!����*� ��� ��� @��A�� ������ � � � � � ���

� / \!��� �$� ��� ����! ��� �����0� ��� ?���! ���? ����� �� 8������ ��� �� �� ���� ��� ���! ���X�� R������ ����� ����!�X�� � � ��� B��������B � B&����B� � �� B�����)�B � B������B ���

� !�� G����� �)�:�� ��� !� �� � �� <��)!���R��!��� ��� ?���! ���? ������� B�!��!�B � � B��7B� B��<B� B��R�B � ��� � �� X��������� � ��� �& ���)� � 2 �$��� . �� ?.� ����� / 7�� � ��&�!�� �& �� �� ������ ��������0� . �� &����� L��.� 5��)����8������ � � � 3 201 �� ��� �&�

Page 186: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!� � �� ���� � ���� ++��� ,��� �������

� ! �� !� 00 �� 00 . ��� � �� �� 00 .� 00 � ��� � �� 5��)����8������ �� 00 . � ��� / L������ �$� ��� ����! ��� ����� #��$ ��� ���.� / . ������� ������ ��� ?���! ���? ����� �� 8�����8�����8!������� !�� 8�����8�����8!������� �� � � �� ��� !���� ����� �$�� ��!��� �� ��� ������

� �����$ �� ����� -!���� �! :��V&L��!����������� �� ����� -�� -�� �������� �& ��� ����� ��� ?���! ���? ������ B8�����B � �$��� ����� J����!� ��� ��� �������J� ��� �&�� -� �� -&������ -!��� ��� -� �� -!���X�� R������ -�� ����!�X�� � ��� !�� G����� �)�:�� ��� ������ �� X��������� 8�����R�����8!�������� ��� ?���! ���? ������ -� � ��� X��������� <���� ������ �� ��� !��� ��� ������ ��� ��!��� ��� ������

� ;! :��V&5��! ���� �� ����!� �� ����!����! :��V&5��! �������� O��5��! ���9�\�9���� �� � ����!�� ��� � ��� ����!���)��5��! ���9�\�9����� ��� ��� \!���9���� �� � ����!�� . � �� *�&*� ���)� � �� ����!���:!���9������� ����!���:!���9����� . � ��� <����$ �� � ����!�� -!��� � �� ����!��������$� -!��� ���

� / G������ ���! ���X�� R����� �� ����� ���� ����!�X�� ������� �� ����� ��� �� ��� �� ��� � �� F�����5��! ���� ��� ��� R��������#�� 00 ����� ����!�X�� � ��� � �� ����&� �! :���!�� ��� �� ����!�X�� �� � � � �� ����� ����!�X�� � � ��� B��������B � B&����B� � ��� B�����)�B � B������B �� ��� ������

� -!���X�� R����� �� ����� -!���X�� �������� ����!�X�� ������� �� R���������! ��� 00 ����� ����!�X�� � ��� � �� ����&� �! :���!�� -!���X�� �� ����!�X�� �� � � � �� ����� ����!�X�� � � ��� B��������B � B&����B� � ��� B�����)�B � B������B �� ��� ������

� / X$� X���� �!: ��!��

Page 187: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �!!

� X���� �� ��!����� ������ ��� <�����

� ��� <��� �� ����� R��R����� �� ����� ���������� -!��.<���� �� I� ���

� ��������� �� ����� �� �:� !: �� ����� �� "� .� ��� �� "� . �� �:� ' !:� �:�� � �� �� . ��� #$��� � % " ��� � �� ' ��� #$��� � % " ��� �� � � % � ��� � �� ' �� ��� ���� " �� " � �� #$��� �� " � � � ��� " �� " � � ��� ���� �& � % " �$��� I� � �� I� " � �� I� " �� I� � ��� �� � �� �� " � �� �� " �� �� � �� ��� �&� ��� ���� I� . �� I� " � �� I� " �� I� . ��� �� . �� �� " � �� �� " �� �� . ��� "� ��� ������

� -!��.<��� �� ����� �� �:� !: �� ����� .�� �& �: % !: �$��� . �� ���������� �� �:� !: ��� ������ �� �� �:� . � ��� ������ �� �� . ' � !: �� ��� �&�� �� ��� ������

� � �� G����� �)�:����5� �������� R ��� I �� ����� 00 �� � C 00 � �� B��������B �� B����)��� � �B ��� -!��.<���� R� � � ��� ���-�� I� � �� � � 00 � �� ��� ������

� ��� ��!����

� / X$� F������ �!:���.�)�� F������ �� ��!����� ������ ���.�)��� ������ X���� ]8G� 8����� (��.�$���X�� ��� ����� ����(������

Page 188: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!" � �� ���� � ���� ++��� ,��� �������

� ����(���� �� @� / X$� �� ��� �� �� =�)���$ #����� J�J� J�J� J���J� J��J� J���J� J���J�� J��J� J��J� J:�J� J:���J� J:!�J� J:�J�� J���J� J��J� J&��J� J&�� J� J$��J� J$��J�� J$���J� J$�J� J$��J� J�&J� J��J� J��J�� J��J� J���J� J�&J� J��J� J��J� J�$�J�� J�$��J� J�$�J� J�$���J� J�$���J� J�$��J� J�$��J�� J��J� J#��J� J#�J� J#���J� J#$��J� J#$��$J�� J#$�J� J#���J� J#��$J� J#�!��J� J��!J�� / � &�# ��$���� J�$��)J� J��!�J� J ���J� J����J� J���B�J�� ;7GGA��

� X��� �� ����� �����������) �� ����������� J�� �!�� �$� ��� � �� � ���� �����)J�� ����� #������ !�� <����)X���� ��� #���� �� ��� G�#��H���� (����� ���� � ��� #���� �� �� ���� ����� #����� ����(���� ��� ��� <�� � #���� �� ��� !��� ��� ������

� ]8G �� ����� � � �� ����������� J�� �!�� �$� ��� � �� �� ]8G ���! ���J�� ����� �� ��!��� �����

� ��� �� ����� � �� �����:�� �� ����� � � ������ ����� ��$����� !�� ]8GX���� ��� �& 9�=�� ���� � � � �$��� � �� H������8����� � � ��� ������ ��$��� �� �������� ���� 9�X���� � ��� &�� ���� �� ����� ��� ��!�� �� ' ��!���� �� ��!�� � �� ����� ��� ���� ��� ������ �� ��$���� � �� ��� �&� ��� !��� ��� ������ ��!�� �� 2�� � �� ���� � �� � �� ���-�� �� � �� � � 00 ��!�� �� ��� ������

� 8���� �� ����� ���� �� ����������� J�� �!�� �$� ��� � �� � 8���� ����������J�� ����� &��� ��� �� ������ &�� �� ����� ��� ��� 2� ������� ����� B&!������B � � ��� ���� �� ��� �! :���!�� ����� &�� ��� ��� � �� ���-�� � ��-� &��� � �� " � 00 ����� � � � ��� � � 00 ����� &�� � ��

Page 189: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �!#

� ����� ��� ��� ��� � �� B��������B �� ��� ������

� (��.�$���X�� � �� ����� #� �� ����������� J�� �!�� �$� ��� � �� � #��.�$���J�� ����� ���� #.�� ��!��� �� ���

� ��� �� ����� �� �����:�� �� ����� � � ������ ����� ��$����� !�� ]8GX���� ��� �& 9�=�� ���� � � ��� =�� ���;� �� � � � JX����&����J �$��� � �� H������8����� � ��� ������ ��$��� �� �������� ���� 9�X���� � ��� &�� ���� �� ����� ��� ��!�� �� ' ��!���� �� ��!�� � �� ����� ��� ���� ��� ������ �� ��$���� � �� ���& ��� ����� �� B�����)B � �$��� ��� ������ �� ��)� �� ��� �&� ��� !��� ��� ������

� !�� ]8GX���� ��� �& 9�5��! ���� #� � �$��� #.� �� ������� 9�=�� ���� ����� #� � ��� �& ����� #.� � � �$��� #.� �� #.�� �� ����� ����� J����&�� �� #��.�$��� *DBJ� &�� �� ��� �&� ��� �&� ��� !����

� ��!�� �� 2�� � �� ��:������ ���� #.�� � ��� � �� ���-�� �� � �� � � 00 ��!�� ���

� !�� ]8GX���� ��� � �� ��� X���X���� � ��� � �� ���� ��� � � ��� F��������X���� � �� ��� !���� ��� ������

� ��� ��!����

� ��� ��!���

$�� ������ ������� ����� ���� �� �" ��� �� %�� �� $� �� ���� �� �� ��� �� � � � �� ���� � ��� ��� ������� ���� %�� � "��

Page 190: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"$ � �� ���� � ���� ++��� ,��� �������

� ��� ����� 9��� �� � ������ � ���� �� �" ��� ��� �� 3���4

������ � �� ������� �" � � � �� � ��� �� �� ��� ����� ������� ��� �� ������ $��� �� �� ��� �� ���� "�� ��������� ���0�M-0���" � ���

#��� ��� �������$�� ������� �� �� ��� "�� � �� ��� �� �� �� �� $��� � ������ ������ ��� "� �=������� $�� % � �� �� �� � � �� ��� �= � ��� ���� ���� ��� � ��� ������

� #��$� <����$=�)��� ��� ����!� �� H���!�� � ��� YY �C00M� �� �� �� ���� F��������X��� ��� ;! :��V&5��! ����� ����!� ��

1

� O��5��! ���9�\�9����� ����!�� ��

Q$�� ����������B� ��� �� ���� �� ���� B� �� �� ���B� � � �� ��� �� �L �� ������ ���� � �� ���� � � �� "� �� � � % ����� � � �� � ���� � "��� .�� � �� �� % � ��? �� � �� � � �� ��� ����� � ��� "� �� �� ��� �����������R

� ���.��) �� <����$� \!���9����� ����!� ��� J ��$� ������ :��!��J ��

���� � ?M I/� 5� �� :� �� 3� 1� 0� 2J

� ��� O��5��! ���9�\�9����� ����!�� ���.��)� 00 , � ��

Page 191: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �"�

IQ$�� ����������B� ��� �� ���� �� ���� B �� � �� ���B� � � �� ��� �� �L �� ������ ���� ��� ���� � � �� "� �� � � % ����� � � �� ����� � "��� .�� � �� �� % � ��? �� � �� � ��� ��� ����� � ��� "� �� �� ��� �����������R� Q���� "�� ��� ���� "�� ����� ����� �� � � ��� � ��� � ��� �� �� � ��� ��� �� � �� �� "�� ��� ��� �� � "�� ������ ������ �� � ���� ������ � �� �� ���R�

Q� ��B ������� � ����������RJ

$�� ����� �=����� �� � � �� � ������� �� �� � ���� $�� �� ��� �� ���� � ����� �� � ��� ����� � � ��� �� 7 � � ������� ��� ��� ����� 6� �� �� � �� �������� ��� �� � ��� �� ����������� ������ � � ���� ��� �� ;�������������� �������

� F�� !��� �� ��� F!������ ������� B����������B�� F!������ ������� B��� ������B� B-!���B �� B-!���B ��� F�� !��� �� ��� ��� ����� F�� !���� B���)�$B � ��� ����� F�� !��� ��

/5�

)�� ���� �� � �� �� ��� �� ��� �� �� �� �>� $�� /��� %�� � �� ;������ � �������� �= ��� �� � �� � �� ���� ��� ���

� ����!� �� H���!�� F�� !���� �� �� ��� F��������8������ -!��� �� ����� @��A� -!��� � � ��� \!���9����� ����!� ��

� �� �������� � ����� �� � ��� ����� �� �� �=������ �� ��� �� ���

� �����

� ���.��) �� <����$� ����!�� � B���B� B���B � ��

Page 192: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� � ���� ++��� ,��� �������

���� � ?M I0/� 35� 31� 3�� 3/� 2:� 0�� 0�� 3�� 30� ��� �/�

�0� �0� 33� /�:� 10� 11� /��� 2�� ��� �2� 3�� 32� �:� ���

02� //:� 20� 23� �:� �3� 22� 50� 12� 25� �3� /� //0� /�1�

/5�� /�/� /�1� /�5� /��� 5�� /�0� �2� 1�� //�� �5� :��

:3� 1/� //5� :�� 51� 2�� 3� /�� /2� /�� /:� �� 5� /0� �� ::�

15� //2� //3� /��� 5�� 2/� ��� 0:� ��� 52� 03� 1�� /3� �5�

2�� 55� �/� :�� :/� :1� //�� ///� //�� 5:� :0� :5� 53� 0��

2� 1�� 00� 01� ��� 05� 5/� /1� /�� :2� 5�� /�0� 1:� /5�

/�3� /5�� :� 1� 13� 3:� /�2� /��� /�/� /��� /5/� 0� 21�

/�:� /�2� //1� �1� �1� /�3� /�5� //� /��J

� ��� O��5��! ���9�\�9����� ����!�� ���.��)� 00 , � ��

I���F

�� �����F�� �G F�/� � �G��F�/� � �G�

� � �����F�� G F�/� �G��F�/� �G�

G�

� �� O ����F

�� �����F�� �G F�/� � �G��F�/� � �G�

� � �����F�� G F�/� �G��F�/� �G�

G�

� � M /� ���FG M ���F/

�G� � ��F

/

�G��

���FG� M/

�O/

����F� GJ

&�� � � ������ �� � � ��� � ��@� � ������ �� �� ��� ���>� �� �� ����� � �� ������ � �� ��� �� � ����� �� ����� � ��� �� ��� �� ��� �� �� �� �>� �� �� ������ �� �� �� � ��� �� ������ ��� ;�� ��� �� �� ��� �� �>� �� ���� � � ����� ����� � ���

� ����!�, �� H���!�� �C00�����F�� !������ �� �� F�� !����� �� �� F��������8����� -!��� �� ����� @��A� -!��� � � ��� ���.��) �� <����$� ����!�� � B���B� B���B � ��

Page 193: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! �������� �� +���� 3 -� ��� ������ � �"�

���� � ?M I0/� 35� 31� 3�� 3/� 2:� 0�� 0�� 3�� 30� ��� �/�

�0� �0� 33� /�:� 10� 11� /��� 2�� ��� �2� 3�� 32� �:� ���

02� //:� 20� 23� �:� �3� 22� 50� 12� 25� �3� /� //0� /�1�

/5�� /�/� /�1� /�5� /��� 5�� /�0� �2� 1�� //�� �5� :��

:3� 1/� //5� :�� 51� 2�� 3� /�� /2� /�� /:� �� 5� /0� �� ::�

15� //2� //3� /��� 5�� 2/� ��� 0:� ��� 52� 03� 1�� /3� �5�

2�� 55� �/� :�� :/� :1� //�� ///� //�� 5:� :0� :5� 53� 0��

2� 1�� 00� 01� ��� 05� 5/� /1� /�� :2� 5�� /�0� 1:� /5�

/�3� /5�� :� 1� 13� 3:� /�2� /��� /�/� /��� /5/� 0� 21�

/�:� /�2� //1� �1� �1� /�3� /�5� //� /��J

$�� ����� �� � ������ ����� � "���� � �� � � �� ���� � ��������� �� %��� � �� ���=��� �� �� ������ �� ��� � ��� �� ����� �� �� �� �����"���

� ����!� �� H���!��� �� ���� ����� �������� J8�5��! ����J �� @ J0J� J00J A ��� &�� � �� ����:����� &�� �� BX=]XB� ��&����� ��� F��������X��� ��

�� �� ��� ��� ���� � � �� �= ������ �� ,�*� �� ������� ������� �� �� ����

� ����!� �� H���!��� �� ���� ����� �������� J8�5��! ����J �� @ J0J� J00J A ��� &�� � �� ]8GX������I����F���� &�� � �� F��������]8G ��

6������ � �� ��� � �� ����� "� ������ �� �� �� ����� �� � �� �� � ��� ��� �� �����"��

� ����!� �� H���!��� �� ���� ����� �������� J8�5��! ����J �� @ J0J� J00J A ��� &�� � �� (��.�$�����L���F���� &�� � �� F��������(��.�$���X�� �� ��

� ���� �� �� 3���4=����� ������� �� � ����� � ��������C�� %�� � �� � �� ��� � ��� ��� � �� � � ��#�� � �� ��� � ���������� ��� ��� �� � �����%� ���� 4�� �� �� ����� �� �� �� � ������� �� �������� ������ � ����� ������ ���� ���� N�=������ �� �������� � ������ �� �����������

Page 194: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"� � �� ���� � ���� ++��� ,��� �������

��0 ����������

$��� ����� � �� ��� �� ����� �� ����� ��� ���� � ���� ���� ��� � � �� N�=������ �� ��� ����

+���� ���� �� ��� �� � �� ����� "�� ��� ��� ����" �� �" �� ���� �� �� �� � ���� ���� ��� �� ������ �������� .��������� � ���� �� �� � ��� �� ������ � �������� �� �� � ���C�� ���� �� �� ����� ��� �� ����� � ����� E� �� ���� �� ��� ���� ������� ��#��� � ������

Page 195: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� ��� � �� � �� �

���� �� ����� �� � ��� ��� � ����� �� ��� ��� �� �� �� ��� ����������� ���� ������ ��� �� ���� � ��� "�� � � �� ���� ����� �7 � �?

� >�� � ������ � ���� �����

� � � �� ��� � � �� � ������� �� ��� ����������

� �� �� ���� � �� �� ��

� � � � ����� �� ���� � �� ��

$�� ����� ���"� � ��� ��� � ���� ������� �������� �� �� ��� � F�D�G �������� ����� �67 � ����� ��� � � ���� ������� ��� � � ��

� ���� �������

� $ � ��� +=�����

� 6��� $���� �� �����

� 6��� >��� ��� � ;� � � 6��� �����

� 6��� ���� ���� &������

� �� &������

� � � &������

� &��� ��� &������

� ���� � & - �� ���� �

/0�

Page 196: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"� � �� ���� �� )���� �� /�����

"�� � � ���� ()�����

$��� ����� ��� � ��� ��" �� �� �� �� ����� �D� ��� � �� (����%������� �� �=������ ���" ��" � " �� � ���� �� �� ���� ��� � � %����� ��" � ��� � �� � ���� � �� � %��� $�� �=������ ��� � �� �����"��� ��� ��� ���� � �� �� � �� � ��� �� ���� �� ��� ��� � �� ��� ���� �� F�� G ��� �� "�� � ���� � �� � ���� �� ���� �� � ��� ��� �

� �� ��2� 2��� �� 0��1221MM��� �� 0MM+,�+2��� �,� 0MMMM11M2M+��� ��� 0MMMMMMM������ �+� 0222222222���

� � ��� ���������� ��� ��� �� ��� ��� �� � ����� ������ � � ����� �� � ��� �=������ �� ��� "�� ������ �� �� �� ������

�� �� "� � �� ���� � �� �� F���� � � ������ � ������ � ��� ��� � �� ���� � � ��� & � �� ��G � � ����� ��� �� ����� ������ ���� �� �� ��� ��� � ���� �� ��� � � %�� � � �� �� ���� ��� � �� �� �����C��� )��� �� �D� ��� � �� �� �� " �� � ����� � � %���

� &�� �� �� �� &�����&�J �&���J� JD� D�Q�J� ����� ������ ��� ���� &������J �&���J��

$�� %�� -��� �� ����� � �� � � �� ��� �� $� ��� ��� �� � ��� ��� �� �� �� ����������#' ������� �� �� � � �� %�� -����� ���" � "�� � �= ���� � � ����� ���� ���?

) )%))))))�5)(

( @%$�&))@�5)(

� R%R?�����5)(

� R%RRR&&R�5)(

$ (%))))))�7))

? (%))))))�7))

$�� ����� ������ " ��� ���� ��� �� ��� � � �� %��� $��� ������� ���� "� � �� � � � ���� $�� % � � � �� �����%�� �� %���� ����� �� � " ��� �� �� ����� � � �� �����%�� �� �� �� �� �� ��� ����� $�� ������ � � ��� � � �� �� �� ��� ���� ������� �� � " ���

%������ � ���� � �� � ������ �=������ �� %����� �� -���� $��% � ��� � ���� %����� ����� � �� � � � �� � ����� F� ��

Page 197: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 3 %����� � �� +��� � �"!

�� �� ��� � � ������� ���� ���� ��� G� �� ������ � ���� ��%�� �� � ���� � �� ���� �=��� �� � ��� �� F����G � �� " ���� ���� %�� �=���� �� �" �� ��� ��� " ��� �� ��� ��� E� �� ��� ������ ������� F�� �=������ �� �� "� � ����� � � �� ���� �=����%��G �� ��� �� ���� ������� 6� �� � ��� ���� � �� ����

������� ��� �0� ���� �� ��� &�� �� . ���

������ ������ $�� �� �� � ��� LS� S�T�L� �����%�� �� ����� " ���� ��� ���� �� �����"�?

� 6� � ��� ��� �� � ������� ���� FS�G

� (���� ��� ��� � 6� ������ �����%� ���� FS�G

� � ����� ����� ���� ��� �� % � �� ����� ��� ����

� � ��� � ��� FT�G �����"� �� ����� ��� ��� F� " �� ���� ��� �� ��� � � � �" ���G

.� ���� �� �� � �� �=������ ����� � �� N�������� ��� �� ��= ����%�� ����� �� � � � E� �� ������� �� � � ��"� ����� �� ��� ����� � �� S� �� ��� $�� ����� � ����� ���� ���� ��������� � �� � ������

!������ � ���� ��� �� � � %����� " ��� � � %��� �� � � ������� )�� �� ����� � %��� �� ��� ��� � �� � �� %��� ���� �� � � �� � @� �� �� ��� ��� ��� ������� $�� ����� ������ ������ �%��� �� �� �� �� � ����� � %��� ����� � ��������� ������ � "�� �� �=��

%�� !������ "�� %������6 2������6 ��� !������ � ���� 6� � ���������� ���� �� �� � ����� �� �� " ��� �� ��� � � %�� �� ��� ��2������ ������ �� ����� �

� #���������J �&���J� � �����)���&�������

$�� 2������ ������ �� �� �� ��� �� ��� ���� �� ����� �� %���" ��� �� ��� � �� �����%�� �� �� F� ���� �� � N�������� ��� G �� �� ������ �� %��� A�"��� � 2������ ���� � � ������� � ����� �� ���� �� �� �� �� ��� ��� � ���� ������ 6� ���� �� ������

������ *��� ���� � ���� � ���� ����������� �� ��� � ��� ���� �� � %��� 6� �=������ ���� ��� ��7 ����� ���"� � � ������ ����� �� ��� � ����C�� 9����� ��� � �� � %�� �� ����� �� ���� ��" ��� � ��

Page 198: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"" � �� ���� �� )���� �� /�����

� �� ���

3 ?M IJ

� ��� �� �� &����&�J �&���J� JD� D�J��� �& �� � 2 �$�� :���. ��� �&�� �� ���� ������� ��� ���

�� ?M I�� ��J

3 ?M II�� ��JJ

�� ?M I/� ��02�3��31�1J

3 ?M II�� ��J� I/� ��02�3��31�1JJ

�� ?M I�� ��11�5���:�J

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�JJ

�� ?M I5� ��1111331�1�J

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�J�

I5� ��1111331�1�JJ

�� ?M I2� ��111111102:J

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�J�

I5� ��1111331�1�J� I2� ��111111102:JJ

�� ?M I�� /����������J

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�J�

I5� ��1111331�1�J� I2� ��111111102:J�

I�� /����������JJ

�� ?M IJ

Page 199: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 3 %����� � �� +��� � �"#

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�J�

I5� ��1111331�1�J� I2� ��111111102:J�

I�� /����������J� IJJ

�� ?M �

� &������J �&���J��

$��� �=����� �� � �� ������C�� � � �� �� ���� ���� )�� �� ���� ����� ����� ���� ��� � �� ��� � � �� �� %���

$�� ��� ������ ���� ��� ��� � � �� � �����%�� %��� �� �� ������ ���� ��� � �� �����%�� �� �� F� ��� ����� LS� S�L� ������� �������� ���� �� � ��� ��� G� � ���� � � � ��� �� �� �� ������ �� � �� ���� � � ������ �� � ��� ������ �� �� �� �� %���$�� % � ��� �� ���� ��� "�� � ���� %�� ���� ����� � ��� ��F����G �� %�� �� ������ �� � ���� � �=��� ����� ��� ��� � � � �

$�� ����� ��� �� �� ���� ������ �� ��� � �� � � ������ ���� �� �� %��� �� � ���� �� ���� �� � ���� ��� "���� ����� ������ ����� �� ��� � � �� ��� �� ��� � � �� F$�� ���= � <. ���#�'8"-

���� ����� � ����� � � � ��� ������� �� �� �=���� ������ �� ���� �� �" ����� "-�G

%�� !������ "�� %������6 ������6 ��� !������ � ���� �� "�� �� " �� � � %��� �� �� ��� � �� � %�� �� � ������ �� ��� �� ������������

� �� ���������J �&���J� �����)���&�������

3 ?M II�� ��J� I/� ��02�3��31�1J� I�� ��11�5���:�J�

I5� ��1111331�1�J� I2� ��111111102:J�

I�� /����������JJ

$�� ����� ������ �� �� �� ��� �� ��� ���� �� ����� �� %��� ����� �� ���� �� ��� �� �����%�� �� �� F� ���� �� � N�������� ��� G� �� �� ������ �� %��� A�"��� � ����� ���� �� ����� �� � ����� �� ��� �� �� �� �� ��� ��� � ���� ������ 6� ���� �� ��� �� �����

$�� �= ����� �=���� � �� ����� ������ �� �� ����� �D���� � ��

Page 200: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#$ � �� ���� �� )���� �� /�����

"�� ���� +��� ��� �����

��� �� �� ����� �D� ��� � � ������� ��� �� � %���� � ��� ����� ��� � � '�� �� � ������ � � ���� %��� � �� ��� �� �� ���� � � � � ��� � � � ���� � "� ����� � � ����� ����� �� ��� ����� �� �� �� �� � � � ��� %�� �� �� �� �� � � � ��� � � � ��� � �� � ���� � "� ������

1�3��� 5���� &����� #��3��� 5����$�� ����� �D� ��� � � �� �� "� %�� ����? � @� �� F3�C=�/G �� � @� �� FC�UG� ����� ��� ���� %��� ������ ���

23���� . ��*

� ��� � @� �� � �� �� �D�� � @� �� %�� ��� ���� � � � ���� ���� �

� ����� ������� ��� ��� � � � � @� �� " ��� ��� � � %�� "���� � @� �� � �� � �� %�� �� ������� F&����� ���� � ����� ���� ����� � ���� �� ��� �G

� � ��� ��� �� ��� �� �� � @� �� %���� $��� � � ��� �� ���� �"�� ��� �D� ��� � � ��������

)�� . ��*

� 9�" %��� � � ��� � "�� �=����� �� � ��� ��� �� �� �� ������� ��� ������ � �� �� �� ����� ��C� � �� �����

����� 4�� &������ �� � ����� ��� ���� ��� �D� �� � ���� ����%� � 3�C=�/ �� C�U � ������ � @� �� �� � @� �� %���� �����������

��"� 5���� &����� 1���' 5������� ��� ��� ������� ��� ��� >�(D����"� �� �� �� ���������� ��� ����� F��� �( ��G� ����� ��� ��"�� %��� ������ ���7 ���� �� ��� ��� � F���� '���G �� %��� ������ ��7 ���� �� ����F� ���� '���G� $�� ������� ���� � ��� ��� � �� ���� �� �� �"���� ��� ��� � ��� �������� ��� �=�� � ���� ����� ��� � ���� � � ������� "�� ��� �� ����� �D� ��� � ��

���� ������ �� �"��� ��� ��� � "���� �� ���� ���� ����� �� ������ � �" ��� �� � ����� ��� ��� F���� �� �� ����� � �� �� "� ��� ��� � QT�R "��� ����� � ���G� $�� �� ��

Page 201: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� 5��� %.��� �� ����� � �#�

�� ������ �� ��� ��� ��� �� �� ��� "���� ��� � �� /�� �� �(&��������� ��� ��� � ��� ��� ��� ������� ��"��� � �� ��� �� ������ �� �"��� "��� � %�� ��� � ��@� � ��� ��� � � � ��7 ��� ��"� ��� ��� �� 6� �=������ >�(D����"� �� ���� � �"��� "��"� ����� ��� ���� "���� ��� �� � � /5 �� /� F�� ���� � ����� ����G� $�� ������� �� ���� � �"��� "�� �� ����� ��� "����� � /5 F�� ���� � G�

$�� ����� �D� ��� � � �� �� �= %��� � ��� � %���� ��� �����" ��� � � �= %��� �� �"��� ��� ��� � �� � " ��� � �� %�� � � ������ �� �� ��� �� ��� ��� ��� � ��� ��� ��7 ��� �� �� �� ���� ��� ��� ����� ���� ��� ����� ���� ��� ��� ��� � ��� ��� ��7 ��� � �� � %��� � ������ � � �� ����� �"��� ��� ���� � ��� ����� " ��� � � ��� � %��� � ������ ���� �����L � ���� �"��� ��� ��� � �� " ��� ��� �� �� ����� ��� "�� ��� �/��

��� �� ����� �� �� )��, �� ��� ��� ����� � �� ���� ��� �� ���� ����� ����� � ������� ��"�� �= �� ��� �%���� � ��� ��� � �� ���� "��� �� � ������ ���� ������

����� 4�� &������ �� �� ������� � 7 � � "���� � %�� �� � �=%�� � � ��� � %�� �� �� ����%� � �=V� �� M01�CD� �����������

��� 0 � &����� 4���� 0 �� �� ���� ���� � %�� ��� �� ��� ���� �� ����� � �� " ����

� E� ��� " �� � � %�� �� �� ��� ���� �� ������ �� �� ����� ��� �� ����� �D� ��� � �� � " �� � � %�� "���� �� ��� �� ����������� ������ �� ����� �� %�� �� " ���� �� �� �� ���� � ������ ������ � �� ������� � " �� � �� %�� F�� �� %�� �� ��������� ������ � � ������� %�� �����G� � � � ��� �

� E� �� " �� � �� ��� � �� � %�� �� �� ��� �� " ����

����� 4�� &������ "�� � �� �� ������� � 7 � � "���� � %���� ��� �� ����� � " ��� �� �� ����%� � C=�� �� UC0�=� ������������

��� ����� � ��� ��� 5����$�� ����� �D� ��� � � ��� �� ����� �� �� ���� �� � %��� $�� �����%� � ����� �� ��� ��� ��� � ��� %��� $�� ����� ����%� ��� � � �� � � �� � ���� �� �� � �� "���� ����� ���� ��

Page 202: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�# � �� ���� �� )���� �� /�����

� ������� �������� $�� ��� ��� ����%� ��� � � �� �������� ��� � ���� �� �� "���� "�� �� � � �� � ��� "�� �� �� ��������

��� ����� �� �� �������� ����� �� ��� ��� � � �7 ������� ��� "�� ����� ������� � �� � �� �� %�� ��� �� ���

����� ���� � ������� � ���� � �� ����� ����� ��� � � �� %������ ���L "�� ���� ��� ��� ��� � � �� ������� )�� )��,� �� �� �� ��� ���� � �� � %�� � ����� ��� ��� ��� � � �� %�� � �����

��� �� ��� �� ������� ����� �� ��� ��� � � �������L ����� �� L�����L �� L��� ���L ��� � %��� "�� ���� �����

"�" ���� 1����� �� ����� ���� �����

$�� ������� �� �� ����� �D� ��� � � ��� � %��� � �� �� "� "���?�� ��� � �� ���� ��� �

���� 9��� �� � � %�� �� ��� �� �� ������ �� �� "� �������$�� % � ��� ����� �� �� �� � ��� ��� � �� %��� � ���� �� %������� � C=�� ���� � � UC0�= ���� �� �� � �=V� %�� � � M01�CD

%��� �� ��� �� ��� � �� ��� ��� �� � �� �� �� ���� $�� � ��� �������� �� ��� �� � %��� �� ��� �� ���������� A�"��� � �� "����=�� ���� � ����� �� �� ���� ����� �� ��� ��� ������ ������������ �� �� ��� ��� ����� ��� ���� � � %�� F� �� �� " ��� ������ ����� ��� �G�

*��������� 9��� �� � � %�� �� ���� ��� �� ��� ������� �� � ������=�� �� � ������� ����� � ���� "�� ���� � �� ����� � �� � �������� ��� ����� � ���� ��� ������ ����%�� � %�� ��� �� ��������� �� )�� �� ��� �� �� %�� ��� � ��� � �� � ��� � ���� ��� ���� �� � ���7 ��� ���� ��� �� %��� �� �� ���� ��� ����� ���� %�� ���� � �=����� � ���� �� ��� &�� �� . �� � ���� /12��� � ��� �� �� �� � %�� ���� ��� �

$�� �������� �� �� ���� ��� ����� ��� �� �� � N�=������ "������� �� %�� F�� �� ������� "���� �� %�� �� �=V� � M01�CD� ��"���� ����� ���� � � C=�� ���� � � UC0�= ����G� ��� ���� ������ "�� �� �� ��� ��� ��� ���� � � %��� �� �� ������ � "� �"�� � @� �� %���� $�� ���������� �� � ����� �� ���� � �� ��� �� � �� ����� �� �� � � ���

Page 203: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 5��� � ����� ���� ��++ ��� � �#�

0��� ������� ����� ��� ���� �� ��� ������ � �� ��� � ����E� �� �� �� � ������ %�� �D� ���� ��� ������ �� ��� �����"�� ���� �� � ������= ���� �� ���% � �� �� �� �� ���� ��� ��

!���* � � ���7 � ������� �� � � ����������� ��� � � � %������ � %�� ���� ��� �

"�& ���� �������� ��� ��������

*���� � ����� 5����.��� � �� �� ��� � �� � " �� � � %��� �� � � ��� �� ��� ��� � �� � %��� �� ���� ��� ������ � ��������� "�� �� % � ���� ��� %�� ��� ���� ��� �� �� ���� ��� �� ��"��� � �� � � �=���������� �� %�� % � � � ��� �� ���� ��� �

$�� "� ������� �� ����� %��� � � ���� �� ����� $�� ���������� ���� � @� �� F3�C=�/G %���� "�� ���� �� ���� ���������� � @� �� FC�UG %����

)�� �� ���� ������ �� �����"��

����# ��������8 ���������8 �������� '

$�� ������� �����%�� �� ��� �� �� %�� � ���� $��� ��� �� �����%���� � � ��� �� �����"� �� ������� �� �� �� ���� ��� �������� ���� $�� � ������� � � �� �� �� C=��� UC0�=� � ���=1��������� "���� �� ��� �� ������� ��� �� %�� �� ������ " ����� �������� $�� ������ ��� ��� �� ���� �=V� � M01�CD�

�� �� � � ��� �� %�� �� ����� �� � ���� � �=��� ������� ��� � � � �

�� �� � � ��� �� %�� �� " ��� �� � ���� � �=��� ������ ���� �� �� � ���� �=�� �� �� ������� UC0�=� ����� ���� �� %��� C� � ����L �� �� ������� ���=1�� � ���7 � ����� � ������� ��" �� � �� %�� ����� � ��

&��� �� ���� ������ �� �����"��

����# ��������8 ��������� '

$�� � � ��� � ���� � � �� ���� �� ���� � ����� �=��� �� �� ��� ������� � ��� ��� F�=V� � M01�CDG� ����� ���� � � @� ��%�� "�� ��� M01�CD�

Page 204: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#� � �� ���� �� )���� �� /�����

.�� ���� �� ���� � � %�� ���� ��� � )�� ��� ���� ��� � ��� � �� %�� �� � ���7 � ��� ����� E� �� ���� �� �� %������

��� �� ���� %����� "�� � %��� �� � ����� � ����� �� $��� ��� �� �� ����� " ��� ��� ��� ���� � �� ����� � ���� � ��� ��� ����� �� �� ���� ��� ��� ������ "���� ��� ������� � ���� � �� ��� �� %��� �� �� �� ��� ��� ���� ����

&���� %��� �� ��� �� ����� � ����� �������� $���� "� �������� � � �7 ������ E� �� ���� ��� �� �����"��

�����# ������������� '

�����# ������������� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � ������ ��� �� ����� � %��� �� ���� ��� � ��� �� � �� %�� � � � ���� ������

� & �� &�����J����F���0���J�(L9X=��

� #���������&�JX$�� �� � ����J��� &������&��

� #���������&�JX$�� �� ����$�� ����J��

=����8 #�� �����' ��� ���������� ��� �� ���

��� �� �=� ����� � ��� � � ������ ������� ����� � ��������������� �� ��� %���� "���� �� ����� ��� �=������� �� ��� ����

� ����� � ��������� � � �� � %�� �D� �������

����� .���� ���� � � +��� ����������� "�� ���� ��� %�� �� �� ����� �� �� � � ������� $����� �� ������ "��� �� %�� � "���� � � ���7 � " �� ��� �� � � �� "���� � � ���7 � ��� ��� �� �� ����� � " ��� ��� ���������� �� ������ �� �� ��� �� ���� ��� � " ���

E� �� ��� ��� �� � � ������ "��� � %�� �� ��� �������� ������� )�� ��� ������ � �� �����"�� ��� �

������# �������������8 ����� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� "���� ������� ��� ��� � ��# �� �� �� ���� � %������ �� �� %�� �� � ������ ����� ���� � � C=�� ���� "�� ��� M01�CD�

Page 205: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 5��� � ����� ���� ��++ ��� � �#'

$�� ������� �� ������� �� �� �� � ������� �� �������� ����� � � �� � � ������� �� �� � ���� �� �������� ����� ��� ��� � ������ � ������� �� � � �� �� ��� ������� � ������� �� � �� ������ �� �� ���� �� �� �����%�� ������� ������ %�� �� ��� � �� �� �����%�� �������� � "���� ���� �� � �������� �� �� �� �� �� �� �� %�� F�� ��� �� ����G� E� �� ��������� ������� ���� �� � ���� � �� �� ��� ������-� "���� �����%���� �� �� �� %���

$�� �����"�� ������ � � �� ���� �� �� %�� -���%�"��

� &�������J �&���0���J� ��&�������

5:

.������� ��� ! $ � 5���$�� �� ������ ��� ���� "���� �� ���� ������ �� �� �� �%��� ��� �� �� �� ������ � %��� �� �� ���� ����� �� 3�C=�/���������� � �=������� ��� ����� &��� �� � �� �����"�� ��� �

��# ������������� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � 7 � �� �� �� ����� %������ �� �� %�� �� � �� ���� ����� ���� � � C=�� ����"�� ��� M01�CD�

$�� �� ������ � � ���� �� �� ��� �� �� ���� ������ ���� �� �� %�� � �� �� ��� ��� �������� ����-���� � ������ ���� ��� "���� �� � � ���� $��� ���� �� �� �� ���� ���� � � %�� �� �� �� ����-��� � ��� ���� �� ����� �� ��

���� � � ���� E� ��� � �� ������%�� ��� ��� �� �������� ����

.���� ��� 5��� ������$�� ������� ������ � � ������� ��� ���� ��� ��� �� %���� ��� � ��� &��� �� ������� ������ "�� �� �����"�� ���=�

�������#'

$�� ������� ������ � � � ���� $�� ��� ����� �� �����"��������?

�������#'�( $�� ��� �� %��� �� �� ����� �D� ��� � � �� � � ��� ����

Page 206: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#� � �� ���� �� )���� �� /�����

�������#'�� $�� ��� �� ����� ���� ��� ������� F"�� ��� ���� � %��� "���� ����� ����� � ��� �����G�

�������#'�� $�� ��� �� � � �������#'�( 7 �������#'��

�� �� �� ���� ��� ��� ����� ��������

�������#'�� �� � 6 �� � ��� ����� ��� ���� ��� � %�� � ���� �� �� �� ����� �D� ��� � ��

��� � 4 5� �� ���� �� �������#'�� � ���� ���� �������"�� ������?

�������#'�� �( $�� %�� ���� ��� "���� ���� � ���� � ���

�������#'�� �� $�� %������

�������#'�� �� $�� %�� ��� F3�C=�/� C�U� � �0C=��G�

�������#'�� �$ $�� %�� ���� � %�� ���� ��� �� �� �� ������� ��� ����� ���� $�� ���� �� � �� �� � ;�.������ � ;�.������ �

�������#'�� �? $�� %�� ���� FC=�� � UC0�=G�

�������#'�� �I $�� %�� ��� F�=V� � M01�CDG�

�� &�� 5������� %��� � � ������ �� ���� � � ��� .��� �� �� �� � ��� ����%��� � � � ����� �������� ����� ���� )�� �� �� ��� ������� �� ����

�� ���# ������������� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � ������ �� ��%�� �� ���� ����� ������ � ���� � ������ �� �� �� %�� ���� � �=�������� ��� ��� � � � �

$� ����� � %�� ��� ����� �� "���� � �=���� �� � ��-B���4 ������ � �� �� � � �� �� ��� ���� � ����

� ��� &�� ����J �&���0���J� ����$� ��� ����

Page 207: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' )���� ��++ ��� � �#!

"�' ���� ��������

��� �� ��"� ���� $� � 5���$�� ������� ������ ���� � ����� ��� �� �= � �� � %��� &�� ��� �� � ��� � � �� ��� ��� � �" ���� $�� ������� ������ ������� �� �� �" ��� ��� ��� � �� � � �� ��� �� ��� ��� � �� ������ � ��� �� ������� ��� ��� � "���� ��� � �� �� %��� �� � � � � ����� �� � � ���

&��� �� ������� ������ �� ��� �� �����"�� ���=�

�������# ������������� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � ���� 6� ����������� "�� �� ��� �� ���� �� ������ �� �� ��� �� ����!�������� � "���� ���� ����� ��� ������ $� � �������#' ���������#�����' � � �7 ������

�� �� �� 5( �� �� ������������ ����� ���� ���� �� � �� ������� � ���� �=��� �� �� ����� ���������� � �� ������ �� ��� �� ����� $��� ���� �� ���� ������ "�� QPR ���� � ����� ��� ����� ����� �� � �� � � �� �������� �� �� ���������� "�� Q�R ����� � ����� � �� 4��� �������

�� �� ���� ������� "�� � %������ �� �� %�� �� � ���� ��������� � � C=�� ���� �� � �=V� %��� �� ������� � � � F��������� �� �� �� %��G "�� ������ "�� � %������ � � ��������� �������� %���

������� $�� �����"�� �=����� ��%�� � ����� � ���� � "���� ����� �= %�� �� �������� � � �� ����� � � � ����

� <$�#F��� �� ����� &���;� ��������) �� ����� ������ ��� ���� �� ���������&���;� ���� �& ���� � 2 �$�� :���. ��� �&�� �����&�JD�Q�J�������� ��� ���� ��� �����

��� �� ��������' 1'��� $� � 5���$�� ����-��� ������ ���� �� � �� � ������ �� ��� ��� � � ����� �� � %��� � �� � � �� � � ��� �� ���� �� �� �� � � � � ��� ��� � ������ � �� %�� "�� �� ���� ����-���� �� ������ � � ��������� �� �� ���� ������ �� �� �� �� %���

Page 208: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#" � �� ���� �� )���� �� /�����

)�� �� �����"�� ���= � ���� �� ����-��� �������

����-���# �������������8 �����8 �=V� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � ���� $�� ������"���� �� ��� ���� �����%�� ��" ��� ���� ����� ���� � ���� ���� ��� ������ ����� ���� �� ���� $�� ������ �� ���� �=V�

������� �� �� �� � �� � �� � �� �� � � �� ��� �� � ��� ������ ��

E� �� ������� �� ����� �� ������-� � "���� ���� ����� ������ ������ �� �� %���

�� �� ������� �=V� "�� � ��� "�� ��� � � ������ ���� �� �������� ���� �� �� ��� � �� ����� ��� ���� ��� ��� � � �������� � ����

�� �� ���� ����-��� "�� � %������ �� �� %�� �� � ���� ��������� � � C=�� ����� �� �� ������� �=V�� ����� ���� � �� � �=V� %��L��� "���� ����� ���� � �� � M01�CD %��� �� ����-��� � � � F�������� �� �� �� �� %��G "�� �� ���� � "�� � %������ � � ��������������� �� %���

������� $�� �����"�� �=����� ��%�� � ����� � ���� � "���� ����� �� � %��� �� ��� ����-���� �� ������ � � � �" %���

� H���F��� �� ����� ��!���F����������)� ����F����������) �� #����:���������F���� ����:�������!���F���� ��&�������� ��� �����

����� 6� ��� ���� � �� 2�����-��� � ���� ��� � �2�����-���� ��� 5� � �� 2'�� �� � . �� � ���� �//�

5� ���� ����$�� ��� �� ��� ������� ��� � �� � %��� �� ��� ��� � ��� �� ��� ���� ��� � � �����%�� �� ��� $�� ������� � � ��� ������ �� ��� ��#���� �� � �� � ��� ��� � ���� � �� %�� "�� �� ���� ��� � ���� ��� � � ����� �� � ���� ������� �� ���� ������ �� �� �� �� %���

&��� �� ��� �� ��� ������� �� �����"��

���# �������������8 ���� '

���# ���� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � ���� � ���� ���� �� �7 ����� � � ���� � ��� "�� ����� �� �� ������������

Page 209: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' )���� ��++ ��� � �##

�� �� ���� ��� "�� � %������ �� �� %�� �� � ���� ��������� � � C=�� ���� �� � �=V� %��� �� ��� � � � F������� ���� �� �� %��G "�� �� ���� � "�� � %������ ����� � ��������������� �� %���

������ ������ $�� "���� �����%�� ��" ����� �� � �� �� �� �� �$�� "���� �� � ����� � �� ������ �� � ��7 ��� �� ���� ��� ������%������ �� ��� �� ���� ��� �� ��� ��� ��� �� +��� ���� ��������%���� ��� �� �����"�� �� ��� "�� � �� � ����� ������ ������� ��������

S�E ����� ��������� ���

� $�� QSR ������ ����� �� ���� ��� �����%�����

� $�� ������ QER ������� �� ����� �� � ��� �� ��#��� � � � � �� �� �� �� �� �� � �� ����� ����

� $�� ������ #��� ������� �� ��=�� � ��� �� ��� ��� � ���� �� ��� ��#��� E� �� �� ��� � ��� �� �� �� ��#�� �� "������� ��#����

$�� ������ �������� � � ��� � ������ �� ��� �� �� ��� � ��� � ��?

� �� � $�� ��� � � �� � � � � ��� �� �� ����������� "�� �� &��� � ���� �� ������ �� � Q��� �R � Q��� ���R �� � �� � ��� � ������ ���� N��� ���� � �@���

�� �� J �� �� ���� N��� �� � ����� �� �� �� �� �� �� ��������� �� �� "� �� � � �� ������� �� � ������= ��� � �� ��� ������ $�� ��� �� ������ � �� � �� �� ������= ��� � � ������ �� ��� �� �����%�� �� �� "�� �� H � J ������� $��H �� �� ���� �� ��� �� � �����"�� �� �� ��� ��� �����%�� ���� �����"�� �� �� ������ � �� � $�� J �� �� ���� �� ��� �� ������"�� �� � QOR � Q�R ���� �����"�� �� �� ������ � �� � ������"�� �� � � �� �� ��� ��� � �� ������� � �� � � ������ �������#� ����-����'�

$�� H �� J ����� �� �� � � �� �� �� ��" ������� � "������� ����� � �=������ �� ��� �� ����� � ������= ��� � F�� �=������ �� ��� �� ��� �� ���� ��� � ������ ��� �����G� �� �� ���� � %��� ����� �� ������ F�� �=������ �� � �� � ������� � �� ��� �� ��� �� G� ��� ����� � �=����� �� �� �� � L

Page 210: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$$ � �� ���� �� )���� �� /�����

AS(A �"������ �� ����� �� �� ���" �� � L� "�� � S( �� �������� �� �� �=����� ��� ��� F�� �=������ � �����G�

$�� ��� ������� �� ��� �� ��#�� � ���� � ��� ���� �� ����� ��#�� �� ����� � � � �� �� ��� ���� $�� ��� �� �� �� ���� �����"���

� $�� �= ��"�������� ��� ��� � � �� �� � � ���� ��� � ������ ����� ������� ���� � � ����� ���� �� � ���

� $�� �= ��"�������� ��� ��� � � �� �� � � ���� � � ����� ���� F���� 0G ���� � $�� ���� �� ���� �� � � ���������� �� � �� �� � ����� ���� �

" $�� �= ��"�������� ��� ��� � � �� �� � � ����� �� � ����� ��=�������� F���� /:G ���� � $�� ��� � � � � �� ; F ���� � ��"� ����G �� ��� �� ����� �� ������� � �� ������� ��� � /� � � �� /�� $�� ���� �� ���� �� � � �������� ���� � �� �� � ����� ���� �

- $�� �= ��"�������� ��� ��� � � �� �� � � ����� �� ��+++ ��=�� �� �� �� N�������� ��� �� $��� ��� � � � ������� ��=�� ��=�������� ��� ��� �� $�� ��� � �� ���� �� � �� �� �� �� � ����� N���

�� � �� � $�� �= ��"�������� ��� ��� � � �� �� � � ������� � ����� � ����� ������� ��� � �������� ��� ��� � ����������� �� �������� �����"�� �� = � �� � ������ ���� �� � ����������� ������� � ��"� �� �� $�� ��� �� � �� �� � �����N�������� ��� ��

� ������ � �� �� ��� ��� �� �� � �� � �� ��� ���� �����C��� ������� ��� �� Q��R �� Q11R� �� � � � 1 �� ��� � �� "����� �� ������ �� �� % � ���� �� � ��� � � ��� ��� �� ���� ���� ������� ��� �� ��� ��� �� �� �� � ������ � ���� �� ��� ���7 � � � 1� �� �� �� �� �� ������� ��� � �� � �� �� ��=����� �� ������

4�� 4� �� 4� $���� � � ������� �� ��� �� ����� �� � "����������� �� �� � ���� � ��� ��� � �� � ��� ��� �� �� ��� �� ��� ���� � ����������� � ������� � ������ �� �� �� �� ��� � ��4�� 4� �� 4� �� ��� � � � ������ �� ����"� � ����������� "��4��-�� �� � ����� ���� ��������� � � ��������� ������ "��� �� ��� �� �= �� ���� � �� � �� � ����

Page 211: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' )���� ��++ ��� � $�

$�� �����"�� �� � � ����� �� � �� � "����������� � ���� N�������� F� ���� G ��� ��� &�� ��� � ��� � �� � ������� � � ����� �C�� �� � �� �������? �� ��� ���� �� � ��� ���� � ��� �� ��� ��� � �� �� ����� "��� � ��� F�������� ������� ���� ����� =� �� �� �� �G � � �� ��� �� "��������� ������� � �7 � � � ����� � � ���� �� �� � �7 � � � ����� ���������� �����"�� �� � ������ �� �� ��� ��� ��� � �� �� ���� � �� � ��������� �� ��� � ��� � �� �� �����"�� ��� ���� � � ��� ���

$�� �������� �� �� � �� � � ��� ���� �� �� ��� �� ���� ���� �� �� ��� �� ��� �� � �� % � ���� �� ���� �� ���� �� /�� �� �� ��� �� �"� � ������� �� �� ��� �� ��� �� ����� �7 �� �� ��� ��� �� ��� �� ���� � ������������ � �� ��� �� ����

$�� ��%��� �� Q�� % � ���R �� Q��� ���� ��� � � �� % ���� � ��� �� ���� � ���������� �����" � ����� � � ����������� � � �� % � ������ �7 � � � ���� �� � ���������� �����"���� � �����R�

$��� ����� �� ��� ����� �� �� �� " �� �� �� �� �������� ������ ������ ����� �� ��� �� �� �� ��� � ����� F��= �� �G ����� ���� �� ���� �� �����

$�� �� � �� � �� �� � 4��- �� �� � "� ���������

4" $�� �����"�� �� � � ����� �� � �� � "� ��������� � �� ��N�������� ��� � � �+++ ��=�� �� �� �� F/: ��� ��� � �� ��� G� $�� �������� �� �� � �� � � ��� ���� �� ���� ���� �� �� � ���� � LS4�L� LS4L� �� LS4�L �� ����

� $�� �= ��"�������� ��� ��� �� � � � � ��� ��� �� ������"�� ���� ��� ��� � F� �� �� �� �� � ��G� � � � �� �� ������ � ���

����� ������� �� �� ��� �� �= ��"�������� ��� ��� �� � �� � ��� ��� �� �����"�� ���� ��� ��� � F� �� �� �� ��� ��G� � ���� ��� ����� �=� ����� �� � ���

$�� �= ��� ��� � � � �� � ����� �=� ����� ������ � �� �����% %�� �� ��� ����� ���� �� �� ��� ��� � � �� �� � ����� �������� �=� �����L � ��� �� �� #��� �����%����� $�� ����� �=� ������ �� � ���

Page 212: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$ � �� ���� �� )���� �� /�����

� $��� ���� � � �� �= ��� ��� F"�������� � ��� "���G �� ������ � ��� �� � "��� �� �����%��� �� ��� ��� ��� � F���� � ��� "���G � � � �� �� � ����� ����� � ���

�� � � $�� ��� ��� � ��"�� Q�R �� Q R ������ � ��� �� ��� ��� � ��� � ��������� �� � ��� ��� � ��� ����� ���� ��� ��� � � �� ���� �� � ��� � � �� �� �� ��� � �� ���� $�� �������� ��� � � � �� � �� �� � ����� � ���

�� �� ��� ����� "�� � Q*R ��� ��� � �� ��� �� ���� ��� ������� ��� � ��� � �� ����

�� � Q R �� � ����� � �� ���� � � � ���������� �����" �� �����Q�R � �� Q*R �� �� �=����

E� �� �� � Q5R � �� ��� � �� ��� � ��� �� ��� ��� �� 6� �=������ Q�5JR �� ���� �� ������ ��� � �� � Q5R �� � ����� �� � ��� ��� ����� �� �� ����� � ���� � � � ����� � �������� � �� �� �� �� ����

�� � ��2� $�� ��� ��� � ��"�� �� ��� � ���� R�R� �� �� ��� � ����R�R� � � ����� �� ����� � ���� �� ����� � ;��� � F�� ��� ���� �� � ������� �� �����G� $�� ������ 2 �� � ���� ��������� ��"��� � ��� �� ���� ����� F�� "��� �����%�� ���� � �� �����R�R ������� � �� �� � ���� ���� ������ � �� ��� ��G� $����� ��� �����%�� �� �� �� ����� �� �� �� �� �� �� ����� ��� �� �� ��� �=��� �%%% � �%%%�� $�� ��� ��� �� "����� � �� �� �� � � �� � �� �����%�� �� ��� �� ��#�� � �� � ����F���-� /���"� W���������� � � � W��������2 ����������G�

6� �� � ��� ���� � ����� �� ���� ������ ��� �������9����

/ $�� �= ��7 ��� �� ��� ��� � � � �� ����� � � "��� �� ��� ,�*������ $�� �� � �� � ����� � ��� ���� "���� ��� �� ��� ���� �� �� ,�* ������ "���� � � ��� � � ���� � ��� ����� �� �� ����� ������ � �� &>�$� �� � ���� �� "���� � �� �� � ��7 ���� ��%�� �� ,�* � �� �� �� �� ��#���

� $�� ��� ��� �� ��� ��� � ����� � � �� QS�R �� � �� ��� ����� ���� �

����� ����� ��"�������� ��� ��� � � �� "���� � � "��� ����� ��� �����%���� F"�� � ��� � � ���� �� �� ������� ��� ���� � � �� �� G� � ��� �� "��� ����� � �� "����� �=��� �� �

Page 213: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' )���� ��++ ��� � $�

����� ���������� � ������ � QS�R �����%���� �� ��� �� QS�R ������%���� � ���� �� ����� � �� �� � �� � ���� � � ������ ��� ����� ��#���� ����� � � � ���� ����

$�� ��� �� ��� ������� �� �� �� ���� ����������� �� �� �� �"� � ���� � ������ �� �� QS�R �� QS"R �� ������ � �� �� �� �� ���� �� ��=�������� ���� � � � � �#�� � �� �� ����� �� �� ��� ��� ������

������� $�� �����"�� �=����� ��%�� � ����� � ���� � �� ���� �%�� ������ � ���� �� ��� �� � "���� ���� �" �� ���� � ��@� �"���� $�� % � ��� � ���� �" �� � ���� ��������� ��" ��� ��� ��� � �����" � � �� �"� �� ������ ���� �� ��� �� ��� �� ���� �"�

� L���L�#� �� ����� &���;� ��������) �� ����� � ��!��� ��#� �! �� �� ���� ��� / 5���� ��� $�# ��� �! :��� ��� �� �$�� ��#0� ��!�� �� &����&�&���;� ��JD�J��� �& ��!�� � 2 �$�� :���. ��� �&�� �& ��!�� � �� �$��� ����� J����)�� �������� �� &���J� ��� �&�� ��!�� �� ��!������

� / L��� �$� �! :��� �� �$� ��#0� ��# �� ���� #$��� ��!�� � 2 ��� �! �� &����&�&���;� ��J�D�J��� �& �! � 2 �$��� ����� J!��������� ��� �& &���J� ��� �&�� �& �! � �� �$��� ����� J�! :�� �������� �� &���J� ��� �&�� ��# �� ������#���! ����� ��!�� �� ��!�� � � ��� ����

� / ����� �$� ��# �� �$� ���! !����� ���!��0� �� ���� ����#�� ��� ���� � ��� �����

Page 214: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$� � �� ���� �� )���� �� /�����

��� �� 0���� ����� ���$�� ������ ������ ���� � ����� ����� ����� � �� ����� ��� �� � ���� ����� �� ��� �� ���� ��� �� ������ �� � � �� �� �� &��� �� ������ ������ �� �����"��

������# ����8 �� 8 ��!8 ��" '

$�� ����� � � �� �����%�� �� � ��� �� ������ �� � ��� �� �� ��� �� ����� � � ��� ����� ��� � ���� � ���� E� �� ���� � ���� � ��� ��� �� �� � �� � � ��� ���$� ���%� �� ���&� �� �� � ���� ���� ��� ������� �� ��� �� "���� ����� ��� �� SSS� SS� ��S � �� ����� �� ������ ����� (������ ���� �� ���� � � ����� � ����� ��� ������ �� �� �� ��� � �� � ��� ��� $��� ����"��� ��� �� �� � � �=� ����� ��7 ����� 6� �=������ �� S �� � ���� ����� � �E�7� �� SS �� � ���� �� ��� � 8�� �� �� ��E�7� �� ���&�� �8� �� ���%�

$�� ������ � ������ � � �� � ����� ����� �=� ������ $���=� ����� �� ��� �� � �� �� �� ���� � ������ ���� ��� �� � ����� �=� ������ � �� ���� �� �� �� ����� � ���=� � � ������ � � � � � ���� ���� �� � � �� �� � � � ���� ������ � �� �� �

������� $�� �����"�� �=����� ���"� � ����� �� �� ������ "���� � ���� ��

� 9����������5�&& �� ����� �� ����� �� :�� � �� ���������JI����� ����� �� ����������� J��� : �� ���������J5�&&��������� #��$ ������� ��� J��� �����&�JX$� ���������� �& D� #��$ ������� �� D� �� D�Q�J�� ��:���&&���:��� ��� �����

��� �� ������� .���$�� ����� ������ ���� �=V� %��� ������ ����� �� ���� 6� ������ ������ ��� �� �� � ������ �� " ��� � � ���� � �� ���� ���� �� �� ��� �������

)�� �� �����"�� ���= � ���� �� ����� �������

�����# �������������8 �������8 ���#����� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � �� "���� �����

���� �� ���� $�� ��� ��� � � �� �� �� ������� � ���� � ��

Page 215: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � $'

�� ��� �� � "���� ���� ����� ��� ��� ���� �� ����� ����� ��� �� � �� �� ��� �� �� �� ������� �� ��� �� ���� ��� ��� ��� � ��� �� ��� �����

$�� ���'������ � � �� ������� ��" ��� ��� �� �� ��� � �� �� ��� � �� �� %��� �� �� ��� ���'������� ����� ���� �� ��� �� ��� �� �����%�� �� �� ��� �� ��� ���� �� �� ������%�� F�� ��� � �� �� ��� � ������� �� ��� ���G�

�� ����� ���� ��� �� ��� �� ����� � � � ��� �� �� ��� �� ���� �� ����� ���� �� � �� �� ��� �� ����� � � � ��� ������� ���� � ���� �� "���� ����� �� ��� ��� � �� �� ��� �� �� %���

�� �� ���� ����� "�� � %������ �� �� %�� �� � ���� ��������� � � C=�� ���� �� � �=V� %��� 6 �� �� �� �� �� ���� �����"�� � %������ � � ��������� ������ �� %�� "�� ����� � ��

������� $�� �����"�� "� �=������ � � �7 ����� ��� �� ������ ��� � ���� �� F�� � G� ����� �� ��� ��� � � �� � %���

� �� ���������J �?��>?&���0����J�,��

") ?M II/��� ���� 5�2J� I��3� 5�2� ��:J� I/�0� 5�/� :�3JJ

� �� ���������J �?��>?&���0����J��&�����&�����&�������

"* ?M II/��� ���� 5�2J� I��3� 5�2� ��:J� I/�0� 5�/� :�3JJ

����� >�� ������ � �� %�� � � "��� ����� ��������� ��"���� ����� �� �"�� �� "��� ����� ���� ��� ��� ��� $�� �� ���� �� � � ����%�� ��" ��� ��� �� � ��� �� ���� ��� �� � � ��� � �� ��� �"�� 6� �� %��?

/ � 5 2� : 3 0�����#%%%8�' � � II/��J���:JJ �� �����#%%%8�' � �

II/���5J�I��:�3JJ�

"�* ,� �� ��������

�/����� *����� ���� ����� #��� ��� �������� � � $�� ������� ������ �� � � � � ������� � �� � ��������� � ����� ���� ����� ��"�� ����� �� �� �� �� ����� E� ��

Page 216: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$� � �� ���� �� )���� �� /�����

�� � � ��%� � �� ���� � �@���� �� � � � �� ��� �� �� �� �������� "��� ������

$� �� � �� ���� � ���� �� ������� ������ �� �����"��

�������# $����%�� . ��������� '

$�� �������� � � �� �����%�� "���� �� ���� � ������ �� �� �!�������� � � �� �����%�� �� ��� � �� �� �� ���� �� � ����� 6� � ��� �� �� ���� � �� �� ��� ��� �� �����"�� ������ � ��� ���������� E� �� �� � ����� �� ���� � �� ����� ���� �� � � ���� �� �� �� � $����%�� . ��������� � "�� ������ ���� �������

$� 7 � � �� ���� �� � �� ���� � �� �� �����"�� ���=�

�������# $����%�� '

$�� �������� � � �� �����%�� �� �� ���� � 7 � �� $�� ������������� � � �� � � ���� �� �� �� ���� � E� �� 7 � ���� �� �� ���� � � ����

*��.� ����� !"������ *�����$�� ������ ������ � �� ����� �=� ������ � � ������������ ����� ������ � �� �� �� ����� ��� �� �� � � ��� ������ �� �� �� ��� � � �� �� � �� �� ���� �=� ����� "� �� �� �� $������� �=����� �� �� �� �=� ����� ����� ����� ���� ������ ������� �� �� ��� ��� ��

$�� ������ ������ �� ������ �� �����"��

������# ���������&�'����� '

$�� ���������(�)��� � ������ �� �� � �� � ����� �=� ������� +����� �� �=� ������ �� � ��� � � "�� � �� ������ ���� ��� ���� ������ ����� � �� � �" ��� ��� ��� ��� �� ��� �=� ������

����� ��"��� ���� �� � � �� ������ � �� ��� � �� ������ � � ���� E� �� �� �� 2������ �� ������� �������� ����� ���� ��� � � ���� � ��� ��� �� �� ����� � � � ��� � �%���

$�� ������� �� ���� ������2���4 �@��� �� � � �� ��������� ��������� ����� " ��� �� � � ��"�� ����� �� � ����� ��� ���� ��� � ������� F�� �=������ � �� � ��� ��� � ��� G� ������ ���� � �� ��� ����� �� � �� � ���������� QTR� ���� � ���� ��� � ����

Page 217: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � $!

������� $�� �����"�� ���������� �=����� ��� � ��� ������ � �� � �� ��" ������2���4 �@��� ��

� ����������������'��4+���

�4+'+3�4�3�'23�4,3�4'23�43�4,'+3�3�4�'�4+

� �����&����������#���$�,2��

��

� ����������������'��4+���

�4+'+3�4�3�'23�4,3�4'23�43�4,'+3�3�4�'�4+

���.� ����� !"������ *�����$�� ����� ������ � �� ����� �=� ������ � � "����������� ������ >������ � �� �� ��� �� ����� �� �� �� �� ����� ������� �� ���� �� ���� � ��� ���� �� ����� � � �= ������� ��� ����� ���������� ��� ���� � � ��� �=����� �� ����� � ��� ���� ��� ��� �= ��� ��� ��

$�� ����� ������ �� ������ �� �����"��

�����# ���������&�'����� '

$�� ���������(�)��� � ������ �� �� � �� � ����� �=� ������� ������ �� ���� �=� ������ � � "�� ������ ���� ��� ����

$�� � � � �� ��� �� ����� �� ��"��� �� � �� ����� � � � ���� E� �� �� �� 2������ �� ������� �������� ���� ������� � � ���� � ��� ��� �� �� ����� � � � ��� � � %���

(��� �� ������� �� ���� � �@�� �� � � �� ������ $��� � ��� ��� �� ���=

Page 218: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$" � �� ���� �� )���� �� /�����

�������# �������� . $���� '

$��� ��� ��?

�����-����� $��� ������ �� ��� �� � � �� ����� �� � � �� ���

� �� �� �� �����-����� � �� ����� � �� ��� �� ���� � � ���������

� �� �� �� �����-����� � / F� � � 5 � �� &��������� �� �����G� ����� � �� ��� � ��� ���� ��� ���� ��� ��� �=��� ��� ��

� �� �� �� �����-����� � � � 5 � �� �� ����� �� ������ ������ �� ��� � � ��� ���� � ��� �����

� $�� ���� � ���� �� �����-����� �� 5 � �� �� ����� �� ������� / � �� &��������� �� ����

������ ���� $��� �����%�� �� ��� �� ������ �� ����� ��� ���� �� ��� ��� �� �=� ������ �� � � �� �� �� � % � ������ ���� $��� �� ���� ���� �@�� ��� "�� �� �� �����-�����F��� � ���� � ��%���G � /� � "�� ����� �� � ��� � ���� ���$�� ���� � ���� �� ������ ���� �� 2�

�������� �� ������� E� �� �� ��� � ���� � ���� �������"���� ����� ��� �� �� ������ � �� ��� ����� � ��=� ������� �� �� �=� ������� *����� �� ���� �� �� �=� ������ ����� � ����� ���� ����� $�� ���� � ���� �� �������� �� �����

����2���4 $��� ������� �� ��C� �� � � ��=� ����� � � ���� �� ����� � ������ � �� ������� F�� �������� �� ����G� $�� ��C� ���� ��� �=���� "���� � ��� ��� �� �� �� �=� ����� "�� � ���"�� ����� �� �����-����� . (�

������2���4 $��� ������� �� "��� �� �� �� �� � ��� ��� �� ��������-����� �� � � /� ����� ��� ��� "��� � ������ "�� � " ����� �=� ������� ��� �����-����� �� �� �� �� �� ���� ��� ��=���� ����� �� ��� ��� �� �� ��� ���� �� "��� � ����������

����������� )�� ��� �� ���� "�� � ��� ����� � ���� ���

� �� �� �� ����������� � /� ����� � �� ��� �� ��%�� � ����� ��L ����� ���"� ����� ��%�� � ���� �� � � ������%�� �� ������ ��� �� � � ���� �� �������� � � ��� ���� ���� �� ��� ���� ��

Page 219: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � $#

� �� �� �� ����������� � �� ����� � �� ��� � ���� �� � � ���

� �� �� �� ����������� � 5� ����� � �� ��� � ���� �� � � ��� ��� �� �� ���� �� � � ���� �B� ������ ���� � �� �� � ������� ������ ��� �� � ���� ��

��� �� �� ����� �� �������� � � ��������� �������� ���� ����� �� �� �� $�� �� �� �� ��� ������� �� �� ���� �� �� �� ��� ������� ������� $�� ��� �� ��� �� ������� �� ���� � �� �@�� ������� ������ ���� �@�� �� ������� �� �� ���

������� $�� �����"�� ���������� �=����� ��� � ��� ����� � � ��� ��" �����-������ ������ ����� �� ������2���4 �@�� ��

� ���������������'��4����

� O :�� O /��� � O ���� � O /��� � O :� � O

� �����&������������������

� ���������������'��4����

� + � , , � +� ' � � � ' + � � ' 2 � � ' + � � ' � � �

�' �

� �����&����������#���$�,+��

++

� ���������������'��4����

� + � , ,� ' � � � ' + � � ' 2 � �

� + �' + � � ' � � � ' �

Page 220: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� )���� �� /�����

� �����&����������� �!�����

� ���������������'��4����

� + � , ,� ' � � � ' + � � ' 2 � �

� + �' + � � ' � � � ' �

� �����&����������������2��

� ���������������'��4����

�4�'�3�4+3�'+3�4�3�4'23�4,3�4,'+3�43�4�'�3�3�4+'�4�

4����� 0���� ������ � � 5���$�� 2�������� ������ " ��� �� � �� � ����� � ��� � � %��� +���� �� ����� � � � ���� �� ���� &��� �� 2�������� ������ �� �����"��

2��������# �������������8 �����&�'����� '

$�� ����������� �� �� ��� � ���� ���� �� �� %�� � "���� ����� ��� " ��� �� �����(�)��� � �� �� ��7 ��� �� � ��� �� 2��������

��� �� " ��� �� �� ��� �� �����(�)��� �� �� 2�������� " ��� ����� ��� � �� %���

Page 221: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � ��

4����� 1'��� � � 5���$�� 2�����-��� ������ " ��� �� � �� � ������ �� ��� ��� � � ���� � � %��� E� �� ������� �� ���� ���� �� � � �� � � ��� ������ ��

$�� �����"�� ���= ����� �� 2�����-��� �������

2�����-���# �������������8 %��� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � "���� 2�����-���

�� " ���� $�� ���� � � �� �����%�� �� ���� � " ��� $��� �� ������ � � �� � � ��� �� ���� �� �� �� ���� 2�����-��� "�� � %�������� �� %�� �� � ���� ����� ���� � � UC0�= ����� �� �� ��������� ���� �� � � ��� ����� ���� �� %�� �� � �=V� %��L �� �� ��������� ���� �� � ��� �� ���� �� ����� ���� �� %�� �� � M01�CD %���

������� $�� �����"�� �=����� ��%�� � ����� � ���� � "���� ����� �� � %�� �� ������ � � � �" %�� ��� 2�����-����

� H���F��� �� ����� ��!���F����������)� ����F����������) �� #����:���������F���� ����:�������!���F���� ��&��������� ��� �����

5� ���� *�����$�� ����� �� ����� ������� " �� ��#��� � � %��� ��� � ������%�� �� ���

&��� �� ����� �� ����� ������� �� �����"��

�����# �������������8 ����8 ���������&�'����� '

�����# ����8 ���������&�'����� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � "���� ����� �� �" ��� � ���� � ����� �� �7 ����� � � ���� � ����� "�� �����

�� �� ������������ �� �� ���� ����� "�� � %������ �� �� %�� ��� �� ���� ������ ���� � � UC0�= ���� �� � �=V� %���

$�� "���� �����%�� ��" ����� �� � " �� �� ������ �� �� �!��������(�)��� �� $��� ����� � �� ������ �� � ��7 ��� �� �� ���������%������ �������� ���� ��� �� ��� ��� ��� �� +��� �� �� ������%���� ��� �� �����"�� ���=� "�� � �� � ����� ������ ��������������

Page 222: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� )���� �� /�����

S������ ����� �%�������� ��������� ���

$�� QSR ������ ����� �� �� �� �����%����� �� � �� � �� �� ������"�� N��� �� �������� �����" �� QSR ������?

7 � ����� �� �� ��� � �� � � "�� � ������ Q7R � Q5R ���� ����� �� ����

5 $�� � � �� ����# ��%�� ����� �� ����# ��%���

����1 � ����� �� �� ��� � �� � � "�� ���� � ������ Q5R � ������� ����� ������� � "���� �� ��� � �� ������ � ���������

) $�� � � �� ������ � �� ��� F��"�� �� ��� �� �� % � ����G"�� C� ���� �� �� ���� ������� � Q5R� �� Q)R �� ��� ���

�� $�� � ���� ������ � �� �� ������� �� ���� ����� �� � ���� ������ $���� � � ���� ���� � �� � ����� � �� ���� ����������9������

$�� ������ #��� ������� �� ���� � ��� �� ��� ��� � �� � �� ��� %���� �� �� �� ���� ��� � ��� ��"� ��� ��� �� ��������� � "�� ����� � �� ��� F� � �� ���� �� �� ������� Q5RG�

$�� ������ ��� ����� �����%�� �� ��� �� ����� �� ����� ��� �� ������� ��� �� N�������� �� ���� � �� ��=�� � %��� "����� � �� �� ����

E� �� ������� ��� #��� � ��� ����� �� QER� � "���� ���� ��������� �� #��� � ��� ����� � �� �� � � �� ���� $�� #��� � ��� ������ � ��F�G � � ����� � � �� � �� � ���� � �� � � �� �� �� ����� � � � ������ #��� � � �� �� �7 ����� � �� ����� ��� �� ��Q5R N���

$�� ������ �������� � � ��� � ������ �� ��� �� �� ��� � ��� � ���?

� �� � $�� ��� � � �� � � � � ��� �� �� ����������� "�� �� &����� � ���� �� ������ �� � R��� �R � R��� ���R �� ��� �� ����� � ������ ���� N��� ���� � �@���

�� �� J �� �� ���� N��� �� � ����� �� �� �� �� �� �� ��������� �� �� "� �� � � �� ������� �� � ������= ��� � �� � ���� ����� +��� �� �� ��� �� ������ � �� � �� �� ������= ��� �� � �� ���� ��� �� �����%�� �� ��� "�� �� H � J ������� $��

Page 223: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � ��

H �� �� � �� �� ��� �� � �����"�� �� �� ��� ��� �����%�� �� �������"�� �� �� ������ � �� � $�� J �� �� � �� �� ��� � � ���� � "7-�� "�� � " �� �� ��� �� � - �� �� ������ � �� � �� � ���� � � ���� �� �������#� ����-����'� �� - �� ������� �R�R �� � � ����� �� � ROR� �� � � ������ ��� � �� � ������=� ��� ���� �� � ������= ��� � "�� � C� � ������ � �� �

$�� ��� ������� �� ��� �� ��#�� �� ����� �� � " ��� $�� ����� �� �� �� �� �����"���

� 6� ��� �� ��#�� �� � ����� ������� ���� �

� 6� ��� �� ��#�� �� � ����� ���� F���� 0G ���� �

" �� V 6� ��� �� ��#�� �� � ����� ��=�������� F���� /:G ���� ������ �� ���� �� ����� �� ������� � �� ������� ��� � /�� � �� /� �� �� ��� � Q�R � � �� Q;R �� �� �� QVR� � QR� � �� QR �� �� �� Q"R�

� �� = 6� ��� �� ��#�� �� � N�������� ��� � �����%� ������ �� ���� "��� ����� ���� � �� ������� ���� �� ��� ���������� "��� ����� ��� �� ������� ��� F��= ����� �� �� �� �������� � ��� �����G� $��� �� �����"�� �� �� ��� Q�R � Q=R� �� ������ ���� ��������� � ��"� �� /�� $�� ��"� �� /� "��� ���� ���� �� � ���� � �� ������ "�� ������ C� ��� ����� �� ������ ��

�� �� ��� � ���� �� ���� �� �%��� ��%��� � ��%��� ��� � �� R��R� R���R� � R���R �����������

6� ��� �� ��#�� �� � %=������ ��� � $�� ��� �� ����� ������%�� �� �� ��� ����� "��� ����� ��� �� ������� ����

�� �� ��� � ���� �� ���� �� �%��� ��%��� � ��%��� ��� � �� R��R� R���R� � R���R �����������

� �� � 6� ��� �� ��#�� ��� Q�R� Q�R F� Q=R �� �� �����%�� Q�RG� � QR �� ��� ������� � �� ��� �� �� �� �� ���� ��� � ���� ����� � ������� ���� ����� ��� Q�R �� ��� �� �� ��� � �� ������ /��� � � ��� �� /�������� ����� ��� Q�R F� Q=RG �� ������ "���� ����� ��� QR �� ���

�� �� ��� � ���� �� ���� �� �%��� ��%��� � ��%��� ��� � �� R��R� R���R� � R���R �����������

- �� D $�� N�������� ��#�� �� �� ���� � ����� �� ���������+++ ��= � �� �� �� F/: ��� ��� � "���G� � ���� /: ��� ��� �

Page 224: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� )���� �� /�����

� � ��"��� � � � ��� ����� �� �� �����%�� "���� $�� � ������ ����� ��� $�� ����� �� ������� � �� ������� ��� � /� � � ��/� � � �� ����� �� �� ��� � R�R � � �� R;R �� ��� ���� D "�������%��� � RR � � �� RR �� ��"� ���� - "�� �����%���

� � � � �� ��#��� "���� � � �� � ����� � �� ������ �=������ ��� ��� � �� � ����� ��� ��� �

� � � � �� ��#��� "���� � � �� � ����� � �� �� � ���� #������ ��� � F�� �����%��G �� � ��� ��� ����� ��� ��� � F�� �����%��G�

�� � � � � �� ��#��� "���� �� �� �� ����� ��#��� � �� ������� ���=� ����� � � � � ���� #��� ��� ��� � F�� �����%��G�� � ��� ��� ����� ��� ��� � F�� �����%��G� ����8 $ ���� ������ �=� ����� �� ��������� � ��� ����� �� �� � � � ��������� ���������� ��� �� ����� �=� ����� � �� � � �

$�� RSR �� RS�R �� ��� � � �������� �=��� �� RS�R ������ 7 ��� �� "� �� � ����� ����� � � � ����� ������� �� �7 � � ����

� �� Q $���� � � ������ � RSR � RS�R� �=��� �� RS�R � RSQR ��� ����� ������ � � ��� �� � � ��� �� � �=� ����� ��7 ����"�� ���� ����� �� ���� � RSR � RS�R �� �� ����������� ���������� �� �� �����%� � �� ����� ��� RS�R � RSQR� ���� �� �� � � � � ��� � �� ���

$�� ��#��� "���� �� �� �� ����� ��#��� �� � � � �� �����% %�� �� ��� ����� � � � � ���� #��� ��� ��� � F�� �����%��G��� � ��� ��� ����� ��� ��� � F�� �����%��G� ����8 $ ���� ������ % �� �� �=� ����� �� ��������� � ��� ����� �� �� � � ��������� � ��� �� ����� �=� ����� � �� � � �

S � �� �� ������ �� � � �� �����

����� � � � ��� ��� � �� � � � "���� � � "��� � �� �������%���� �� �����

��� �� �� ��� ����� � � ��� F��� ���-G� �� ���� F��� /���"G�;��� � F��� W�����G� �� ��� ��� F��� 4��-G� ��� �� "���� � ���#��� �� ��� ������

� �� � ����������%� �� ���� ����� � � �����%�� F��� �� ����� ������ ��� � ������9�����G� �� S� S�� S � �� S/ �� �� ������ � � �� ������ �� �� ���� � � � ������ 6� �=������ ���� �� ���� S � �� � /���"� W������ � ���- �����

Page 225: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � �'

� �� � �������� ����������%� �� ���� ����� � � �����%�� �� ��� �� ���� ����� ���� S� S�� S � �� S/� � �� � ���� �������� ��7 ��� F�� ��� # � ��G �� �����%�� �� ��� �� �� ����� �������"�� ���� � �� ���� �� �������?

������������ ��#��� � � �� ���� �� �� ��� ���� "�� �� ������� ���� ��� �� � ���� �� ������

��#��� �� 1 ��������� "�� � � 4 /� � � �� ���� �� � ��7 ����� F� �/G���������� ��#��� ���� ��� �� � �� ���� ����� $�� ���� �� "����������� ��#��� � � �� ���� � �� ����� � "��� � ������������ ��#��� � � �� ���� �� � �� ��� �� "����������� ���#��� ���� ��� �� ���� ����� �� �� ��

� �� �� �� N�������� �� ��� �� ����� ���� � ������ � N�������� ��#���L ����� ���� � �� ��#��� � N����������� ��� �� �� � � � ��� ��� �� ������

� $�� ����� �� ����� ������� �� ��� � ��������� �� � �" ��� � �� �� �� �� � � � �� �� �7 � � � �" ������ "���� � �� � � ���� � �" ��� ��� ��� � QT�R� � �� � �� ����� �� ����� �� ��� � �#�� � ��� " ����� ��������#������2���4' ��� ��� ��

� $�� QS�R� QS"R� �� QSVR �� ��� �� �� �� ���� ����������� �� �� �� �"� � ���� � ������� �� � �� �� � � �� ������ ��=�������� ��� �� �� � �#�� � �� �� ����� �� �� ��� ���������

4����� ������� .���$�� 2������ ������ " ��� �� �� ��� � �=V� %���� � ��� ��������� �� �� � ������ �� " ��� � � � � ���� � �� ��� � ������ �� ����� �������

&��� �� 2������ ������ � �� �����"�� ��� �

2������# �������������8 ���8 �������8 ������(�� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� � "���� 2������

" ��� �� ������ �� ���� 2������ "�� � %������ �� �� %�� �� � �� ����

����� ���� � � UC0�= ���� �� � �=V� %��� 6 �� �� �� �� �� ����2������ "�� � %������ �� %�� � ��������� ������ "�� 2������

� ��

Page 226: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� )���� �� /�����

$�� ��� � � �� � ���� � �� �=� ���� � ��� �� ������

� �� �� ��� �� � ���� � ��� �� ��� ��� 2������ " ��� ���� ��� �� �� %�� � � ���� �� ����

� �� �� ��� �� � �� �= � � ��� �� ���� �� ��� ��� 2������ " ������� �" � � ���� � �� %�� � � ���� �� ���� "�� �� ��� ��� ����� ��� �� ������ �� ��� ���

$�� ��� ��� �� ������� �� �����%�� "���� 2������ �� � " ���� ��� �� �� ���� �� N�������� ��� �� F�� ���� �G� � � ����

� �� �� ������� �������� �� ��� �� � � �� �� ��� �� 2������

" ��� ��� �� ���� � F����� ���� ����� �� N����������� �� � ���� �G�

� �� �� ������� ���� �� ��� �� � � �� �� ��� �� 2������

" ��� ��� �� N�������� ��� �� F����� ���� � ���� �� ������ ��� �� � N��������G�

� �� �� ������� ������� �� ��� �� � � �� � ����

� ��� " ��� �� ���� � ���� �� ����� �� �� ������� �� ��� ����� � ��� �� ��� ����� �� �� ������� � ���� ��� � � �� � � �

$�� ������ ��"���*�� � � �� �����%�� � � ���� � ��2������ ����� �� � ��� ��� � ���� � ���� � � �� ��� ��� �� �����%�� F�� �=������ �� 2������ ��� � � � �� �� �� ��� � "���� ��� ��� �� ���G� ����� ������ �� %�� ���� ��� �� ������� ��� ������������ ���� "�� �� ������ ��� ��� �� �� � � � �� ��� ��"���*�� � $�� ���� � ��"���*�� ������ ��� ��� �� � � � M��� ����� � �� � ��� � ��"���*�� ���� �� �� �����"���

� 7��&!�5�&�!��I��� �� �����&��� &�����&�&�JD�J��� ��� �����

$��� � ���� � �� ��� ��� � �� " �� �� ��� � � �� %���

������� $�� �����"�� �=����� ���� �� � � �� � A���� �� �=� ��" ��� �� N�������� �� ������ � � %���

�$� ���� ������ ����� ��� �� ��� ��� � ��� ��������� ��� ���� ��� %���� �� ��� �� ����� ����� ��� ������������

Page 227: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /����� ��++ ��� � �!

� #���������J$��:���F���0���J������)�$��:�����+���

+=����� �� %�� ���"�?

( %? %���������� %�? %�

%? %���������� %�? %� %(IIIIIIII&

%���������� %�? %� %(IIIIIIII& %($�@?&($�R

%�? %� %(IIIIIIII& %($�@?&($�R %(�?

%� %(IIIIIIII& %($�@?&($�R %(�? %((((((((((

5������ � 1�3��� 5����D� � @� �� ��� �� � � � ����� ��"�� "�� �� �7 �� � " ����� ��� �� "�� ����� ���������� " ��� �� ��� � �� %��� $����������C�� � �� � ��� ������ �� �� �� ��� �� �� �� " �� ������� ���� �� ������ ����

�� ������ �� �D� ��� � � ������� "�� � " �� � � %�� � ����������� ���� �� ����� ��"��� � �� "� � �� � �� �� ��� �� " ���� ��� �� �� �� %��� 6� �=������ � )��,� � ����� � ���� � �� � � ������� � �� �� ��� 5 �������� � ���� "���" � ���� �� ��� ���� �� ����� �� " ��� �� 6� ����� � �� �� ����� �� ������D� ��� � � � ������ �� ���4 �������

&��� �� ���4 ������ ��� �� �����"�� ���=�

���4# ������������� '

$�� ����������� �� �� ��� � ���� ��� �� �� %�� "���� � @� ������� � N ��� ��� �� ���� ���4� ����� " ��� ��� ��� ���� �� �� ��� � @� � � � �� � �� �������� %��� � �� %��� $��������� � � �� ��"� �� ���� ���4 "����� ������� ����%�� �� " �� F�� �=������� ������� �� ������ �� � � � ��" ���� �� � � G�

��� �� �� �� � ��� � �� ���4L ����� �� " �� � �%�� �� ���������� " �� ���� � �� ����� �� %��� $�� ���4 ������������ �� ��� ����� � " �� ��� � ������ �� �� �� �� ���� �� � �� ��� �� � %���

�� ������� ��� ����� *����� ����� $�� 2������ �� ������� ������� ��� �� �� ����� � � � ��� � � %��� $��� ���� �� �� ��� ���� �� " �� � �� ������ ��� " �� � �� %�� �� ������� ������

E� �� ���� �� 2������ �� ������� ������� �� �����"��

Page 228: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� )���� �� /�����

2������# �������� '

�������# �������� '

$�� ������� � � �� �����%�� �� ��� �� �� %�� � "���� ����� ��� ��� �� �� � � � �� �� ���� 2������� ����� ���� �� %�� �� ��=���� �� " ��� � ���7 � � � � �� %��� $�� ������� ������������ � �� �� �� �� %�� �� �� %�� �=���� �� �� %�� �� ������� �� ���F�� �=������ � �� � �� �� ��� %�� �D� ��� ����G� ����� ��� ���� � � �

$�� ������� ������� ��� ��� F�����%�� �� � ���� � � � ��G�� ��� ����� � ��� � ���7 � ����� � � � �� � ����� ������ � � ��� F�� �� �� "�� � �@�� "�� �� �� �� �����G� $������� 2������#��� ���' �� �������#��� ���' � � �7 ������

������������� ��� �� � 2������ � ������� ���� �� ���� � �� ������� � ��� �� � ���������� ��� 2������ � ������� �� ��@��� ����� ���� " ��� �� � � �������� �� �� �� � � �� � ����7 � ��� ���� � �� %��� $�� ��� �� �� ��� ��� "�� �� ��������4�� ����� �� �� 2������ �� ������� ������� "��� � ���� ��� %��� �� ����� ������� �� �� ��� ������ �� ������

"�. ��������� ��������

�&���� ������ ������ � ����� $ �������$�� ����-��� �� 2�����-��� ������� ���� ���� � ������ 5���� 5�: �� "� � "�� ���� ����� � ��� � ���� �� ���� �� E� �� �� �� ������� ������ � ���� ��"�� ���� "� �� ����� �����"��

�������# �����8 �-��� '

�������# ���������8 �-��� '

�� �� ���� �������#%%%8�-���' � � ��� � � � � ��� �� ���� �L ���� ���� � � ��� �� ���� �� � � � � � ���

> � � �� "�� � ��� � � ��������� � ������ �� ��� ��� �� � ������� � �� ������� � � ��� ����� � � � ��� $�� ��� �� ����������� ����� � C� �� ������� � � � � �� �� ��� ���� ��� ���� � �� ������� � �� ���� � � ������ �� ��� ��� �� � � ������

Page 229: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��! ���������� ��++ ��� � �#

&��� ��� ��"�� � ��� �� ���� �� ���� � �� ��� � "�� ������ � �� � � �� � �� � � ��� �� ���� �� � ��� ��� � ��� "���� �� � �� � � ��� �� � �� ������ �� �����

� �� �����"�� �=������ ����� ���� � � � �� � � ��� �� ���� ��$��� � ���� � �� ���� ���� � "�� �� � � ������ � �� ���� �� � ��� ����� �� �� � �� �� ���� � �� ������ �� �� ��

� ��������JX��� <����)J�:������

I02� /�/� //�� //:� 5�� 05� //:� //2� /��� //�� /�5J

� ������������2�+���2��,�����2+�2�2,��:������

Q$��R

������ 0���� !"������� � ����� ���$�� ���� ������ ���� � � � �� �� ����� ����� �� � �� �� �������� ����� �=� ������ $�� �=� ����� �� ������%��� � � ���� �����

)�� �� ���� ������ �� �����"��

����# �����8 ���� '

$�� ����� � � �� �� �� � �� � �� �� ���� � � � ���� ��� � ������=� ����� F� ������ ��� �� �����"�� ��%���G �� ��� �� �������� ��� ���=�

E� �� � ���� �� � �� � ������ � �� ���� ������?

���� ��� $��� ������� �� ���� �� � ����� ������ � ������� �=� ������� A�"��� � ���� ����� � ��������� ���� ��� �������� ���� ���� ��� �� ����� �� �� ������� ���� ����

���� ������ �� ������ ���� � ������ � � ����� ��������� Q>R ���� � �� ���� � �� � � �������� � � ����� Q<R� �� �� ������� ���� ������� ��� ���� � ������ �� ����� ��� ���� ���"������ ��� � ����� � � �� �� � �� �� ��������� $�������� ������� "���� ��� ������� �� ����� ����� �� ����� ������� � ����" � ������ �� ��

�� �� ����� ������ � ���� ����� � ���= � � � ���� ��� ���� � � F"���� �� �� �� "�� ��������G �� �� �����"�� �� ��

Page 230: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

$ � �� ���� �� )���� �� /�����

��������� �-��" �� ����<

������������� #���������'

$�� �����+�� ������ ���� ���� �� � � �� �� � � F�� �=������ A7A���"������� � ���"������ ��� � �����G� $�� ������� ���� ����� ����� �=���� ��� ��� ������ "��� �� � �� � "���� ����� �������� � � �

��� �� ���� ���� � �� �� ����� � ���� ����� �������� ���� ��� �� � ������� � "���� �� ���� � ���� ��� � � ��������� � � ����� $�� ����� ������ � ���� ���� � �7 � � � ������������� � � ����� �� ��� ���� � �� ��� ���

� ������J�'':',J��

�O � O �

� ������J����,02�J��� D�

��/2//����0/

5� ���� �&���� � � $� ������$�� ������ �� ���� ������� � � ������ � �����D����� �����D���� �=��� �� ��� ��� � �� � " �� � ����� � ��� ������ �� %����

&��� �� ������ ������ ��� �� �����"�� ���=�

������# ����8 ���������&�'����� '

$�� "���� �����%�� ��" ����� �� � �� �� �� ������ �� �� �����!����(�)��� �� $��� ����� � �� ������ �� � ��7 ��� �� �� ���� ������%������ �������� ���� ��� �� ��� ��� ��� �� 6� �� � ��� �������� �0# .�������� ���� � ���� �//�

$�� ������ ������ � � � � �� ������ �� �� ���� ��� ��

&��� �� ���� ������ �� �����"��

����# �����&����8 ���� '

$�� ���� �(���� � ������ �� �� �� ������ $�� "���� �����%����" ����� �� � �� �� �� �� � � ��7 ��� �� ���� ��� �����%�����

Page 231: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" ���� �� � ���� ++��� � �

F�� �������� ��� �������� ��� ��� �G ����� �� ��� ����� � ���6� ��� ���� � �� "����� ��� .�������� ���� � ���� /10� $������ ������ � � � ��� �� �� ����� ��#���� # � �� ���

�� ��� ���$�� �����"�� �=����� ��� � ��� ������ �� ���� �� ���� �� �

N�������� ��� �� "� ����� ��� �=� ������ �� � N���������� ��� ����� ���=� �� ����� % �� ��� ����������� $��� � �� ���� �� ��� �� �� �� ������� ��#��� ��� �����

� � �� ������&�JD�0& D� D J�����&�I�������,������,���

� ?M Q5�/2 ��F5G �V[���4:\QQ[R

� �����&���JD& D� D J��

I5�/2� ��F5G� ���F5GJ

�������� ��* 6� ��� ���� � ������ ����� �=� ������ ����� � �� ����� ��� ����� ��� #0� &��� "������ ���

"�0 �� �� � � ��%�����

�� �� ���� �=�� ���� � �� ����� � �� & � &OO � �� ����� ���� ����� ��� �� �� �D� ������� ���� ���� � ��� ����� ���� �������� � $�� ����� �D� ��� � � ����� � ������ �� ���� �� & ���� � �D���� � ��

� ��� ��� �� ����� �D� ������� "� � � � ������ ��� ���� & �� � �� �� $�� ��@� ���� �� � ��� � � �� �� � �� ��@� ������"�� �� ����� �� & ��� ����� �� ��" �� �� ���� 6� �=������� �� & ��� � �� �� � � ���� �� ������ � ��� � � @� �� "����� " ��� �� �� �� � ������ � ��� � � ��#��� �� �� �� ���� �������� �� ��� �� �� �� ������ ������ ������ � � � � �� ���� � ����� ��� � ���� �� �� �� $��� ����� �� ��� ����� � "� �"�� �� ���� � � � ��� �� � ������ �� ���� �� " ��� ��� ���� �� � %=�� ���� � @� �

(����� ��� �� ���� ���� �� ���� ������� � � ��� ���� �� ��� �� �� ����� �� �7 � �� �� � ���� ��� ���� � �� �������

Page 232: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� �� ���� �� )���� �� /�����

$��� ����� �� ���� ���� � � � ��� �� � ������ �� ���� �� �������� " �� ��� �� �� ����� � �� �� �� ��� ��C��

��� ��@� ���� ��� �� �� �� �� � ����� ������� ������� ��� �� � �� "� � �� "� & � ����� ���� �� ����� E� �� �� ���� ����� ���� �� � ���� �� ��� � �� ����� ��� �� � � ����

� ��� ��� �� �� ���� & � &OO � �� ����� �=�� ����� �� ��� ������ ���� � ��� ��� �� ����� �D� ��� � ��

"�2 ����������

$��� ����� � ����� �� ������ �� ���� �� �� �=�� �� ��� ������ � �� � �� ������ ����� ��� ���� ������ � ������ �������� � ������ � ����������� � �� ��� � ������ �� ����� ���� ������ ������ �� ������ � ���� ������ �� ��� �� � �=����� � �� ������ �� ����� �� ���= �� ����� ������� �� �� ��� �� � ��� ���� �� �� �� ����� �� ����� 6� �� � ��� ���� � � ������� �� ��� ��9� � � �� ����� � ����

Page 233: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� ����� ����������

�� ����

5��������� ����������

$�� ��� � �� ��� ����� �� � ��" � �� �� � N�������� ���� ������ ������ E� �� ����� � �� �� �����"���

� (��"� � N�������� ���� ����� �� � �� � � � ������ ! ��� �������� ������� �� �� ���� �

� A� �"� � N�������� � ������� ! � ������ ��� ���� �� ��� ����� � �� �� ���� � � � �@� � �=������� �����

� ���� �������

� .����� �� �� ��� &�����

� A� �"� � 6������-�� � ��� �

� 6�����-�� ������ � �����

� +=���� �� ��� &�����

� )��� �� /��� -������

4�' #�� %� ������ � �������

9�� ������ �� ���� ���� �� �=� ������ � �������� ����� �� �� �� �� ������� � ����� �� �=�� ������ �� � ��"� � � ��� � ���� ����� ������ - ������ �����%� ���� ��� ���� ������ N�������� ���� ����� "���� �� ��� 7 ����� �� ��� �=���� �� ������� ���

$��������� �� ���� ���� ���� � � ��� �� �� �� � �� ������

��5

Page 234: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� �+���� � ���� ++��� �� � ���

/� �� ��� � ������ ���� �������� � �������� ��� ���� 6� �=�������� � � � ��� �� �� �� �� ��� ��@� ���� �7 ����� � ��� � ������ ��� ���� ��" ��������� � ��� ���� >����� ���� � �� � ������������ � %� �� ���� ��� ����

�� $�� ������ ��� �� �� ����� � � � � � ����� ��� �� �� ��� �� � ������=� $� �� ��� �� ������� �� ���� �=� ����������� � � N�������� ��� �=������

5� � ���� ������ � �� "���� � � ���� � � �=�� ��"� � &��� ��� � ������ ��� �� �� � ������ � �� ��� � ��� �=����� �������� 6� �=������ � ��� � ��� ��� � ��� �=����� ��� ��� �� ���� �� �� �� ����� ������ �� � ����

&�� �� 3����� �� �����

$�� ��� ������ �� �� � ��� � ��� � ����� �� �� �� ��� N�������� ���� ������ � �� ��� ����� � ���� �� � ���"� � N������������� $�� ����� ���"� � N�������� � ������ ��� � ������ ������� N�������� ����� �� �� ������ � ����"� ���� ���� � � ��� � � � ������� $�� ��� ��� �� ����� ������� "���� ��� � ��������� �� /�� ��� ���� �� ���� � ��� �� ����� �� ���� ������

� ����&�I���

5�/2/�1�:�2

E� �� ��� �� ��� �� ����� ���� �� ������ �� ��� � ��������� � �� ��������� �� ��� �� � ���= � ���� ��� ��"�� �� ������� �� ��� �� ����� �� � ���= � ���� �� ���� ��������� ����� �������

� 5�)��� �� 2�� ����&�I���

5�/2/�1�:�5�01315�50�

� ����&�22��I���

Page 235: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� %�� 6 ���� �� ����& � '

5�/2/�1�:�5�01315�502:�:25505�31���002/�13/:151153�/��0��132122�1�5�30/:2�:�0:���0110:�0�520��52�//3�:310�/20�0:�/5�0��5�::23�15022:�1����0��5/3��5�12�0/�02�0///32���02/��3�/150��//����1:22:��120�1�215�50��

� ����&��-������

/�2/2�/5�:�535�1��200

� 5�)��� �� 2�

$�� ��� �� ����� �� ������� �� �� ��� �� ��� ��� ������� ����� ��� � �� ���� ������ (�������� � �� �� ��� �� ������� ������ � ���� �� � �� � ��� �� ��"� � �� �� ��=�� � ��� ��� ������ �� � ����� �� �� � �� ������ �� �%�� �� � ������ � ������� )���� ��� �� �"� � ����������� �� N�������� � ������������ �� �� �� �� �� �� ���"� � ��� ���� � N�������� ��� �� ���� /��

������ ��� N�������� ���� ���� � � � ��� �� � '� �� ���� �� ��� "�� �� ������ �� �� ��� ���� ���� � ��� � ������ � �������� �� � ��� � �� �������� �� � ���@ � � � � ��� � ��� � ������� ����� ����� �� �� �� �� �� � �� �� � ��� N��������� ������ ��� ��� FO� �� � �� � � G �� � ��� ��� ��� 6 �� � ����� �� ����� � ���� � ������ � �� �� �� ������ �� � ���� ����� ��� ���� �� �=������ �� ���� ��� � ����� �� ���� �� ����� ���� �� ������� � ���� �� ���������� � � ��� �� � "���%I �� �� �� ���� ����� F ���G� ����� �� �� �� ������ 7 (�� ���� ���� � �� � �� � 2� ����� ��� � � � �� � �� � �� � :� ����� ��� � � � ��"� ��� ���������� � ���� � ������ ��� ��� �� ����� ��� ���� ������� ��� ��� ��� � �� �� ��� �� ��

(��� ��%�� ��� ��� ���� � ������ �� � ��� �� � � �� �� ����� � ���������� � ����� E� �� �� ��� � ���� � ��"� ��� �� ���� ��� ����

� � �� 9��������4,�� ��200��

# ?M

� �

�!�

� ��

Page 236: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� �+���� � ���� ++��� �� � ���

� ���!����� � �

�!�

� ��

� ����&����

/�52/1�22/0

� ��� ������ ����� �� %� � �=�� ��� ��� � �� �� � �� ���=�� ��� �� �� ����� ����� ��������� $�� �����"�� � ��� M�� ��� ������� � ��� �� ����� � � ���������� ��� � ��

� - �� 9��� �4MM 3 ����4MM � \����22� 22�� ��200�+ ��

9 ?M

� ���

��� F/� �G���

7F/��� ���G��

� ���!��-��

�30���1��2�30���//31����20:��2525��1102��50210��1�1:1�52�/3�2/3:�����3/���5013�3:/1�:0�0/::1:22���/02/:1��232��23/0/0�313���12�1:/3::50:3313/3�32:52/521�:22���3�3��/0://�/25�3��/�35���/0//�10121��13��20221

��/332/�0�1/�53/�/:2:0035�

0213/���//�1525021:/3:3��/:3/�5/�/5�25�/��2//20:/�5�0�:��/223������2��/5�5�05�/5�503/302�55�3���215:�:�530�:5�52/53:�0��535:350552:�05/0552:/:���0:://55�3/�3:�:�/:�/205��05�:���155:�:1//0��/�2::�/23/0/01:��::5135�2/105�����3/:�:���1��:02�:2�:112023/553��:050101��30/��������

/

7F/��� ���G

� ����&�-��

Page 237: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� 4 ��, �� 5�� ����7���� �+���� � !

��5�2:��35:3 /���

$�� "� � ���� � �=������ �� �� 0�� ������ ��� �� ��� �� �� ��� ���� �� �� �� ���� ����� % � ��� � ��� �� �� �=� ������ ������������� $� �� "�� ���� ��� �� �����"�� �������� �������� ���� � �������� ��"� �� �� ���� � � � � N����������� �=������ ��� �� �� �� ��� �� �� �� ���� ��� ����

� ����&� �����4MM 3 ����4MM � \����22� 22�� ��200�+� ��

��5�2:��35:3 /���

��� �� �� ��� �� ���� ���� ������ �� ��� �� ������� �������� �� ��� �� �� �� ���� �� ��� � � ��� �������������

� ��� ��� �� �� � �� ���#0��#%%%'' � ���#3� #%%%'' � �����#�� ��#%%%''� � � �� � ��� �� �� �� �� ������ � �� ���� ������� ���#���#%%%''� ���#�� #%%%''� �� ���#�� ��#%%%''��� ����� 4�� ����� �������� ���� ��� �� �� � �� ����� �� ��� ���� ��� 7 ���� 6� �=������ ���#���#��B�'' . ���#(B� E

�*#(B�'' "���� ���#K���K#��B�'' ���� �� � N�������� ��� �=������ � ���#���#��B�''�

&�� 4��5�� ���� ��%6���� ������

����� �@� � � ��� ���� � ���"� � N�������� ��� �? ���� � �� �"� � N�������� � ������� A� �"� � N�������� ���� ������ � �������� � �� ���� �� ���"� � N�������� ���� ������ A�"���� � �� �"� � N�������� � ������ ��� ��� ������ � �� ����� � � �� �� ��� �� ���� �� � �������

$�� ���4 ������ ���� ��� � �=� ����� ��� �� �"� � N�������� � �������

� ����$&� �, ��

��5555555555555555/2

� ����$&� I� ��

5�/2/�1�:�5�01315/�

Page 238: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

" � �� ���� �� �+���� � ���� ++��� �� � ���

4�� ����� ���� � � �� �� � �� �"� � N�������� � ������ ���� � �� �� ��� �� ��� � ������ $�� ������� ��� �� ���4#������'���� �=����� �� �� ������� ��� �� ������� ������

� � �� ����$&�5�)�����

� ?M /��

$�� ��� �� ���4 �� ��� � ������ �� �� �� ��� ��� ����� �� ������ �� �� ����� � ���4#������'� ����� � ���� ��������� "� � � �� ����� �� � �� �� ��� � �� ���4#������' �����%������ �� �� �� � �� �"� � N�������� ���� ������ ����� � � ����� ��� �� �����/� ���"� � N�������� ��� � � ������ �� �"� �N�������� ��� �� �� �� ���� �� �� � ���� � ���� /�� $���= � ������� ����� ����" ����� � �� �� �� �� ��� � ��� � ��������� �� �� � ���� � � � ���7 � �� �"� � N�������� ���� �����

� ���� �� ��� � I� 3 � ������ � ��

���� ?M �F�!� � /

&G

� ����$&� ���� ��

/�2�5��505:02/:0:/3

� ����&���!������� ���� ��

/�2�5��505:02/:1

$�� �� �� �� ���4 � �� ��� ��� ��� �� ���4#������'�� � � �@���� �� �� ��� � �� �������

� 5�)��� �� ��+��

3 �� ?M 2:�0

� ����$&� ���� ��

/�2�5��505:02/:0:/3

Page 239: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� 4 ��, �� 5�� ����7���� �+���� � #

� ����$&�5�)�����

/��

� 5�)��� �� 2�

3 �� ?M /�

E� �� �� �� ���4#������' ��� � � ��� ��� "���� �� �"� � N�������� � ������ � ������ � ��� � ������ � � �� ��� �� ���������� �� ������ �� ���� �� ���4#������'� �� �� ����� ������� �� �� ���� �� �"� � N�������� ���� ������ ���� "���� �� ��� �� �� ���"� � N�������� � ������ � �� �� � ������ ����� "�� � ��� ������ $�� �����"�� ������ � ���� � ����� ���$������� �� ���� � �"��� ���� �� ����� ����� ���� �����"� �� ���� �� �"�� ������������ ���� � ������ �������

� ����!��� �� �����������!������� �& 5�)��� % ����$&�5�)���� �$��� ����&�����$&��������� ����� ����&�������� ��� �&�� ��� �����

$�� ���4 ������ ���� ��� ��� ����� � ����� � � ����6� �=������ �� ��� ���� �� � ��� �� ��� �� �"� � N�������� � �������

� ����!���� 9��������4,�� ��200� ��

=����� ��� ����!���� !��:�� �� ����!��� &!������ *9��*�� ����$&

E� �� ��� ��� �� ������ � ���� � �� �� � ��� � ��� � � �� ��� � ���� �� �� �=� ����� ��� ���"� � N�������� ��� � ������

� ����!��� �� �����������!������� ����� ���!���� �& 5�)��� % ����$&�5�)���� �$��� ���� ���!�� ����&�����$&��������� ����$�� ��� ����� ����� ����&�������� ��� �&�

Page 240: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� �+���� � ���� ++��� �� � ���

� ��� �����

� ����!���� 9��������4,�� ��200� ��

$�� ������ � ���� � � ������ � ����� �� ��" � " �� � ���� ���� �� �� �"� � N�������� � ������ "����� ���������

%���6� 0��� $��� ����� ��� � ��� ��" � ��� ������� �� �� �"� � N��������� ������ � ���� ��� � �������� ��� �=������ ��� ��"�B� ������E� �� �� ��"�B� ����� � %� �� ���� ��� ��� � �7 ������� ����� /�� ���� ����� �� �� �� � ��� �=���� ��� �� � �� �7 ����F�G M �� �� ����� ���� �� �� �����"�� �� � ��� �� �������� � ��� ��� �=������

���� M �� � �F��G

� �F��G

������� $�� ������ � ���� � ���� � � ���� � �� �� ������� ���� � ����� ��� �=���� ��� ��� ")� �� �� � �� �7 ��� �F�G M ��$�� �������� � ���� � ���� ���� � ��� 1 � �������� ��"� �� ����� �� �� ��@� ��� ��"�� �� �" ��� �=����� �� �� � ���� ��� �� ������ $�� ������ � ���� � � �� �� ��7 ��� �� ��� �=������� � ���" � �������� ��� �=�������

� ������� �� ����� &��������!��� �&��������!���� �2���! ����� ;�������� �� ����� ����� ���#�� ���� �� �2�� ���# �� ����&� ���� � &��������&������ ��� �� ;� #$��� �:�����#������ � 24��5�)���� ��� ���� �� ���#�� ������������� ���# �� ����&� ���� � &��������&������ ��� ��� ���� ���#�� ��� �����

$�� �����"�� � ���� � ���� ���� �� �� ������ �� � �� ������ ����� ������ � ��� ���� � �������

� ;�#��� �� ����� &��������!��� �2���! ����� ;�������� �� ����� �&�� �& �� 5�&��� �������2��� ��������&� �&� �2� ;��� ��� �����

Page 241: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� 4 ��, �� 5�� ����7���� �+���� � ��

)�� 1�2��� � ����� �� �7 ��� �� � � M ��

� & �� � �� �4 � �

� ?M �� �� � �

� ;�#����&� 0+� +��

/��

/�2/::::::3

/�2/2�/�:0:

/�2/2�/5�:�

/�2/2�/5�:�

������� $��� �� ��� �� 1�2��� ��� �� �"� � N�������� � �������� ��������� (��� ������ ��� ��� � %� � ��� �� � � ��� ��� ��()*#(5������'� 1�2��� ��� ��� � � � �� �� � �� �� �� �"� �N�������� ���� ��� � � ��� �� ��� ��� �� ������

� ;�#��� �� ����� &��������!��� �2���! ����� ;�������� �� ����� �&� ���!���� �& �� 5�&��� �������2��� �& 5�)��� % ����$&�5�)���� �$��� ���� ���!�� ����&�����$&���������&� �&� �2� ;����� ����$�� ��� ����� ����� ��������&� �&� �2� ;��� ��� �&�� ��� �����

1�2��� ��� �� �"� � N�������� � ������ �� �� �� ���� �� � �� �� �� � � ���"� � � ������� A� �"� � N�������� ���� � ���� �� � ����� �� �� ���"� � N�������� ��� �� ������ � ��� ���� �� �������

� ;�#����&� 0+� +��

Page 242: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� �+���� � ���� ++��� �� � ���

/��

/�2/:::::::::::::32

/�2/2�/�:0:�32��100

/�2/2�/5�:�532:0103

/�2/2�/5�:�535�1�/2

/�2/2�/5�:�

1�2��� � � �� ���"� � N�������� � ������ � %� � �� ���� �����"�� .����� � ����

� F �� > �� \�����U�� >��

/ ?M � .�����'F/� G

� ;�#����F� �� +��

2

(��"� � � ������ �� ��� ���� �� ���4 ���� � �����C� M�����X�� �� �������� ���� �� M�����X ��� �� �-�� ������ �� ������ ������ "���� ���4 ���� � ����"�

� ����$&� \�����U�� �� ��

=����� �� � :�� ��:��� ��� ��� �!������� �� ����$&

)��� � ��-5���4 ����� �� � �� � ���� � 1�2��� � ���� �� ����"��� � ���� � � "� � "�� ���4 ������

$�� � ���� � 1�2��� � ���� � � �� ��� ����� "�� � �� ���� %� � ������ ��� �=������ $�� ���� �� �� �� ����� �������� ������ ����� �� ������ � ���� � "���� �� ����� � ���� � ���4�"�� � ��� ��� � � � �� �"� � N�������� ��� �� �� � � �� � ���

� ����� ���� ����'� $ %� ����)�� �� ���4 ������ �� ���� ����� "�� ��� �� $�� ��� � �� �� ����� ��#��� ����"�� � � ���� � ���4 � � � ��� �� ��� ������ ���������� � ��� � ���������� � ���� �� � � �� ��� �������� � ���� ���4 ������C�� ��� � C� ��

Page 243: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� 4 ��, �� 5�� ����7���� �+���� � ��

������� $�� �����"�� � ���� � ���� ���� �� ��������� �O��O2���

� � �� �������� ����� �� ��� � �� ������200��� ��2� �� �� ��� �� +�� ��� �� ��� �! � ����3�4�� ��200 ��� ��� �����

� �����

� O ��O 2��

�� �� ��� � ������ � � � ���� � ���4� �� ��� ��%� �� ������ � �� ��� ��-#(%%�8 ��8?8$ ' ���� �� ���� � � � � ��� ��� ���4� E� ��� ��"��� � ������ � � � ���� � ���4 �� �� �� ���� " �� � ��� �

� ����$&���+0����

/���251111111111113

E� �� ���� ���� � � �� �� ��� � �� � �� ���� ����� � ���� ����4�

������� $�� �����"�� � ���� � ���� ���� �� ��� ��� �� � �� ��� �=� $�� #�8�' � � � �� � �� �� ��������

� ��� �� ����������������� ���� 3 ���� � ���� 3 ������ ��� �����

� � �� ������ ���,� ,���� ���M�� ��

� ?M

����

5

5

22

1�� �

���

� �������

Page 244: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� �+���� � ���� ++��� �� � ���

5�� � � /

5

�� �� ���� ��� � �� ����� � ���� � ���4� ����� ��� �� ��� � ��� �� ������� � �� ��8� �

� ����$&� ������ ��

���5555555555555555/2

���4 ������ � ��� �� ��� �� �� �� #�8�' � � �� �� ���� ���������

� �����

�� �

�� �� "� ���4 � ������ � � �� �� �� ���� �� � �� ���� � � � ���� �� �� � � ������ �� ��� �� �� � �� � � �� ��� ��$�� �� ��� � �� ������� � ���4 �� �� ������ � ��� �� �� "����4 � ������ � � �� �� ��� � �� �� ���������� � �� ������������

� ����$&� ���� ������ � ��

���5555555555555555/2

��" �� � � �� �� N�������� ��� ��

� ��������

I��::::::::::::::::�1 � ��3�����������������J

I��2222222222222222�� � ��J

$�� ���4 ������ ��"��� � � � ����� N�������� ��� �� �� �� ��� � ����"� �� � ���� ��� � "���� � �� �� ��� �"�� �� ���� � ���4� �06 "������ �� "� � �� �� �� ��� � ����� �� �� �� � ���� ��� � � �� �� � ��� ��� �� �� ������

E� �� ���� � ��� � ��� �� �� �"� � N�������� ��� �� �� ����"�� �� ���- ������� - ��� �� �� ��� ������ �� ���� ����%����� � �� ���� ���������� � ����� � ���� "���� ��� ������� �

Page 245: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 5�� ����7���� ������ �� � ��� � �'

� ��� �� N�������� ��� ��� 6� ������ �� �=������� ��� � ����-��/���"� �� �W������

&�" ���� ��%6���� ������ �� �����

����� �� �� ��� �������� ������ � �� �� & �� �� �=�� ����� � �� ����� ��� �� � �� �� 53 �� 5�2� �� ������ ��� ��� � �� �� ��� ��� ��� �� 9��� ���� �� ������ � ��� � � ��� ������ � �� ����� �� ��� � �� ���� �� # 8�'� $�� % � ���� �� ������ ����������� � ������ $�� ����� ���� �� ������ �� �"�������$�� ��� �� ����� ��

"� /���

+=������ �� N�������� ��� � � ����� � � 5�/2/�� /��� ������3�/��!�� �� �!/�52�:3� $�� ��� "� � � �=������ �� N�������� ��� ��� �� � �� ��� '� ����� ��? �� L�L ���� ��� �� ������ �� �=���� �� �� ��� � ( �� ��� � �� ���� �� ��� � �� ��� ������= ��� � F�� �� �=�� ���� � �� ������G� �� �=������ /�� O ��3 ��

� ���� ���=�� ����� ����� ����� ��"�� �������� 9���� ���������� 9����� $�� ���4 ���� �� F���� ���� � ����� 2��G� �� �=������� "� �� "�� �� �"� � N���� �� ����� �� ��� � �� �� ������ �� ���� �� ���� � "�� �� �"� � N�� � ���� 4�� ����� ��"��� ������ "� �� "�� ���"� � N��� � �� �� � ��� �=���� F� � ������ � ��� ��G �� ���� ���� ������

6��������� ��� ������ � � ������ ��� ��� � �� ����������� �� �� ��� F�� ������=G ��� �� �� ���� ������ ��� ���� ���������� ��� ���� ���� � �� ������ ���� ������ ��� F�� � � ��� ��� �� ������� �� ������� ��� �G �� ������ � ������ F���� �� �� ������� N�������� ��� � �� %��G� �� �� � ���� ���� � �� �� ����� ���"� � N�������� ����� �� �� �� �� ���� � ������? �� �� ������� �� � ������ ����� ��� �� N������������ �����

(��� �� �� �����%� ������ �� ���� ���� ��� ������ � � � ������� �� �= ��" �������

�$����� 5��������� ���"� � N�������� ���� ���� � � �� �� ��� � ���� /��$�� � ������ �� � ���� ��� �� ��� ���� �� �� ���� �� �������$�� ��=�� � �=���� ���� � �=���� �� ��=�� � ��� � ��

Page 246: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� �+���� � ���� ++��� �� � ���

������ � � ������ "� ���C� ������� E� �� ���� �� ��� �� �� ���� ����� � �� �� /���9���� �������

$��� ���"� � N�������� ����� �� ������� �� � � �� �=������ �� �� � � ���� � �� �� �"� � N�������� ���� ���� ��"�� �+++ 3�2� $� �� �� � � � �� ������� �� ������- �� ��������F"�� �+++ 3�2 ����� � L11L� ����� L1�� 1� ���LG� &�����= ���� � � � �� ����� �� ��� �� ���� � " 7 0E- �� ���

�� ���� � ��� � �� ��� ����� �� �� �� N�������� ��� ������ �� C� �� )%� ���� �� � ������ ��� � ���� ����� $����� ����� ����� ����� ��"�� 7)% �� 5)% "�� ������ �� � ����� ����� ��� ��@� ��� �� � ������ � "�� ������ "�� � ����� �� �� ��#"'� "���� ���� � ������ �� �� ��� �� ������ ��� �=���� ��� ��� �� ��� �� �� ������ � �� �� � ��� � �� ������ ��� �=�� �� ���� ��

6� �� � � ���� ����������� ����� �������� �=����� �� ���+++ 3�2 ��� �� � �� ���� ������ �� � ������ ��������� �� ����� �� ���� �� ��� ��������� �� � N���� $� ��� �� � ��� ��������� ��� � ��� ������

�� 3 !������ �� �� �� � N�������� � ������� "���� ��� ���"� � � �� �"� � N���� �� � � ��� ������ ���� ��� � ��� �� � ������ ��� ��� � � �=� ������� ����� �� "� � "�� �=�� F��������G�=� ������� $�� ��@� ��� ��"�� � �=�� ��� ��� �� �� N�������� ��� �=����� �� ������ �� ������/ ����� � 6� �=������ � ������� �7 �� � N�������� �� ������ �� &�

� �� �� ����&�I���

& ?M 5�/2/�1�:�2

����� � �� �� � ����� ��� � & � � ����%�� ����� ���� �������� �� �� � �� ���� � ��� � �� /�� E� �� ��� �=���� �� � ��@� � ����� �� ���� � ��� �� ����� �� ��� � �� ������ � /��

� ����&�+��I� � ����

���2/��/ /���

9� ��@ � � � � ��� � �� �� �� ������ �� �� ���� �� ��� �� � �� �� �� ��� � ������ ��� ����� +��� ��� �� �� �� � �� ������ ��� ��� � "� N�������� ��� �� �� �%������ �����

Page 247: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� 5�� ����7���� ������ �� � ��� � �!

�� � �� ��� ���� � �� ������� � �� N�������� ��� ������� �� ��� � �� ���� �� �� � ���� ��� � ��������� � ��@ � � �

6� �=������ � ����� �� � ����� "� ������ ��� � "�� ������. ()� $�� �� � �� ���� ���� � "�� ������ � ����� �� �� ����� % � � ������

� ,�+�1�M2 3 M,1�++�

�51/�/:3�1/�/51��0�

� ����&�,�+�1�M2� 3 ����&�M,1�++��

���51/�/:3�1 /���

������ �� ����� �� �� �� �� ����� � ������ ��� ���� F�������� � � ����� � ���������� �������� � �7 � � ��G � "� N�������� ��� �� �� �� � �� �� �� ���� � ��� �� ������ �� ���%���� � ����� �� �� ���� ��� N�" � �� N�" ��� �� �� �� �������� ��� ��� � ���� � � �= � ���� � "� ����� �� ����� ��� � �� �� ��"� �� �� ���

+�� ��� �������� � � � ���� ��� �� � � �� ��� � ������ �� �� �� "�� � � ���� "� ��� � "���� � � �� ������ ����� ��� � �� �����"�� ���� ����� �� ��� �� � � �� �� � �� �� M 5�/2/�1�:�2�

� � �� ����&�M�1�+�,��

� ?M ��103:�25�/ /��

� � �� ����&�I���

?M 5�/2/�1�:�2

� > �� ���

?M ���103:�25�/ /��

� � ' � ' >�

5�/

Page 248: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� �+���� � ���� ++��� �� � ���

$��� �� ��" �� ���������� � ��������� ��� > �� �� � � ���� ������ ������ ����� ����� � � ������ ��� "� ����%�� ����� � �� �� ��

�� ������� �� ����� ���"� � N���� � �� �� � %=���� ������N�������� ��� � ������� �� �� �� �� �� �� ���� �� � ������� �� �� � ��@ � � �� 6� �=������ �� ����� ������ � �� � ���������� ��� ���� �� �� ��

� 5�)��� �� 2�

3 �� ?M ��

� � ' � ' >�

5�/2/�1�:�2

+����� ���� � �� ���� ������� ����7 �� � ����� �� �� � � ���� � ���� � ���� ������ ���� �� �� �� �� ��� ���� ����� � ��� � ��� �� %�� �� �� 6� �=������ "�� ���� �� � � �� ��� �� ��� � "�� �� ������� ���� ��� % ��

&�& () �����% �� ����� �������

$�� ��� ������ �� ���� �� ��� � ���� �� ������ � ���� ��� �� ��� E� �� ���� ��%� � ��� � ���� � ������ ���=�� ��� �� ����� ��� ���� ��� ��" � ���� � � �� � ����� ������

.�/�� %�� ������E� �� ��%� � �" ���� �� " �� � ���� �� �� ���� ��� ������� ������������� E� �� �� " �� � � ���� � �� ���� ���� �N�������� ��� �=����� �� �� ���� � �� ��� �� ������ ���� ����� �� � ���� � � ��� �� �� �� � A���B�������B����A������ ������ �� � ���� � "�� �� �� ��� � ���� �� � �=� ������ ������ �� ����� �����

������� *� �� ��� /-����� �� ��� �� �����"�� �%�� �� ���?

:6;��* M����

F�/G&��Z

Page 249: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ��������� ��� ����& ��++ �� � �#

E� �� ���� ��� ��� �=������ � �� �� ��� � ��� "���L �� �����"��� ���� � �� �� ����������� ��� �� �� � �� �� �� � � � ��� �� �� ��� M ��F&��G�� ����� �� �= � ��� E� �� ���� ��� � ��� �=����� � �� �� ��� �� ����� � �� �� �� ����� ����� �� ���"� � N�������� ��� � ��� ������ ��� � �������� �� ��� � ���

� )��� �� ���� �������� �� �� � ��� �� ��� ���� ��� ���� ����� � ��� �=����� �� /-����� ��� �� � �� ��� �� ����������%�� �� ������� �� �� �� "� �= � ����� ����� �� ���� ����

$�� �����"�� � ���� � �� ���� ������ �� "� �� ��� ��� � � � �� �� � � �� � ��� ��� �� ����� ���� � � ��� $��� ���� � ���� � ���� � ��� �� ��� � �� ������ ���� �� ������ ��� ��� ��� �� ������ "���� �� � ��������� ��� ��� �=�� �� ��� ���� ��

� *����&����������8�H����* �� ������� ����� �� ��� � $��&��� �� ���?��� 5�)��� �� 5�)��� ' �� $��&�� �� ����&�I����� ���?� �� �� ��� �� 02�� � �� 2�� &�� � &�� #$��� � %� ���?� ��� ��� �� ���� 3 $��&�� � ��� ���?� �� ��� � �� � ' ��� �� ��� ���� ����&�5�)���������� ��� �����

��� �� ����� ��� � � �=� ����� ������ /-������ ����������� A���B��������B/-�����A � ���� ��� � ��� �=���� ��� ��

� ����&�8�H������

���31�/��2�53

� ����&��2��8�H������

���31�/��2�5:21�50�1/2�5�2250�/:���/��11::/

E� �� �=� ��� �� �� �� �� ����� /-������ � ������ �� � ���� ��� ����� �� �� �� �� ��������� � �� � �� � ���� ��� ��� �=������� � /-����� �� � �������

Page 250: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� �+���� � ���� ++��� �� � ���

� <! � ���4� 3 I�4� � 4� � �Z� ��00��&����� ��

����

F�/G &� �Z

� ���!��D��

/� !����

!����

� �������D��

/�!�

� /

� ����&�D��

���31�/��2�53

.�/�� %�� 5������� �� ��%� �" � ����� �� �� " �� � ���� �� �� ���� ��� ��� ���� ��� �=������ � �� � ��� ��� ��� ��� �� ����� ���

� � �=� ����� ������ � ���� ��� ���� � � � ��� �� ���������� �� � ���� � A���B�A �� � �� � � ���� � �=����

&����� �� � ��� � �� F�� ��F�GG����

� 8�F�� �� � �� �� � ������� � �4,�

��!�� ?M �� �� ��F�G

��

$��� � ��� �� � ��%�� � � M �� � �� �� �=�� � �� ���� � � � ��� �� ������ �� ������ ��� � � �� /-;�� ������ �����

� 8�F���2� �� �� ��� 8�F������ ��2 ��

��6�F�G ?M/

:

Page 251: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ��������� ��� ����& ��++ �� � ��

6� ����� ��� �� �� �� ��F�G �� ����� �7 �� � �� �� �� � � ������ ��F�G � �� ��%��� �� /-;�� �� ���� � ���� ����� � � � ����� ����� ���������� ��� �� ���� �� � ����" � � ������ ��� ��% � "� � � �� ���

� � �� B8�F��B� 20222M+ ��

� ?M ��6�F�����/1�G

� ����&����

��/:/05:020�

� ����&��� 35�)�����

��/::::::::52135:/3���

�� �� ����� � ��� �� �� ���� ��� �=������ �� /-;��� �� � � " �� � � ��� � ���� � � ���� � ���� E� �� �� " �� � �� �� ���� � �� �=������ �� �� ��� �=����� �� /-;���

� ������� 8�F������ ��2� ��

/

:� /

/���� O

/

��2��� � /

5:�00�� O�F��G

$�� ��� �� � � � �� �� ��� ��

� M F�/G ��

F��O 5GZ� � � ��

��� �� � M �������FF��O �GF��O 5GG�

� 6� ����� ��� �� �� �� �� �� �� ���� ��� � ��� �=����� �/-;��#"' �� ����� � �� �� �� ����� ����� �� ���"� � N�������� ��� � ��� ����� ��� � �������� �� ��� � ���

� 6� �� �� ��� �� �� �� ���� ����� ��������� �� � � � ������ ���� �� �� ��� � ���� �� �� �=� ������

� )��� �� ���� �������� �� �� � ��� �� ��� ���� ��� ���� ����� ��� �=����� �� �� � ��� ��� � ��� �� � �� ��� ������� �����%�� �� ������� �� �� �� � �� �= � ����� ����� ������ ����

Page 252: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� �+���� � ���� ++��� �� � ���

$�� �����"�� � ���� � �� ���� ������ �� � �� �� ��� ���� � � �� �� � � �� � ��� ��� �� ����� ���� � � ���

� *����&�8�F��* �� �����������)�:������ ����� �� ��� � �� ���?�� ��-�� ��� � �� ����&������ 5�)��� �� 5�)���',�� �& ������� �! ����� ��� �:����%20 �$��� ��-� �� �4�� ��� �� ����&������ � �� ��� �� ���?� �� 2�� &�� � &�� #$��� � %� ���?� ��� ��� �� ���� 3 ��-� � ��3�'�3�3�',���� ���?� �� ��� � �� � ' ��� �� ��� ���� ����� � �� ����&� ������������4, ��� ��� �&�� �����5�)����,������ ��� �����

��� �� ����� ��� � � �=� ����� ������ � ���� ������� � /-;��� ����� ������ A���B/-;��A�

� ����&� B8�F��B�20222M+� ��

��/::::::::5210

9����� �� �������� �� ��� �� /-;�� �� �� � ���� ������� ��A���B/-;��A �� �� � � �� �� � N�������� ��� �

� 8�F�� �� ����������)�:������ �& ������� &����� �$��� ����&�B8�F��B������ ����� �� � ������� � �4,�� ��� �&�� ��� �����

$�� ��� ������ � ��������� ����� �� A���B/-;��A "�� ��� � �� ���#A/-;��A' ���=�

� 8�F���2� �� �� ��� 8�F������ ��2 ��

��6�F�G ?M/

:

Page 253: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��' 8���� ��� � �� � �* �� � ��

��" �� �� � ��� �� ���� �� /-;�� "�� �� �� �� "��� �� ��������� � ����

� 8�F������

�� ��F�G

��

� 8�F���202MMMMMMMM��

��/::�055�5/35�

� 8�F���20��

��/::�055�5/3��

�0� ������ �� ����� ���� ���� ��" � �=�� ��� ��� �������������

&�' 7���% �� �� ��� ����%�

���� "�� � ���������� �� ���� ���� ���� � ����� �� � ���� /��� �������� "���� � ������ ������ � ���� �� ��$*�. �� � ����� ����� ���? E� � � ���� � ���� �� �� � � ��$*�. ������� ��� �� ������� � �� ���� � � $�� ���������� � ���� � ������� � �?

� �4��? &������� ���� �C���

� ������? �� "���� �� ����� �=���

� ���? ��� ���

� �� �������? ���� � �������� �� �� �=

� ���? ������� �� �� �������� �

� ���/? ���� �� �=� �����

� �? ���� �� 6� �� ���� ��

� �����? �� �� �� � �� � �� �=

Page 254: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� �+���� � ���� ++��� �� � ���

� ���? �� �= ��� ��

� ��? *) �����������

� ���$?? ����� � ��� � ��@� ���� �7 ���

� ��? <9 � ������� ��� �� �����������

� ��H�? ���� � ��C� �� �� �=

� �����? ��� ��� "���� �� �= �� �7 � �

� ��������? �� �= ��������

(��� � ��� �� ���� ������� � � � ������� ��$*�. ���� ���� ����� � � �� � �� �� ������ �� �� �"� � N�������� � ������� � � �� �� �� �� ���� ����� $�� �� �� � � � ���� � ��� "����� ��� N��I0J F�� ��� �� �"� � N�� � ���G� 6� �� � ��� ����� ��� � ����- �� �/���"�

6� �� � ��� ���� � ��� ���� ������� �� �� /��� �������� � ��� ��� ��� � �/���� $� ��� ��" � �� �� ��$*�.��������� � �� � ����� ������� ��� � �/������������ �

&�* ����������

��� �� ���� ����7 ��� �� �� ����� �7 ���� "���� � � ��� �"��� ��������� �������� �� � ��� ��� �� ���������� ��� ���� ��7 ����� ���� �� ���� ��������

(������� ���� ����� ���� � ����� �� �������� � � ���� ������� �� �=������ � ���� � ��� "�� � ��� �� ��"� � � �� ������ ��� ��� �= ���� �� �"� � N�������� � ������ ����"� �� ��� ����� ��� �� ���� � �� ������ $��� �������� ��"��� � ������ ��� ����(��"� � N�������� �@� � � ������� �� "��� �� �������� ���� � ������ �� �������� ���� ������ �� ���� ���� �� ���� � �� �� ��� ������ �� �� ���� ������ � � �=� �� �� �� ��� � � ��

(��"� � N�������� ���� ����� �� �� ������� ����� ���+++ 3�2 ���� � �� ������ �������� �=��� �� �� � �� �������� �� � �� � � � ������� $�� ������ �� "�� ��� ��� �� ���� �����"� �� � ������ ����� ��� � ���� �� � � �� �� ���� �������� ������� ������ � �� � � �=� �� ���� ��

Page 255: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

! ���������� ���� ����

"�����

0���� ����

����� ��� � "��� ��� �� �������� �� � ���� �� �� ��� ��� ��>�� 5�> ����� $���� ��� ��?

� $�� ���� �� ������ � ���� �� �� ��� ��� ����� ��> �� 5�>����� ����������

� $�� ����� ������� �� ��� ��� ��������C�� ����� � �� �� ���� %��� ���� � ��� ����

� $�� ��������� ������� �� ��� ��� � ������� ��#��� �� ��� ���� ����

� ������ � ���� ����� ������ ��� ��� ����� ��������� � �� ���=������ 3������� �� ����� ��� �� ��������C�� � ���� �� �� ������ �����%� ���=��$���� � ���� �� �7 � � �� � � ��� ��� ���� �� ����"� �� ��� ���� ��� ��� ��� �� � �� ���� ��� $��� ���� ����� ����� ���� � �� �� � �� �� ���� � ������� �� �=�� �����

������� ������ ���� ����

$�� � ���� �� ��� ����� �� � � ��� ���� �� �� ����� ����� � ����� ��� ���� ��� �� � � � �� ��� � � � �� ���� ��� "��� � "������ �� �� ��� � � ��� � ��� � ���� ��� $��� ����� ��� ��� ������ ��� ���� ��� � � �� �������� ���� � ������ �� ����� ��������

� ���� �������

� .���� -���� - ���� ��

�2�

Page 256: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� - �� ����� "�� -���� *�� � � - ���� ��

� ����� -�� >�� ( � ��

� - �� ����� "�� -�� >�� ( � ��

� - �� ����� "�� �� ��������� -������

� ;��� 6���� -���

� 4�� ��� 4 ��� �� -���

� ������

� - �� ����� "�� &���

'�� 3���� ��� ��% ��������

$��� ����� ��� � ���?

� $������ ������ ��7 ���� �� ����� � ���� ��

� - ��� ��� �� � � ����� � ����� � ���� ��

� )��� ��� �� � � � ���� �� �� � � �=� ������ � �� ��������� ������ � ��%� ����

� (�������� ������ ��� ����

��� ����� ����� � ���� ��� ��� ��� ����� ������� �� ����������� � �� ����� �������� ����� �� � �� �� "� �� ��? �=�� ������ � �� � "� ���������� %�� ����� � �=� ������ ��������������� ��� ��������� 6� �=������ �� �� �� �� �� �=� ������ ���� ��O/ � �� ������ � �� �� � �� �=� ����� �O 9� "�� � � ��9 � � � ���� ���

$�� �����"�� ������ ��� ��� � 5�> ��� �� �� � ���� ��%���� ��F�G ��FG� $�� ������� �� ������ � � � �� �

� ����,��������3������� ��200�3I�� ���3I�003I���

Page 257: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� 6 ��� ������� ��������� � �!

E� �� ��� �� ���� � ���� �� % � ��%�� "� � ���� �� ������ ��� "� � � ���?

� � �� ��� �� �� ������� - �� ��� �� �� �������

�� �� � ������ �9 �� �� % � � � �� � �� ������ ������?

� ����,��� 3 -� 200�3I�� �3I�003I���

� �� % � �=������ �� ������ � ���� � �����C�� �� �� % �� � �� �� � �=� ����� � � �� ���� �� �� ����� �� �� � � � ���� ���� �� �� �� ".����� �� -.����� � � �� ����� �=������ ������� �� �� � � � ��� � � ������ ���� �� ���� � �� ����������

�� ��� "�� �=� ������ � ������� �� ������ �� ������� � ���� ������ � ���� �� �� ��� �� � � ����� � ��� �������� �� ��%�� ����� �� �� �� � � �������� ���� � ��� � �� �� � �� �������� ��7 ��� �� ������ � ���� �� �� ��� �� ��

������� ( $�� �����"�� � ���� � ������ � ������= �� �� ���� M �O� �� ���� �� �� �7 � �� ��� �� �� ���� F� � ��=�� ��� /�G �� �� ��7 ��� ��� M �� O � � �=� �� ���� �� ��� � ��

� �����:���<�� �� ������� ��� ����� >� �� > �� ����&�� ' �39��� �� 2�� �� 2 #$��� �:��>� % ��� > �� >4 ' ��'�39��� �� ' �� ��� ���� �� ��� �����

Page 258: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

E� �� �� �� � ���� � � ���� � � 5�> ������ � �� � ���� �� � ���

� ����,�� �����:���<��� �,�00,�� �,�00,�� )�����+2�+2���

������� � ������ �� ��� � � ����� ������� �� �� � �� ��������� � �� ���� ������ ������ F� �� "� ������ ��� ����� �� � � "���"G� E� �� �� �� ���� ��������� � �� "� ����� �� ���� � �� ������� ��� ����� ��� ��� ������ � �� �� � �"�� ����� �=�� ����� �� � ������ E� �� ���� ������� ��� ��� ���� ��� ������ � � ��� � �������

� ����,��������3������� ���3I�003I�� ���3I�003I��� ����������$��)���� �����&�� ���

–6–4

–20

24

6x

–6–4

–20

24

6y

–1–0.5

00.5

1

� ����,�� �����:���<��� �0+000+� �0+000+� )�����+2�+2��� ������#���&�� �� ��������������,�,���

Page 259: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� ���� ++��� ,��� ������� (��� �. ��������� � �#

��� ����� ����� � ���� �� ����� ������ � � ��� � ���� � ����.��� � (��� �� ���� ������ � �� �� �� ���� ���� ���� � ���� � �=������� �@�� �� �� ���� ��� ��� ��� �� �� ������������� E� �� �� ��� ����� � ������� ��� �� ��� ���� � �� ��������� ��� ����� �� ���� ��� 6� � ���� ���� �� ��� ����� ����������� ��> �� 5�> ������ ��� � �����B������� �� �������B��������

� �� ��������� �� �� ����� � ���� � �� � ��� ����" �� �� ������� � ������ �� �� ������ ��� " ��� � �� ��� �� ���� �=����� ����� ����� � ���� ��� ������ ���� �� ������ � � ��� ��� ���� � �� ����� � ���� ���

'�� ��%�����% 5� � ��� ��% #���+

��������

$��� ����� ����� �=������ �� � �� ����� "�� ����� ����� � ����� ���

������ � ��&����� �� � ����� �� ����� � ���� � �� � ��� �� ����

� G �� ��+�M�� ��,�� ��,��� �M�,+���

#) ?M II�� �1J� I//� �5J� I//� 5:J� I1� 5�JJ

$�� ���� ������ � �"� ���� ��"�� �� ����� �����

� �����G��

Page 260: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

24

26

28

30

32

34

36

5 6 7 8 9 10 11

$� � �" � ��� � �� �� ��� ��� � �� % � ���� ����� �� % ���� � �( � �� �� �� �(�

� G �� ����G�� G����

#* ?M II�� �1J� I//� �5J� I//� 5:J� I1� 5�J� I�� �1JJ

� �����G��

24

26

28

30

32

34

36

5 6 7 8 9 10 11

������� ( $�� � ���� � �������� � ����� �� � ���� � ����7 ��

� �������� �� �����G�� ���������G�� G������ ��� �����

�������� ?M ����F)G ���FI��F)G� )�JG ��� ����

$�� �������� � ���� � ��� "� ��� �������

Page 261: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� ���� ++��� ,��� ������� (��� �. ��������� � '�

� � ��� �� �� ��� �� �� �� � �� �� � ��� �� ����� "�� � ���� ����� � ��� �� "� ������ $�� ��� � ��� �� �� ��� �� � �� �� �������#��������8 ������� '�

� � ��� �� ����� ��� �� ��� ����� ����� �� ���� ��� � ������ � ���� ��

������� ) ����� � � ���� �� ��� �� �� ��7 ��� �� � � ��������� � �� � ���� �� �� ���� �� �� ��� �� � � ���� $� �������%%���� �� �� ��7 ��� �� ����� ������ � ��������� $���������� � ���� � ��� �� ���� ��� � �� % � � � ��� �� �� ����� �����

� �������� �� �����G����������������� ������������ ���������G�� G���� ��)��00���)����� ��� �����

$��� �� ��� �� �������� ����� � ��� ����� � � ������� �� �� � � ������� ��� ��� � � ���� � ���� ������ ����� ������

� ������������ �� ��� :����

=����� ������� ���!�� �������� ������� ��� ����)! ���� G� �� :� �& ���� ��������������� �����������:!� �������� ��� �� ��� :��

� ���������G� �$��.�����2��

24

26

28

30

32

34

36

5 6 7 8 9 10 11

!"������/� ��� ��� �� �������� � ���� � �� �� � ������ �� ���� ��� ��

�� �

Page 262: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

' � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ���� ��� ���� ���$��� ����� ��� � ��� �� � ���� �� � ���������� � ���� � � ��� ��� � 5�> ��� � �� � ��� �� �=� ������ � "� �� ������ � � �� � ��� ��� ���� ���

������� 7 $�� ���������� � ���� � ��� �� �����������- � ����� � � ������� �� ����� $�� ���������� � ���� � �=������� ����� �������������- � ���� � ��� �� � �� ��� �� �� ���������� "� ��"�� �� ��� �� �� �� �� � ���� � ���� � �� ����� ������� � �� �������

$�� �=������ � ��� ����� �� �� 4������� � ���� � � � ����������� $�� 4������� ������ ��� ���� "���� � �� �� ������ � ���� � �� ���������� � ���� �� 4������� � � ��� ���� ������ �� � ���� �� ����� ����� � ����� �� ���� ����� ��� ������ ����� �� 4������� ������ �� ��� � �� �� �� ������

���� � �� �� � � �� ������ ����� � �� �� � � � �� F���� ����� �������� �� ��� � �� �� ��� ����G�

� ��::������ �� ����� F����� ����� �����)� �� ����� �� � �� �� �� ������ ���� �� ���)��,00���)����� �& ��� $�������������� B�! ������B� B�B� B����B�� �$�� � �� + / ��&�!�� �! ������� ��� �&��

� �� �����F������� / �������� �� ��� ���������� �������� � �� ��-�����,��F�������� �� ������00��� )������� �� ����������� ��00 ��� ������������������� ��� �����

$�� ���������� � ���� � ��� �� ��� �� � �� ���� �����%���

� ��::��������������� ����3��� ������� ����3����� ���I�00I�� �! ����������

Page 263: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� ���� ++��� ,��� ������� (��� �. ��������� � '�

$�� �� � ����������� � �� � ��� �� �=� ������� E� �� �=������������ �� �� � ���� ������ � ��� �� � ���� ��� �� ��� �� "����� �=���� �� �� �� � � � ��� "��� � �� � ���� �� � �� ���� � �� � ���� ��� "���� "�� � �7 � �� � ���������� � +=�����5� $� �� ���� � ��� � � =���� � � ���� �� �"����� �� ��� �� �����-�������

� ������ �� �����&�� ����� ����� !�������&���� �� ���� ��� �����

6� �=������ �� �"���� � ���� � ���� � �� ���� � �� � ����� � �� ����� �� � � � ���������� � ��� � �� ���F��G � �"��� � �� � ���� ��

� � �� � �� ����3���� - �� ����������

9 ?M F�� G� ���F��G

������� 8 $�� �����"�� �� �� �" ���������� �����

� ��::������ �� �����F����� ���@���)�� �� �����)�A�� ����� �� � �� �� ����� ��#F������ ���� �� ���)��,00���)����� �& ������� ���)�� �$��� / V��������&�� ���!�0� �& ��� $�������������� B�! ������B� B�B� B����B�� �$�� � �� + / ��&�!�� �! ������� ��� �&�� �� �����F������� / I������ ���������&�� ���!� �� ����,�0� � �� ��-�����,���������F��������� �� ����00��� )��������� ����������

Page 264: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ��00 ��� ������������������� ����� / =���������� �� �����:�� �$����0 H������ ���$ �� �� / ������!��0� ��#F���� �� ���!������� F����� �$������� / 7�� �$���� �� �$� ��&�!�� ������ ��:��0� ���� �� �B��:���B���$����� JJ� JJ��� ��)��,00���)����� ��::���������#F����� �$����� ���������� ��� �&� ��� �����

$�� �����"�� �� � ���� ��� �� � �� � �����

� ��::������������ ���� ��� ' ����� �I�00I���

'�" ����� ��� 1� � � �� ���

����� ��� ��� ���� �� ����� �� �� �� ���� � ���� � ������ ���� � �� "���� �� � ��� � ���� ��� � ��� ����� $�� ��� ������� ��� ����� ���� � � �� �����%�� �� ��#��� � ���� +�� � ���������� � ���� � � ���� � �� � � � �� $��� � ����� �� ���� ��������" �� ���" ������������ � %� � ��/�

/� � ����� ������ � �� ��� � ���� � � � �� ������ � � �� �� �� �����

�� � �� �� �� ����� ����� ��� �� � ������ � ����� ��#��� ������ �� ���� � � ��

5� ����� �� ������ ���� ��#��� � �� ����� ������ � ��� �� ��������

Page 265: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � ''

�� �� ��� 4�, ����� �� ����� .��

E� �� ����� �� ��� ��� � � �� � �� ������� ���� � ����� ��� � � ��� ���� ���� � � � ����

������� ( )�� �� ������ ������ � ����� � � ��� � � ��

� ������������3�',� ��200+� �! �������,� ���������&�������

IGVX�H7LR=<���20� ,0�� �0�+�+��MMMMMMMM�M� �0,,12Q22222222���� �+0� ,0���HVGV7L�LO\�02�20�20��� ]=<G \=G<�J�J�JJ��R9=(�20 00 +0�5=F 7GX��

$�� � ���� � ���� ������ ��� ��� � ���� ��� � � � ����� ��� �� ��� ���� �� � ����� � �� ��%�� �� � �� ����� $��� �� �� ���� �� "�� C�M ��� �� F/��� �� �G� "���� �� ����� � ��� $����� ��� � �� �C��� �=�� �� � �� � � �� ������ �� ���� �� ��� ����� �� ����� ���� �� �� ���� �=�� ��� �� ��� ���� �� �� � ����� � �� �� ���� ������� �� �� � ��� $�� ������.���

�� �� ������.� ����� �@ ������� ������� �� �� � �� ��� �� ������ �� ��� � �� �����

������� ) $��� �=����� �� �� � ��� �� M � ��� � 5� 2 � ��� $�������� � � � ����� � � �� �� ��� �� ��� �� ���� �� ����I�� /J� I�� �J�

� �����������,���3�� ��200� ��200� )�����,������

IGVX,5�OL95�20 00 0�20 00 0� ����� 00 ,� 00 ��@��� � 0,,,,,,,,,,,,,,,,�� �� ,� � 0����������������M� �� �� � 0� �,� � � 0����������������M� �,� ,� �0,,,,,,,,,,,,,,,�� �,� �� � 0A��������� � &�������������)� � ������)!��������� � H?�������� ]=<G \=G<�����JJ��

Page 266: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

$�� � � � ��� ��� ������ � �� �� �� ���=�� �� ��=�� � ������ �� �� ��=���

������� 7 $��� �=����� �� ���� �� � ��� �� M � � � ����� ������� ������ $�� ������ � � � �" ����� � ���� �� ���� ����%� �� � ����� ���� "�� �� ��� ���� �� �� ����� ������� � ������� �� � ���� � � ��� �����

� �����������,���3�� ��200� ��200� )�����,���� ������������������� ��������������

IGVX,5�8=<T� ����� 00 ,� 00 � 00 ,�@�� � ,� � 0� �� � � � 0�11+�+��M2,11+�� �� � � � 0�1M�+Q+,��2�2,22�� �� � ,� � 0� �,� � � � 02�2�2��1Q,�1M+� �,� � � � 0��M�M�M�+1M,22� �,� � ,� �0A��������� � &�������������)� � ������)!��������� �H?��������<XWG=�IV9;X��

.��� �� �� ��� �� � � &� ���� ��� ����� �� �� � � � � ����� � ������� �� ������ � � � ���� � ���� � �V=3��M=�3 � �� ��

��� ���� .��� ���������E� �� ��� � �� ���� ��� � ��� ��� � � � �� ���� � � �����> �� 5�> ����� $�� ��� � � � �� � ���� ��� ���� � ������� ��� ���� "�� � � ��� ������ ��� ���� �� ��� ���� ����#��� �� �� ����� ������ ��������� ����� ���� ��� �� �=� �������� �=������

� IGVX�H7LR=<���2�2�� �������

0

0.2

0.4

0.6

0.8

1

0.5 1 1.5 2

�� ������ � � �� ����� �� ����� "���� ��� ���� �� ��� �� � ������ � � �� $�� ����� �� ���� �� �������� �� ���� ��

Page 267: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � '!

������ �� ��� ���� � � ��� � ��� � "���� ��� ���� �� � ���������� ���� �� � ��� � � �� ����� ������� � �� � ���� � �=��������� � � �� �� �� � �� � ����� ��� � �� �� � ��� � �� ���F�� /G� $�� �,CW=3 ��� � � � ������ �� �� � �� � ���� �� �������� �� ����� � � ��� ���� "�� ������ � � ��� F�� �=��������� ���� � ��� ������� ��� ����G� $� �� �� �������

� � �� 22�� ������ �� ���-��3�����3I����� �����3I������ ��200����� IGVX�H7LR=<�����&�����������

0

0.2

0.4

0.6

0.8

1

–2 –1 1 2

��� �� �� ��� �� � ��7 ��� �� � O / ���� � �� ����� $�� ������ � ����� �� ���� ��� � � � � � �� �� ��� �� �� ��� ����� ������ �� �� �� �� ��#��� "��� �� ���� � � ��� �� �� ��F&����G� �� �� � � � �

� IGVX�H7LR=<����������

I������) ������ �����! ���� ������ ��&�������

� ���������I����� �! ������

�����

A���� � ��� �� ��� ����

���� ��� ��� � � ���� ���������� ���� � � � ��� �� �����"�� �� �?

Page 268: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

#�%)���8 �����'

"�� � ���� � �� � ��7 ��� �� �� � �� � ��� ��#��� �� �� �� ����� ����F���� +��� ������G �� ������ �� � ��7 ��� �� C� � � �� � ��� ����� �� �� �� � ���������F�����,����G�

����� -�� ����� �� ����� �� � � ��� �� �� ���� � � �� � �� � � ��� �� ��� ��#�� � � ���

�� � ����� ���� ����� � ����� � ��� ��#�� � � �� � ������� ���� �� ��#�� �� ��� ���� �� ��� � �� � ������ ���� �� �� ��������

���� %�&��� �������� �� ���" � ���� ���� ��� ��#��� ���� ���� � ���� ����F���� +��� ������G� ���� ���� �� �� �,CW=3����D��13� ��01�3� � �=V�� "���� ���� +�� ����� �� ����� ��� ���� ��� �� ��%�� �� ����� � �� �� ��#��� � �� �����"������ ����� �� �� ��� � � � ��� �� "� �� �� ��� ��� I�� J� �� ������ �� �� ���� ����� �� � ��� � �� �����

� ��� ���� ���� �� �,CW=3� ���� +�� ������ �� �� � �� ����� �� ���� "�� � ���� ��� �����%�� � ����� � �� � �� �����

� ��� ���� ���� �� ���D��13� ���� +�� ������ �� �� � �� ����� �� ���� "�� � ���� ��� �����%�� �� �� ���� �� � ����� ������� �� �����

� ��� ���� ���� �� ��01�3� ���� +�� ������ �� �� � �� ������

� ��� ���� ���� �� �=V�� ���� +�� ������ �� � ��� �����"���� � ��� �� ����� �� �= � ���

���� %����� �������� -�� ����� ���� �� �� ����������F�����,����G� +=������ �� ���� � � �� � � �V=3�D�=FM�VG�����CFC�M� ���� /��� ���G� �� W0=UF�2��2� �/��/G� 6� � ������� ��� ���� ��� ���� � � �� �� �� ��� �� ���� � � � ������� ��� ������B����������

(��� ��� ����� ������ �� �����%�� �� � ����� ���� "��� � �����#�� � � �� 6� �=������ �� �V=33�D�= ���� � � �� � ����������� "���� � ��@� � ����C ���� �� �� �����%�� �� ���� ��� ��#���

Page 269: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � '#

������� 8 $��� �=����� ����� ��� � ������ "�� � ��� �� � %��������� �� �� ��=��� �� ��� �� �� �� � ��� M ��F�G � �� � � :�5�"�� ���� ���C��� ���� �� ������ ���� �� �� G,= ��� � �� �������� M � ���F�G��

� � �� � �� �������2� 2�� ������2� ���������2���� ���2� ������2��� ���2� 2���

$�� � ��� �#�' � � �� �� ���� �� �� �� ���C��� � � ���� 6� �=������ �#�' ����� �� �� ���� �� �� ����� ���C����

� ����

II/

/�� �J� I

/

/�� ��F

/

/�GJ� I

/

�� ��F

/

�GJ� I

/

�� �JJ

>�%� �� � ���� � � � ���� �� ���� �� ���� ���C����

� $ �� � �� �:��������2���� IGVX���-�IVGWOV;<�����&������� HVGVL�T7=� ����&�$�������� � � 00�,���

–1

–0.5

0

0.5

1

1 2 3 4 5 6

� �� ���E� �� � ��� � ���� �� �� �� ���� � ��� ���� ��� � � ��� 6� �=������ ���� � ���� ��� � �� �� �� ���� � �� �� ��� � ���� ����� �� ��� �� � � �,CW=3 � � ��

� � �� <! ��.4� .�002��

� ?M������

/

��

)�� �� �-�� ��4 ������ � ���� �� �� ���� ��� � � ���� ��������

Page 270: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ���� ���$��� B<! B���� ����)�:������ ����� ���������)��00:������)�����

����

$�� �-�� ��4 ������ ������ �� �� � �� �� � � � �� ���������

� ��� � �� �� :�

/

��� �� /� /�

��" ���� ��� �� �� ��� � ���

� �! ���� � ���00�'��

21

5:

$�� �����"�� ��%�� � � ���� �� ��� � �� ���� ���� � N�������� ��� � �� �� "� �� ��� � ��

� ��! �� ����& 6 !�������<! ���� � ���00��' ��� ��

���� ?M �$���H

�"�

�������

/

��

��" � ��� �� ������ � ��� �� �����

� ������ �� ���-�������! ����� ��'���! ������� ��00�:��'����

Page 271: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � ��

�� ��� ?M III/� /����������J� I�� /����������JJ�

II�� /�5:///////J� I5� /�5:///////JJ�

II5� /�2�5://///J� I2� /�2�5://///JJ�

II2� /�2:5://///J� I�� /�2:5://///JJ�

II�� /�21/500001J� I:� /�21/500001JJ�

II:� /��//313���J� I3� /��//313���JJ�

II3� /���32�����J� I0� /���32�����JJ�

II0� /��513:335/J� I1� /��513:335/JJ�

II1� /��213:335/J� I/�� /��213:335/JJ�

II/�� /���0�5�/12J� I//� /���0�5�/12JJJ

� ������ �� ������ ��������

�� ��� ?M II/� /����������J� I�� /����������J�

I�� /�5:///////J� I5� /�5:///////J� I5� /�2�5://///J�

I2� /�2�5://///J� I2� /�2:5://///J� I�� /�2:5://///J�

I�� /�21/500001J� I:� /�21/500001J� I:� /��//313���J�

I3� /��//313���J� I3� /���32�����J� I0� /���32�����J�

I0� /��513:335/J� I1� /��513:335/J� I1� /��213:335/J�

I/�� /��213:335/J� I/�� /���0�5�/12J� I//� /���0�5�/12JJ

$��� ��� ��� �� �� �� �� ��

� IGVX�H7LR=<����������

1.25

1.3

1.35

1.4

1.45

1.5

1.55

2 4 6 8 10

$�� �� ���� � ���� � � ����� ��� ����7 ��

� �! ���� �� �������� ����� ��� � �� �� :� ��! � � ������� ��� �& ���� ���$��� B<! B���� ����)�:������ ����� ���������)��00:������)���� �$��

Page 272: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ��! �� ����& 6 !�������<! ���� � ���00��' ��� ��� ������ �� ���-�������! ����� ��'���! ������� ��00�:��'����� ������ �� ������ ��������� IGVX�H7LR=<����������� ����� ����� J��������) � <! ���!��!�� �� ���!�J� ��� �&� ��� �����

$�� �����"�� �� � �� ���� �� � ��� ��� �� ����

� �! �����<! ����4.�.� .�00+���

–0.8

–0.75

–0.7

–0.65

–0.6

–0.55

–0.5

5 10 15 20 25

$�� ���� �� ��� � � �� � � ��

� <! ����4.�.� .�00��&������� D � ���!��D��

�����

F�/G��

M ��F�G

��� ������ .��� ���������$�� 5�> ����� ��� � � � ��� � �� � ������ � �� ���� ���� � �� $�� �����"�� ����� �=� ����� ��� ��� � 5�> ��� �� � ������ �� �=�� �� ��� � �� �=�� � � ��� ��� ��� �V=33�D�=�

� IGVX,5�H7LR=<���,� ,� 2�� �2� ,� ��� �,� 2� �� �,� ,� 2����� ]=<<XWG=�FL 8=���

Page 273: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � ��

00.5

11.5

22.5

3

00.5

11.5

22.5

3

00.20.40.60.8

1

$�� �����"�� � ���� � � ���� �� �����" ����� �� � ��=�

� �����#����� �� ������� �� >� !�� / �����2� � ����������� �& � ������0� / > � $��)$� �& :��� / ! � ���� ���)�$ �& :��� IVGWOV;<�� ������2�� ��'!���2�� ��'!���>�� �����>���� ������2�� ����'!�2�� ����'!�>�� �����>���� ���'!� ��2�� ��'!��'!�2�� ��'!��'!�>�� ��'!���>���� ���'!� �'!�2�� ����'!�2�� ����'!�>�� ��'!��'!�>���� HVGVL�LO\���2���� ��� �����

$�� ������ � ���� � ��� ��� � �� ��� �� �� ��=�

� ������ �� ������� �� >� !�� / �����>� � ����������� �& � ������0� / ! � ���� ���)�$ �& �-!���� IVGWOV;<�������>�� ��'!���>�� ��'!��'!�>�� ����'!�>���� HVGVL�LO\� � 2� 2���� ��� �����

$� ������� �� ����� �� �� ��� ����� ��� � � ������ � � ��

� IGVX,5������#������� � ,� 20+��� �������� � ,� 20+��� <XWG=�I XHT���

Page 274: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

)��� -����2����� �� ������� �� �� � ��� � 5�> ����� �� ����$�� �����"�� �� �� ����� �� �� ������� � M /�F� O O 2G� �� � � � � 2 �� � � � 2�

� ����� �� ��-���-������#�������� "� ���'"'��� 201+��� "�200��� ��200���� ���� �� ��-���-�������� �� "� ���'"'��� 201+��� "�200��� ��200���

A���� ��� ������� "��� � ��=����� �=���

� IGVX,5������� ����� <XWG=�I XHT�� ]=<<XWG=�\V]=5���

01

23

4

01

23

4

00.05

0.10.15

0.20.25

$� � ��� � �������4���� � ���� � "����� �� � ���� ��� �� ������ ������� ����� � 5�> �� ��� �� �� � � � ������ �� � ���� � ���� ����

*�+���� ��� � � ������ .��� ���������$�� �� �� �� � ������ � � � �� ������ � �� �� � ���� � � ��$�� ����"���� ��� ��#��� ��� �� ��� �� ��#��� �� �� ����� � ����

� � ��� �� �� ��� ���� � � �����%�� �� � ��� �� � �� �� ����

Page 275: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� � ��� ��� 9 � -��������� � �'

��� ��� I�� � J� ����� �� "�� $� �� �������� ��� ��#��� �� ����� � � ������ � � �? �C0�� /=3G� �� 03�3,C;��=�

�C0� �� � � � � �� ���� ���� � � ����� � ��� � ������ �� "� ���� ��%�� � � �� � �� �! ���� �� � ��� �� ���� �� ��� �� ��� ��� � ���

������� 9 � ��� �=������ �� ����� 2 ���� ���� �� ���� 5� $�� ���� �� �� � �� �� 2�5� �� � � � �� / � 5 � �� ���� �� ��5� "�� ��� � � �� / � � � �� ���� �� /���

� GG �� ��2��2�� ����� ����� �,�2����

� IGVX,5�OL95�00,� 00� GG�� ]=<G \=G<�����>��� VL9=;X X9V;�,+� �+�� ]=<�\V]=5���

11.5

22.5

3

x

11.2

1.41.6

1.82

y

00.5

11.5

22.5

3

z

$�� /=3G � � � ����� � ��� �� ���� �� ����� ��� ���� ���� �� ���� � 5�> ������

$�� /=3G � � � �� ���� �� 7 �� ���� ��� ����� ��

)) �� )) ���� ))�� �� ))�� ���

�� ��� ������ � ��� �� �� � �� ��

������� : � ��� �=������ �� ����� 5 ���� ���� �� ���� 2� �� ���"���� ���� ��%�� ��= 7 �� ���� ����

� GG �� ���2�2�2�� ��2�2�� ��2�2�� �,�2�2���� ��2��2�� ���2�� �0� 20M� 2��� �,0� 201� 2���� ��2���� ����� �0� 20�� ��� �,0+� 20+� 0����

Page 276: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

## ?M III�� �� �J� I/� �� �J� I�� �� �J� I5� �� �JJ�

II�� /� �J� I/� /� �J� I��/� ��1� �J� I5��� ��3� �JJ�

II�� /� /J� I/� /� /J� I���� ��:� /J� I5��� ���� /�/JJJ

� IGVX,5�8=<T�GG�� ]=<G \=G<�����>�� ]=<�\V]=5��� VL9=;X X9V;���2� �+���

00.5

11.5

22.5

33.5

x

00.2

0.40.6

0.81

y

00.20.40.60.8

1

z

$�� 03�3,C;��= � � � ����� ������� �� � ���������� � ���� � ��� ��� � �� �� � �� � 5�> ����� �� �� ��� �� �� � 5�>� ���� ��� �=����� �� C� � � ���� �� � � $�� ��� �� � ���� ��������� ��� �� I�� � � �F�� � GJ �� ���� � �� ��� F�� � G�

$�� �C0�� /=3G� �� 03�3,C;��= � � �� ����" �� ��� � ��� ������ � � ����� � �� ����� �� � ���� ���� � �� ��� ����� ����� � ��������

6� � ����� �=������ �� 03�3,C;��= � � �� �� ��� � � ���� � � � � � ����� �� �� 6� � ������� �����%���� �� ������ ���#���� ��� � �������B����������

��� �� ����� ��������� �� ���� � � ���� ��������� �� �������$�� � � � �������� 5�> ����� � �� �� �C0�3�D�=� �0�G�/��=�� ���/M0=1��0�G�� 6� � ������� ��� �� ������ ��� � �������B����������

'�& ��%�����% 5� � ��� 1� � � �� ���

$��� ����� ���� ���� ���� �� � �� ����� � �� ���� �� ������

��� � � � ������ -���� ��� � � �� ����"� � ���� ������ � ������� ����� ���������� $�� �=������ � ����� ��5 ���"�� �� �=��� �� ���������B ��"� � $��� ����� � ������ �=������ �� ���� ��� ��"� � �� �� � ��� ��"� ������

Page 277: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ���� ++��� ,��� ��� 9 � -��������� � �!

4����� ������� ��� ���&��E� �� " �� � ���� �� �� ����" �� � "� � "�� ��� ��#��� �� �� � � ������ ������ 6� �=������ �� ���� �� ���� �������� �� ��������� ������� � ����� � ����� �� � �� ����� � �������� �� �� ����� ����� � ���� �� ����� �������� �� � �� � � ������� ���� "� �� � �� ��������� � ��� ������ �� �� ������� ������ � ���� ��� � ���� ���� �� ���� � � �� ���� �� �� �� � ��� ������ ���� �� � ������

������� ( � �� � ���� � ����� �����%%���� �� �� ��7 ��� ��� � ��� �� �����" " �� -�

� ���� �� ������������� ��������� / � ��� � ��������� ������ �� ���$�� �5 �� ,�5� ����� ������ ���� �� ���)��,00���)����� ���� �� ������������� IGVX���������� H7LR=<�����&���� ���� ����������� ��� �����

$�� �������#%%%8 �����������' ������ ���� � �� ������ ������ � �� �� �� �� ���� �7 � ���

� ��������������:����� ����������� IGVX���������

I�,+(($E*+F:7; G� &�*�)9F2�: � /���������� ��� ��GJ

������� ) $�� ���� � ���� � �� ������ � �� ���� � ���� � � +=������ / �=��� �� �� �� ������� �� ��� �� ���� �� ���� ���� ��� �� �� ����� $�� ��� �� ���� � � ����� �� ���� �� ������

���� �����

� ���. �� ������������� �����)�:������ / ���# � ���. �& ����!� � �������� �� � �� �50� ����� �� �� ����� ���������� ���� �� ���)��,00���)��� �� �& ��� $�������������� �! ������� �� B����B�� �$�� � �� +2�� ��� �&�� ���� �� ������������� IGVX���������� �������� �� ��-�����&����� ' �3����3I�3������ ��� ' �3����3I�3�������� � � 200���� IVGWOV;<������������ ����������� ��� �����

$� ������� "� ����� ������ �� � ���� �� ?

Page 278: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� #��$��������

(�����)� �$� �� � �$��)������� $�� :��� ����&����

� �����������.���� 2�� �� ��������! ��� �������� ��� �� ����� ���.��� 2�� �� �$��.�����,��� ������)��������������

–0.4–0.2

0.20.4

–1.5 –1 –0.5 0.5 1 1.5

$�� ����� � �� ������ �� ��#��� ����� � ��� ���� ��#����

������ �����+=����� 5 ���"� ��" �� �� ���� ��� ����� ��� � � �� ������ ��> ���� �� � 5�> �����

������� 7 $�� �����"�� � ���� � � ���� �� �� �� �� �� � �� ���> � ��� �� � ��� ����� � � ��

� �!����� �� ������� �� ��� ����� �� ��� � �� ����&�������3I����� �����3I�������� � �� ����&��������'�3I����� ������'�3I�������� �& � � �$�� �� ��� ���� �� �3�� �3�� ��� ��� �&� ��� �����

6� �=�����?

� �!������I���� 0� ���

Page 279: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ���� ++��� ,��� ��� 9 � -��������� � �#

I��100/5�300�� ��/�5:���:�2J�

I/��0:12:�:3� ��/:01:��::2J�

I/��55�130��� ��5333:05:�5J�

I��151/310/0�� ��5252��3051J

� IGVX�H7LR=<��D��� <H G9;O�HV;<XL 9;=5���

0.15

0.2

0.25

0.3

0.35

0.93918 1.01306 1.08695

��� �� ������� �� ������ ����� � �� � �� �� � ��� � $�� ����� � � � 3���01�#��13�C�01=�'� "���� �� ������ � �� ����������.����������� �� �� �� �� ��� ����� � �� � �� �

� ������ �� ���-��!������3�� 0� ��� ��200����� IGVX�H7LR=<��������� ]=<<XWG=�;V;=�� <H G9;O�HV;<XL 9;=5���

6��� ��� ��#�� ��� �� ���D��13 ��#��� .��� �� ����� ��� ����� �� ������� � � ����=� �� � � � �" ���� "����������� ������� �� ��� �� � ��� �� �������

Page 280: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� � �� ��-���2� 2�� �!������3"� 0� ���� "�200+��� : �� ��-���2� 2�� �!������3"'� � ���� "�200+��� IGVX�IVGWOV;<���:�� ]=<<XWG=�;V;=�� <H G9;O�HV;<XL 9;=5���

����� 3�D�=#����G1��C0�' � �� � ������ � � � �� �������� � "�� �� � �� � �� �� % � ��� � � ���� � %���� ��� ������ � �� $� ����� ��� � � �� ��������� � � ������� �� * ��� �� �� ���� � ���� �� ������?

� ��!:�� �� �����G� ��� ����� !�� ���-��!��� !��� 2�� !�G���� ���-��!��� !��� ��� !�G���� ��� �����

"���� ���� � ��� �� �� ���� �� � ���� "� ������ � 5�> ������ �� % �� ����� � �� �� ����� � ����� *� �� ������?

� :����� �� �����G� G�� ����� �� ��� � �� �����G��� ��-��G���� G���� G��'�� G��'��� � � 00����� �G���� G���� G��� G����� ��� �����

"���� ������ "� ���� �� �� ���� �� #��� �� �� ������� �� ����� �� ���� ��� �� �� ���� �� ���� ��� 7 �� ���� ���� E� �� � ����� �� �� ���� �� ���� �� �� ��� �������� �� 5�> ����� �������"��

� &���� ��� ��-���!:��������� �����-���!������3�'� 0� ��� �2�2���� ��200���� ��-���!������3�� ���� �2�2��� ��200��� ���

$�� ��� � � � �� � ��7 ��� �� �� ���� � ���� ��� ���

Page 281: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ���� ++��� ,��� ��� 9 � -��������� � !�

� IGVX,5� IVGWOV;<�&�������

(����� ��� �� �����"�� � � ���� � �� � ��� �� � ��� �

� ������ �� ���-��!������3�� 0� ��� ��200����� IGVX�H7LR=<��������� ]=<<XWG=�;V;=�� <H G9;O�HV;<XL 9;=5���

$� � ��� �� ���� �� �� ������� �� ���� ��� �� �� �� �� �� 5�>��� � �� ��� ���� �����

� :��� �� :��������!:������-��!������3�'� 0� ���� ��200+��� ����� IGVX,5���-�IVGWOV;<�:�� :�:������

Page 282: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

! � �� ���� '� ���� ++��� ,��� � ��� 2� �����

$� ������� �� ��� � ������ ���� "� ������ � � �� �� � ������ � �� )�� 3�D�=#����G1��C0�' �� � ����� ���� � �� �� ������ �� �� ��� �� �� ��� �� � ����� �� ���� �� �������

� IGVX,5�IVGWOV;<�&����� <XWG=�I XHT;VOL95���� ��-�IVGWOV;<�:�� :�:������ <XWG=�I XHT�� <H G9;O�HV;<XL 9;=5���

����� $�� ������ 3�D�=#����G' �� 3���01�#��13�C�01=�' ���������� � �� "���� ������ � � �� �=��� "�� � �� �����3�D�=#����G1��C0�' ���� � �� �� �� ���� �� �� ��� ��� � ���� �� ������ 3�D�=#����G' �����

��'� 0�����/=3G ��� � � ��� ���� ���� � ���� �:�� � � ��� ��� "�� �� �������� � � �" �� ���� �C�� � ������ +=����� 2 ���� � � ���� ������ � �� �� �� �� ���� �� �� �� ������� ������� .� ��� �������� ����� �� � /=3G � � �� �� �� ������ �� ������ �� ��������

������� 8 $�� ���-������� � ���� � � ���� �� �� ���� �� � 7 ��� ���� � �� F�� �G� � �� ��� ��

� ����)��)��� �� �����)�������� �� "�� )��������"����� )��������"���'��� )��������"'���'�� )��������"'������ ��� �����

)�� �� �����-������� � ���� � � ��� � �� ��� �� �����������

� �.�I���)��)��� �� �����)��������� ����� �����"�� � �� �����)���������� �� �����)������������ IVGWOV;<���-���-������)��)����)�������� �� "���� ��00 ��� "�00�����

Page 283: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ���� ++��� ,��� ��� 9 � -��������� � !�

� ��� �����

$�� �����"�� �� � ���� �� ���� � ��> ������

� G �� ���-����-����� "��� ��00,��� "�00����

) ?M III�� �J� I/� �J� I�� �JJ� II�� /J� I/� /J� I�� /JJ�

II�� �J� I/� �J� I�� �JJ� II�� 5J� I/� 5J� I�� 5JJJ

$�� �����-������� � ���� � � ���� �� ���D��13 � � � �� � ������� � ��

� )��� �� �.�I���)��)����G��

� �) ?M -�*E4��(FII�� �J� I/� �J� I/� /J� I�� /JJ�

II/� �J� I�� �J� I�� /J� I/� /JJ� II�� /J� I/� /J� I/� �J� I�� �JJ�

II/� /J� I�� /J� I�� �J� I/� �JJ� II�� �J� I/� �J� I/� 5J� I�� 5JJ�

II/� �J� I�� �J� I�� 5J� I/� 5JJG

- �� ������� ����� � ���� � � � � ������� ����

� IGVX�)�����

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2

$� ���� �C0� � /=3G � � �� � �������� �� �� ���� ���� �������#%%%8 ���D��13' ������� 6� �� � ��� ����� ��� ���������B���D��13� $�� �������#%%%8 ���D��13' ������ ����� ��� ���� � A�������B���D��13A "����� � �� ���� �� � /=3G � � ��� ���� �� ���� �� �� �����-������� � ���� ��

Page 284: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

'�' ��%�����% 5� � �� ������� ����%�

����� �� ����� ��� � � � ����"� �� �� ������ � ��� �� � �������� �� �� ����� ����� ��������� � ������ � ���� � ����" �� �������� ���� � F� �� �� �� � �� �G � � � ���� "��� � ���� ���� �����" �� � �� ��� �� ����� �� ������� �� �� �� ���� � �� �� &� ���$��� ����� ����� ��� ��" � "� � "�� ����� � ����� ��#��� �

� ����� ����� �� �� �� �� ����� ��� � � ��� $�� ���������

������� � ������ ������� �� � ���� ��> ��#��� � �� �� ���� �������� �� 5�> ��#��� � �� �� ���� ��� � �� �� ������� �� 6� �=������� � �" � ���� � �� � ��� � �� � � � "�� � �����%�� ��� ���� ���� ��� �� ���� �� � � ��� �=�� ����� �� ?

� #��$�������� #��$������������

(�����)� �$� �� � �$��)������� $�� :��� ����&����(�����)� �$� ����)��� �� � ����# ��# $�� � )��:��:�����)

� ����������$�����2� 2� ��� ���!���2� 2� 2���� ����������$� �����&�� �� ������)��������������

–3–2

–10

12

3

–3–2

–10

12

3

0

2

$� ��� �� ��� � ����� ��� ���� ������ �� �� � ���� �� ��� ��������� ��������

� ������� D� I���� �I���� I��� ��

Page 285: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � !'

–2–1

01

2

–3–2

–10

12

3

–2–1

012

� ��� �����E� �� " �� � ����� � ���� � � � ��� � ��� ��� �� � ��� �� ���� ���� $�� ����4�� � ���� � ��� �� �����"�� ������� � ���� ��"���� ���� ���� �� �� ��� � �� �� � ��� �� ��� � � � � ���� � ��

� ��������! �� ������� ��� ����� "�� ����&�<! ���"�� "�00���� ��� �����

$�� �����"�� �� � �=����� �� � ���� � ������� �

� ��������! ��� � ,� ���� ,��

:�

������� ( $�� ����4�� � ���� �?

� &��� �� �� ������ "����� �� �� ��� ���� "�� �� ��� � ������ ��� �����

� )��� � �=V� � � � � ����� �� ��� ��� ���� � �� ��� ������ ��� �����

� )��� �� �������� ������ � �� �� ��������� ������� � ��� ���� ��� ������

� ;� ��� �� ���� � �� ���� ����� �� % � ��%�� � ���� � ���� � ������ � � ���� ��

� ����$��� �� ��������������������)����� ����� :� �� �� �� �� �� �������

� � �� �����������

Page 286: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ����� �� ��������! ������ ���� : �� 2� ��-�����&�3I�3��������! ������ ����������� ��00���� � �� ��-������:����'����:��'����,� ��00���� � �� ��-������:����'����:��'����,� ��00���� � �� ��� �� �� HVGVL�T7=� ���� ' ���� IGVX���-����������������������2� 2�� �� :���00:��'�� ���������� ����� ��00���� ��-�X=]X������� ������ ���������������� �� ����� � � 00���� ]=<<XWG=�;V;=�� <H G9;O�HV;<XL 9;=5���� ��� �����

$�� �V=33�D�=#1�1=' ���� �� �� �� ����� ���� � � �" ���=�� "�� �� ��� ��� �

$�� �����"�� �� � ������ "�� ��= �������

� ����$����� �� 2� +� 2� � � ���

1612

10

1510

8

� .����� � ���� ���E� �� �� �� �=���� � ���� �� � � ��� ��� ���� �� ���� ��� � � �� �� �� ����� ����� ��� � �� 6� �=������ �� �����"��� ���� � ���� �� �� 5�> ��� �� � � ����� M �F�� G� �� ��� �� �������" � �#���� �� � ���� ������ ����" �� � �����

������� ) $�� � ���� � ��� �� ������������ �������������� �������- ������� � �� �� ����� �������� �� �� ������ ������� � �� �� ��������� ��������

� �����$���#���� �� �����F����)�:����� ����� �����)��� ����� �����)�� �,���� �����)��� ����� ��>� �� �,� �������� ����� &� )� �� ���

� / ��� �$� �! :�� �& �����!�� ���&�!�� ��� ���� �� ���)��+00���)����� �& ��� $�������������� B�����!��B� �������� B����B�

Page 287: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � !!

� �$�� ������� �� ��� ��� �&��

� / ����� ��� �$� :��� �& �$� ���� ����� / &�� �$� �$��� ��)! ���� ��> �� �$��*�&*��,�����)�� �,� �$���,����� ��> �� ����&� ��>���

� / ������ �5 ��� ,�5 �����!� ����� &�� F0� �, �� �����������!�����,���F� �� ��� B�����!��B��������� ����������� � �� �����������!�������F� �� ��� B�����!��B��������� �����������

� / � :�� �����!� ���� ���� L4, ��� ���������������&�� �� ) �� !������������ ��>�� �� ���� & �� ���������������&�� ��)��� ����������������&���� �,���� ��� �����

$�� �����.���� ���� � ����������� �� ������������� �� ������� "� ������� � %�� �� ����� ��"�� �� ����� � ��� "�� ����� �� ������� �� ������

� ���� �� �+3� � ��4'�4'��

���� ?M �� �

�� O � O /

� �����$���#���������� ���,00,� ���,00,� >���00,�� &��������!�� �����!���,� �����&�� ���

–3–2

–10

12

3

x

–3–2

–10

12

3

y

–4–3–2–1

012

������

� $�� % � ����� �� �� �����4��2 � ���� � ��� ���� �� �� � ��� �������� ���� � �� ������ � � ��� F���� ��� �� �� �� � ��G �� ������ �� 4������� � ���� ��

Page 288: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

!" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� $�� �= ����� �� �����4��2���� ��� ���� �� ��� � �� ������� ��� �� � ������ �� �� � ��� �� �� ��

� $�� ������ ������ � ��� �� �� �� ����� ��#��� "���� ��� ��� �� "� ���� �� ��� �����

$�� �����4��2���� � ���� � ������ �� ��> ��� ��� �� 5�>����� ��� �� ���� ����

F�� G �� I�� �"��J

� �� �� � ��� 6������ � �������� �� "� ���� � �� 5�> �������#���

����� E� �� � ����� � ��� �� ��� �� ������ � ������� �� � ������ ��� ������� �� ��� �� �������� ����� $� ��

� �����$���#���������� ���,00,� ���,00,� >���00,�� &��������!�� �����!��������2�����

� �� ��� � ��� ������ � �� �� # � ��� ���� �=��� �� � � ��� ��� � ��� � � ������ ����/� �� /� �� ��

������� � �����$�� ��������� ������� � ������ � ������ ��� ��� �� " �������� � �� ���� 6� �=������ �� �� � �" �� � �� � �� � � ��7 � ��

� #��$�������� #��$������������

(�����)� �$� �� � �$��)������� $�� :��� ����&����(�����)� �$� ����)��� �� � ����# ��# $�� � )��:��:�����)

Page 289: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � !#

� � �� ������)����2�2�� ������ �����2�2�� 20+� 200I����� �������� 20+� I�00,3I����� : �� ������)����0+�2�� �0+����� �����0+��� 20+� �I��002��� �����0+�2�� 20+� I��00I���

E� � � �� �����- � �� �� ����� ������� � ���" �� ��#��� ���������� �� �� � ����

� ���������� :� ���������� ������)��������������

������� 7 E� �� ��� �� ���� "�� �� � ��� �������� $�������"�� � ���� � � ���� �"�� ���� ��� � � ���� � � � ��� ���"�� � �� � ��� �� "�� � �� � � ���� $�� � ��� � � ����� �� � �� � ���� � /� � �� � � ����

� �����) �� �����)� � ��� ����� �� "� �� $� :�!������ �������

� / ��&��� �� � ����� ��2� �� ����������������2�2�� 20+� 200I����� ������������������� 20+� I�00,3I����� / ��&��� � : ����� ��� �� ����������������2��� 20+� �I��002��� �����������������2�� 20+� I��00I���� :�!����� �� �����������!�������2�2�� �2����� � ���� � �2�� �2�2����� ����� �� ��-���-���-����������������������$� �� "��� $���)��� "���� ��200 ��� "�200����� ��������������������� :�!������ ��)���00���)����� ��� �����

������� 8 >�%� �� �����"�� � ���� �� "���� ������ � � ����� � � /�

Page 290: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ������� �� ������ ������ �� ��� �����

& ��� � �� � /� ���� F������ � $ ��� ����G "�� � �=�� ����� ���� �������

� �����)��������� 2� 2� ������)������������� �����������

��� �� �� �� ���� � ���� � ����� �� ���� ���� �� ��@� ���

� �����)��������� 2� 2� ������)������������� �����������

� � ��� �����E� �� �� �� ������� � �� ��������� ������� � � ��� � ������ �� �� � (��� &�� � "���� �� ��� � ��� �"��� �� � � ��������

� � ��$H$��� �� �������� ����� �� �� :� � �� � �� IGVX���-�������������������3����2�� �3���� 200I���� � � 00� ��� ����������������2����� ���� I���������,�+�00,3I����� ����������������2���� �� I�00I�'�������+�1���� ����������������2�3��� 3��� I�'�������,�+�00I�'��������,��+���

Page 291: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � "�

� ����������������2��3��� �3��� I�'�������+�1�00I�'��������,��+��� ��� : �� ���������������&�� ����� �� �� ������������ � �� ����������������� 2� 2�� � �3�� 2���� ����������������� :� �� ���� � ������ ������) � ������������ ��)��00���)����� ��� �����

$�� �����"�� �� � (��� &�� �� ��� � /�

� � ��$H$������

!"������/� ���� � (��� &�� �� � ����� ��� �� ��� �� � �� � �� ����� ��

�=���

�� & ��� � ���� �N���� � �� �=�� F ��� �� ���������������� � ���� �G�

5� ��� � %�� �� �C��� ���� $�� �� ���� # ����� �� ��� � �� ���� ��� �� ����

2� ������ �� � ��4�4�� � ���� � � ��� �= � �� � ��� �� ���� �� �� �� ��

0 �$'�� ��'� 0�����E� �� ��� � �" ��� ���� �� "� � ���� ���� � �� ���������

��������

������� 9 & ��� � � ���� � �� ������ �� ����� �� � ����� ������ � ������� $��� ����� � � ��� � ���� �� � �������

� �!��!�I���)�� �� ����������������� ��������! ������ ����� �� ������� �!������ ������� �� ��)��� �������

Page 292: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� � �� ������������� ������ �� ������ �������� � ��� ������ �� ��-������3����������������� ' ������� ��00���� �!����� �� ��-������������ ��������� �������'��� ��������'���� ��00����� ����� �� IVGWOV;<��!������� ����������� ��������� �������� ����������� <XWG=�I XHT;VOL95���� ��)�� �� H7LR=<������������ ���������� �������� ������������ ������ ��)���� ��� �����

$�� �����"�� � � �� �� � � �� � ������

� �����)�� �� ��2��� ���� ��2���

�� ���� ?M II�� �J� I�� �J� I/� �JJ

$�� ���������-��� � ���� � ���� � ������� � � �� �������F�� �� ���� ����G �� "� � ����

� �!��!�I���)��������)��� ���

-�*E4��(FII/

���

5J� I�� �J� I�� �J� I

5

���

5JJ�

II5

���

5J� I�� �J� I/� �J� I/�

5JJ� II/�

5J� I/� �J� I�� �J� I

/

���

5JJ�

($E*+F"( %�7�2�3GG�&)9;+(F

II�� �J� I�� �J� I/� �J� I�� �JJ� II/

���

5J� I

5

���

5J� I/�

5J� I

/

���

5JJG

)�� �� �����������- ������ � ���" �� ������

� ���������������D� �����������

0

0.5

1

1.5

2

0.5 1 1.5 2

Page 293: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � "�

$�� �����"�� ������ � ���� � ������� ���������-��� � ��� � ������ � ������� ��

� �!��!� �� ���������$������ ������� ����� ��� ��-��!��!�I���)����� ����&��������� ������$�������� ��� �����

=����� ���� ����) �� ����)� �� *������������!��!�*#$��$ �� ���������

$�� �����"�� ������ ������ 5�2 �� ���� ���� �� � ��������� ��� �������� �� �� ��

� ���������!��!��������$�������� � ,��� ,����� ������)��������������

������� : 9���� � ��"� �� �� ���� �� � �������

� ��������F��� �� ����������������� ������L�������! ������ ����� ����� �� ���

� � �� ������������� ���� �� ������ � � ������ 3 ������L���� � ��� IVGWOV;<���-������� ��������� ������ ������ �� ' ���� ��00����� ��� �����

$�� �����"�� � � �� �� � � �� � ����� � 5�> ������

� �����)�� �� ���2�2�� �2��2�� �2�2����

�� ���� ?M II/� �� �J� I�� /� �J� I�� �� /JJ

$�� �������;�� � ���� � � ���� � �� �������� �� �� ���� ������ �� ������

Page 294: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ��������F���������)��� ��

-�*E4��(FII/

5�/

5�/

5J� I/� �� �J� I�� /� �JJ�

II/

5�/

5�/

5J� I�� /� �J� I�� �� /JJ� II

/

5�/

5�/

5J� I�� �� /J� I/� �� �JJG

.��� �� ���� ������� � � 5�> ��#���� � ������� ���� ����� �����D��13 � � � ����� � ������ � � ��

� IGVX,5�D��

�� � +=����� �� �� �� �=�� �� �������;�� � ���� � � ��� � �� � � ������� � "�� �� � �� �� �����

� �������� �� ���������$������ ������L������ ����� ��� ��-���������F������ ����&�������L�������� ������$�������� ��� �����

=����� ���� ����) �� ����)� �� *�������������������*#$��$ �� ���������

$�� �����"�� ������� ��� � �� ������� � ������� ���������� ��

� ��������� �� �����������������������$�������� ,��� ������)��������������� ���������������������$�������� �������������

Page 295: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�' ���� ++��� ,��� ��� ��������� �* �� � "'

E� �� �� �� �������#%%%8 ���D��13' ������ � ���� ��C0� � /=3G � � � � �� �7 ����� �� �� ���D��13�

������� ; $��� �=����� ��� � �� ��� �� �� 8��� ���� � ���� � �����D��13 � � ���

� .���������� �� ������� ����� :���� � ������ $������ ���� �� -��

� ��� �� ��0+ ' 0+3������� 3 ����!��� �0+ ' 0+3������� 3 ����!�� �0+ 3 ��������� ����� �� ��0+ ' 0+3������� 3 ����!��� �0+ ' 0+3������� 3 ����!�� ,3� � �3I���� $����� �� � � 3������ ' ����!�� ����!��� ,3� � �3I���� :���� �� � ' �'����!��3������� ����!��� �,3I� ' �'����!�� 3 ��������� � �� ����,��@:���� � ������ $������ ���A�� !�2003I�� ��I�003I�� )�����M�M���� � �� �������� �� ���2����8=<T� ���������� ��-���������- � IVGWOV;<�� -����� ��� ������ ��������.������������� ����������$�� ������)������������� ��������������2�1���

Page 296: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

$� ��� �� ���" �� �� 8��� ����� �� ������ ���� ���� ���������

� ����������-� �!��!��.� ,���� .�.��������������� ������)��������������

'�* $�� � ����� ��� �

$��� ����� ���� ���� ��" � ��� � ���� %��� �� ��> ���� � � ������� $�� �=������ ��� � �� �� ���� ��������� �� ��� ��#��� � � ���� ��> �� 5�> ������

$�� ���� �� � � ��� � � ���� � �� ���� � ���� %��� �� ��� �������"�� ���=�

��������������# ;8 �"8 �!8 ����'

� $�� % � � � ��� �� �� � ��� �� ��C� "� ������ �� �=� �������� ������� �� �� �C��� �� �� ���� ������� �� �� ���� %����

� $�� � � ��� �& �� �% ���� ��� �� ����� � �� �� �� ���� ��

� $�� � �� � � ��� �� �&� �� �% � � ������ � �� � � �� � � ��� �7 � �� �� �� ������ �������

� $�� ������ ��� ���� ��� ��� �� ����� ����� ���� ������ �� ������ �����C�� $� �� ����� � �� �� ����.��8� ���-��.���4� �� �����.��������� � � ������

Page 297: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ������ 5���� ���� � "!

.����� � �����$�� % � ��� �� � � �" � ���� � *� I�� J �� ��� �� �� �� ����� �� � �" �� I�� �J �� ��� �� ������� �� �� ���� � (�������� ����� �� � � �" "�� � �� ������� �� ���� �� */� *�� �� *5�"�� � */ ����� �� ������� �� �� � �"� *� �� ������� �� �� � �"����� �� *5 �� ��� �� �� ���� �� �� � �" ���� � �� ���� �� ��� �"�

������� ( $�� �����"�� -���2 � ���� � ��� �� ���� �� ������ � � �"� � �� � ���� �� � �" �� ��� ��� "� �������? � ����� F����� �� ��� � � �� ��G �� �� ���� �� �� � �" �� � ������ F����� �� ��� ��� ��� �� ��G �� �� ���� � �� �������� �� � ���� �� ���� �� ��-�� ���� ����� �� ������ � � ��� ���� ��� �� �� �� �� � �� �� �� � � �" ��� � ������ � ��� � �� �� �� �����

� �����# �� ����������������� ����������� �� �� �,�� ����� �� :� �� �� �� G� H��� <��� �� ���������

� � �� ������� : �� �������� �& $�������� B!���&����B� �� ���2 ��� :�2� �$��� ���!�� IVGWOV;<������ ��� �&�� � �� �������� � �� ��������� / G � ���)�$ �& ����#� G �� ����&��-����4 ' :4���� H�� �� ����&�� � G��� <�� �� ����&�: � G��� ��� �� �� ' �3<���� � � �3H������ ��� �� �� � �3<���� � ' �3H������ ��,� �� �� � �3<��� � �,3H��3G ' ��� � ' �3H��� � �,3<��3G ' :��� ���� �� �� ' �3<��� � �,3H��3G ' ��� � � �3H��� � �,3<��3G ' :��� ��+� �� �� � �3<��� � �,3H��3G ' ��� � ' �3H��� � �,3<��3G ' :��� ���� �� �� ' �� � ' :��� ��1� �� �� ' �3<��� � �,3H��3G ' ��� � � �3H��� � �,3<��3G ' :��� � �� ��-�����&������� �� 001���

� / ������� �������� ��)! ���� �� IGVX ���� ���!��!�� &�� � ������� �� �������������������$��)���� ��)�� �00���)� ���� IGVX���������� IVGWOV;<������ ���� ��,�� ������� ���+�� ����� ��1��� �������������� H7LR=<������ ���� ��,�� ��+�� ������ ��1�� ����� ������� ��� �����

Page 298: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

"" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

����� .��� �� ���� ������ � � �� ����=� �� � � � ��� �� ������� � � � �� �� � �" � "� �� ��

� �� ������� ���� �� �� ���� ��� ��� ������� �7 �� � C� �� � �������� ������� � �� �� � ��� � �� ��� � �� � �� �� ����� � F�� �=������ � ������= ��� � � � ��� �� �� ���G� �� -���2� ���� � � � � ����� ������� $�� �����"�� � � �� � �"��

� ����# �� IGVX� �����#��2�2�� ���� 20� 20�� �,�� ������������� ����# �� IGVX� �����#��2�2�� ���� 20� 20� �,�� �����������#���� ����#, �� IGVX� �����#��2�2�� ���� 20� 20,� ��� ������:�!����� ����#� �� IGVX� �����#��2�2�� ���� 20� 20+� ���� ������)�������

$�� �����- ������ � �� �� ����� ������� �� ���" � � �� �������

� #��$��������

(�����)� �$� �� � �$��)������� $�� :��� ����&����

� ��������������������#� ����#�� �����#,� ����#������ ������)��������������

1.

0. 1.0.

1.

0. 1.0.

1.

0. 1.0.

1.

0. 1.0.

�������� � ����� ��� 5��� $�� ������ �� ��� ����� � ���� � ��� �� ��� ��� � �� � ��� ����� � ����� �� ��� ��� � ���� %��� ���� ���� �� � ��"� � ��� �� � �������� �� $�� % � �� ������� ��� �� �7 � �� �� �� ��� ��� �� �� �� $��� ��� �� ��� � �� ���� � ���� �� �� � ������� ����� ��� ����� ��� �� � � �� �� � ��� ��� ��� �� ����� ����� ���� � � ������ � � ��

Page 299: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ������ 5���� ���� � "#

������� ) $�� � ���� � �� ����� ��� ���� �� ������ ���� ���� �� �� � ��� � ���� �� �� �� "� ���� �( �� �� �� ��"� � �� ��C�� " �� �� �� � � �� � �� ��� ���� �� � �=� �������7 ��� �� �� �������

� �� �����&� �� ������� �� � ��� �$����� �$������ ����&���$���� � �$������� ����� ����&���$���� � �$������������� ��� �����

$�� �����"�� �=����� ��� � ����� �������� � ����� �� �� ��� �� � �� � ���� �� �� �������

� �� :� ��� �� �� �� �����&��200� 20022� 1� M��

�� �� �� � �� ?M �� ��� ��� /��

��" � �� �"� �� �- ���� �� �����"�� ��� ���

� �� :� ��� ���

�� ��� ��� /��

������� 7 $� ���� � � � �� �� �� ���� ����� �� �� �=���������� �� ����� ������� ������� $�� � ���� � A�������B����A ����� � ���� � � �� �� �� ������� � � �� ���� � �� � �� "���� �(���� � �� � ��������

� *��������)���* �� �����&� �� �� � ��� ����� �� :� �� "� ��� ���� / �:���� ��&�� ����� �:�!� �� ���� ��:������ �� �� �����&���� �� � ���� / �!��!� )��� �& &!������ ���!��� ���-����-�����&�&�� ' �3��� : ' "3������ ��200 ���� "�200������ ��� �����

��" ����� �� ��%�� ���� � � � � � �� �� �����"��

� ��������&� )���� 00� �00�� ,� ��

II�F/�� 2�G� �F/����������� 2�G� �F������������ 2�GJ�

I�F/�� :�G� �F/����������� :�G� �F������������ :�GJJ

Page 300: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

������� 8 $�� %�� ���� � ���� � ��� ���� �� ������ �� ��� �� �� �� � �"� �� � ��� ���� $�� ����������� ����� �� -���2 � ���� � � � �" �� ���� ��

����� ����������� ��� � ���� � �" ��� �� � �������

� )����������� �� ���������� ����� � �� �� :� ��� ���� ����� �� "� G� ������� ������� �������

� / 5���� ��� ������) &�����0� G �� �����-���-������"����4 ' �����"����4�� ��00 �� "�00����� ������ �� ����&�����G4������ ������ �� ����&�����G4������ ����� �� ���������� ���������

� / O������� ���� ���� ���!��!��0� / =��$ ����# �� �������� ���� ��� �����0� IGVX���-���-� �����#�� �� ' ����3�� � �����"����3��������� : ' �"��3�� � �����"����3���������� ������"����3������� �����"����3��������� �������� ������� �,�� ��00 �� "�00����� / X$��.���� �& ���� � �������� / X$��.���� �& $��� � ������� ��� �����

������� 9 ��� ���� ���� � ����� �� �� " �� �� ���������������������

� ������&�������� �� �����F� �� �� � ��� ����� ����� ����� �� :� ��� ����

� / O������� ���$ �� ������ ���� �$� )��� �& ������0� ���� �� ��������F��� )���� �� � � � ���� ���� �� ��������F��� )���� �� � � � ����

� / V:���� �$� �� ��� )��� ��&�� ����� &�� � ��� �0� ��:������ �� �� �����&���� �� � ����

� / O������� �$� &���� ���� ���!��!��0� )����������������� ����� � �� �� :� ��� ���� ��� �����

$ � �� � ���� � � �� ���� %��� F���F�G� ��F�GG�

� � �� ����� �� �����3��� - �� ����� �� �����3���� ������&������������ -�� 200I�� 200I�� +� 2��

Page 301: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ������ 5���� ���� � #�

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2 2.5 3

$�� �������������� ���� ���"� ��" � " �� � � ���� � �� ���� ��� ���� %��� ���� ����� � ��� ���� ���� ����� �� �� �� �

������� : E� �� � ��� �� ������������������ � ���� �� "���������� �� ������� �� � ��� �� " ����� ���� �� "���� ������ �� ����� "�� "� ������� $�� ��� � �� ������ ������� �� ������� �� ����� � $�� ����� � �� �� /� � � � �" � �� �� �C��� �� ���� �� /� � � � � �� �� �� ���� �� ���� F�� "�� �� ���������������� ������G�

� ����������&�������� �� �����F�� ����� � �� ����� ������

� � �� �����F�� �� �����F����� / O������� �$� �� ��� �� �� ������� �& F0� ���� �� ���! �� ���� �� ����&������ !�� F��� ���� �� ���! �� ���� �� ����&������ !�� F���

� / O������� �$� &���� ���� ���!��!��0� )����������������� ����� � �� � � �� ���� ��� �����

$�� �����"�� �� � �=����� �� � ���� � �������������������

� � �� ������ ���� �,�,���� ������ ��2�� �+������ ����������&������������

Page 302: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

# � �� ���� '� ���� ++��� ,��� � ��� 2� �����

1

1.2

1.4

1.6

1.8

2

2.2

1 2 3 4 5

$�� � � � � ������ "�� �� �������������� � ���� ��

� $�� � ���� � ��� "� �� "�� ��� �� �� �� E� �� ����� ���� ����� �� ���� �� �=� ������ � � ���� ��� �� �� �� ������������ �� �������������� � ���� � "�� �� ���� �� �� F��� �� ���������� � ���� � � ����� ���G�

� $�� � ���� � ��� "� �� "�� ���� �� �� � � � ����

$� ��� ���� � �� � ������� % � ���� ��� �� � ���� �� � � ����� �� �� ��� �� ��� � �� �� ��� ��� � � �� ��� � ����������� ��� ��� �� ��� �� �� ����� � � ����� ��� ��� � � �� ��� ��������� �� �� �� �� �� � ���� �� �"� � N������������ ����� ��� �� ���"� � N�������� ��� ����� "����� ���������� 6� �� � ��� ����� ��� �� �=������ � �06 "������ �� "� ��� �� ���

����� �� " ��� � � ���� � �� ���� �� �� � ��� �� �� ��� � �� ��� �������#%%%8 ����������' "����� � �� ���� �� � ����� �� ���� ��� � � � � �� �� �����"�� �� ��

� %% �8 �%% �8 ��*""8 %%% 8 *"� 8 %%% 8

�*�" 8 %%% 8 *��

� ��� ���� �=� ������ � � ���� �� �� �� � $�� � � ����� ������� ��� ���� �%%% �� �%%� ���� "�� �� H ��� �� �� �� �� �� � ���� ��� ��� �� � ���

� �������������3��� B)���������B�� ��200I�� ��200I�� )������ ,���

Page 303: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ������ 5���� ���� � #�

I����5�/2/�1�:�5�0131� ����5�/2/�1�:�5�0131� I

I��� ��� ��J�

I��� ���13�5:313��05:55�3/� ���25�5�/�/3����32�:�JJJ��� � 4 �� �� �F��G �� ������=� �� �� � �� ����� �� ��� �

���������

� ������������� �� ��)���3��� B)���������B�� 00� �00� )������,���

I/������ �����/�� II��:15/23/0���112��0:����:15/23/0���112��0:� ����'��� J�I/�50:�125:///101��:� ��� ����'��� JJJ

������� ; $��� �� ��� �� �� �������������� � ���� � ������ � ��� �� ������ � �� �� �� � � ����"� � ���� . ��8� ����� $����������� ���� ���� �� ����� � �������#%%%8 ����������'� $�� ���� � ���� � ��������� ������ �� �� ���� � �������#%%%8

����������'�

� �.�������� �� �����F� �� ��� ����� �� ���

� / O������� �$� �! ������ )���� / �& �� ������� �& �$� �������0� � �� ��������F��� B)���������B� �� ��� ��)��� 00 ���)����� � �� ��������F��� B)���������B� �� ��� ��)��� 00 ���)�����

� / X$� �� ��� ��&�� ����� �� ��������� �� &����� / �#� �������� �& �0 X$� &!������ ���!�� ��� / �$� ,�� �� ������� �& � ��� �0� ����� ���� ��,�� ��,��� ��� �����

$�� �" �� ��� �� �������������� ��?

� ������&�������� �� �����F� �� ��� ����� L� L� � �� �� :� �� �� ��� ��� ���

� � �� �.���������F� �� �� ��)���00���)����� L �� ���� L �� ���� � �� ��,�� � �� ������

� � �� �������� �� ����������� �� :� ��� �� �� �� �����&��L� L� � ����

� )�������������� �� � �� �� :� ��� ����

Page 304: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ��� �����

$�� ��� � ���� ��

� � �� ����� �� �����3���� - �� ����� �� �����3���� ������&������������ -�� 200I�� 200I�� )�����,� ����

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2 2.5 3 3.5

��� �� � ���� � �� ���� �� �������������� ����� ��� ���� � �� ������ ���� �� �� ���� ���� %� �� � ����� � �� ��=� �� ��� �������� � �"� ��� ��� A�"��� � �� ���� �� �� � �"� �� ������ � ����C� �� �� � �� ��=��� $��� �� � �� �� � ���� �� ���� � �� �� ��� �� �� � ������ ����� ������ ���� ���� �� 6� �=������ �� �����"�� ����� �� � ���� %��� �� / M ���F�G �=����� ��� ������� �

� ������&�����������3�����3��� �3�����3����� ��200I�� ��200I�� )�����+�2���

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2 2.5 3

$�� %�� �� ��� �� �������������� ��@� � � �� ��� �� � �"����� �� ���� ����W�� ���� �� ���� ���� ������� �� ���� ���6� � � ��� � ���� � ���� � �� ��� ��� � � �� �� ���� � � �� ��� ��� ��� ���

Page 305: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�� ������ 5���� ���� � #'

������� < )���� - ���� �

� *�������������)���* �� ����������F!�������� ����� �������&�� �� "� � ���

� �������&� �� ���,� �������������F!�������� B)���������B� ��)��00���)������ ���� �� ���� �� HVGVL�T7=� ��� ��� �������&���� ��� �����

$��� � ���� � ��� �� �������# %%% 8 ����������' � ���� � ���� �� � ��� �� ���� �� � ��� ��� �� �� ������� �� ���� � F ��� � ����� ��G�

� �������������3��� B�����)���B� ��200� ��200� )������,���

II&�*�9F%�0 � ��G� &�*�9F%�0 � ��G� &�*�9F%�0 � ��G

J� I&�*�9F%�0 � ��G�

&�*�9F%�0 � ��2312���50:�2��5��:G�

&�*�9F%�0 � ��02/23�1020�301:���GJJ

������� = $�� %�� �� ��� �� �� �������������� � ���� � ��?

� ������&�������� �� �����F� �� ��� ����� �� � �� �� :� ��� ��� ����� �� �� ��� G� �� "� ��� �� �������&��� ������� ������� �������

� � �� �.���������F� �� �� ��)���00���)����� � �� ��,�� � �� ������ � �� �������� �� �����������

� ��:������ �� �� �����&������ ���� � ����

� / 5���� ��� �$� &!������ !��� &�� �������) �$� ����#�0� ���� �� ���)�� �00���)����� �& ��� $�������������� ������ �������&�� B����B� �$��� / 5�&�!�� �������) #��� :� ���� / �$� ������ �)���!�� �& �$� �������0� G �� �����-���-� ��"����4 ' ��"����4�� ��00 �� "�00����� �������&� �� �F��4 ' F��4��G�� ��� �&��

� / O������� �$� ��&�� ����� ������ �� ����� �$� ����#�0� �������&� �� ���������������&�� B�����)���B�� �� �� �����������

� / O�� ��� �$� ��� � �& �$� ������� !���) >��0� ��� � �� >�������� �� >����!������ �& !�2 ��� ��2 �$�� ���� �-���!4 ' �4� ��� �&�

Page 306: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� �� ��� �� ���� / ;�� ���>� � ��� � ��)��� !���) >���0� � �� >�������� �� >����!����� !��� �� ��� �� ��� ����

� � �� >�������� �� >����!����� !��� �� ��� �� ��� ����

� / O������� ������) ��&�� ����� ��� ���� ���� ���!��!��0� ������ �� ���02� ������ �� ���02�� ����� �� ���������� ���������

� IGVX���-���-� �����#�� �� ' ����3�� � ��"����3��������� : ' �"��3�� � ��"����3���������� ���"����3������� ��"����3��������� �������� ������� �,�� B�����B��������&��"����� �� ��00 �� "�00����� ��� �����

$��� �� ��� � �� ��� �� �����"�� �����

� ������&�����������3�����3��� �3�����3����� ��200I�� ��200I��)�����+�2���

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2 2.5 3

E� �� ���� �� ���� � ��� � � ���� � �� �� ��F�G�

� ������&�����������3�����3��� �3�����3����� ��200I�� ��200I�� )�����+�2�� �����������3����

Page 307: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�! 2���� ���� 2���� �� ����� � #!

0

0.5

1

1.5

2

2.5

3

0.5 1 1.5 2 2.5 3

��� ���� %��� � ��� �� �� �� ���� � �� �� � ������ � ����6� �=������ �� �� ���� " �� � ������= ���� %��� ��� �� ����������= ��� ������� �� ������= ��� ���� ����� �� ���� � ���� � (����� ��� �� �� � �� �� ���� � � ��� �� ��� �

$�� ���2 � ���� �� � �� ����� �������� ��� ��� � �"� �� ����� �� $�� ���2 � ���� � �� �� � �� ����� �� �� � ���� �� ���� ����� ��� ������

'�. ����� ��% ���� �� ���� �

(���� ��: ��� � ��� �� ���� ������� � �� ������ ��� ��� �� ������� � � �� �� � �� ��� �� � �� � ���� � ���� �� E� � � ������ ������� � � �������� �� �� �� �� � � � $� ����� �� ���� �"���� �� �� �� � �=� ����� � "� �� ������� �� �� �� �� ������ �� �� ���������� � ���� � � +=����� 2 �� ����� ���� $� �� �� ��������� �� � ������� ��� ����� ����� "�� ��� ��� �� �� � ��� �

$�� ���� �� � ���� � � � �� �� ��� �� �� � � ���� ��� � �"� � ���� �� � ��� $�� ��� � �� �������

� M �O F�� /G� �� � M �O F� � /G�

"�� � � M F� � �G�F" � /G �� � M F� � �G�F� � /G� A� � � �� � �� �� �� / �" �� / � �� ����������� $�� %�� � ���� � �� �� � ���� ���� ����� F� +=����� 5G �� ������ � �� �������# %%%8 ����������'

��� � � � ���� �� �=��� �� � � �� ��� � � �� ����� �� � ��� �������

&����� �� � ��� � ? F�� G �� /� ��F�G� E� ��� � ���� �� ���� �� "� � � �� "�� �� ���� ���� �� �����

Page 308: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

#" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� & �� ����� �� ������3���

� ?M F�� G� /

��F� G

������� ( $�� % � ��� �� � ���� �� � ��� � � � �� ��� ���� �� .��� �� ����� �7 � �� �� �� ��� �� F ��� �� ��������G�� ����� ���� � � � � ���� � �� � � �� ���� ��"� � � ��������� ��� � ���������

� &�! �� ��������& � �! ����������

���� ?M ����F�� G

����� #L

��' # ?M ������F�F�� GG ����� ? ��� ��' L

� ��� ���F#� B����� �BG ����

��' # ?M �����F�F�� GG ����� ? ��� ��'

��� �L

X��XF���F#� B����� �BG� #� B����'��� BG

��� ����

$�� �� � ���� �� "���� �� �� �� � �� ��� ���� ���� ����� ����� ��� �� �� ���� ��� �� �� ������ �� ��������� A� �"� � N�������� � ������� ���� �� �� ������ � ������� �� �� � ���� �� ����"� � N�������� �� �� � �7 ��� � ��� �� ������ $� �� �� �� � ���� � ��� �� ���4 � ��� % �� �� ���4 ��� ��� � � � � � � � �� �� �� �� �� �� �� � ���� � ����� �� ���� �������� �� ��� ���"� � N�������� � ������ �� �� ������ ����+�� ��� ���� ���� �� � ��"��� ��������� 6� �=������ �� � ��� ��� ��%�� "����� � M � � M �� � � �� ������ �� � ���� � �� � � �� ��� ��������� $�� ����� ��� ������� � ��� �����C���� ������� ����

� �� ��� F/� /G� �� � ��� � ��� �� ��� � /� ��F/G �� �� ��

� � � �� ���� �������

� &�! ����

/�/0051�/��330/�/�5

A�"��� � �� �� � � ���� �� � � F�� �G� ����� � � �� ��� ��� �� ��%�� � ���� ��� ������

Page 309: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�! 2���� ���� 2���� �� ����� � ##

� &�! �2�2��

����'���

������ & ���� � �� � � ���� � �� �� % � ��� � � ���� �� � ���� ��� ��� 6� ������� "�� ��������� ���� � �� � ��� ��� �� ���� � �� ���� �� ��� �� �"� � N�������� � ������� � �������� �� ��������� �� �� �� �� � �� � �� ���� ��� �� �������� � ������ ���� � ���4� 6� �� �"� � N�������� � ������� ����� � �% � ���� �� �=� ����� � � �� ��� �� ������� ������� �� �"� �N�������� ��� �� �� �� ���� �� �� �� ���� � �� ������� �� �� ��� �� 6� �� � ��� ���� � �� ���� ���� ������ �������� 2�

������� ) $�� �����"�� � ���� � ��� ��� �� ��� ����� �� ��� �� � �� �� � �� � � ��� .��� �� �� � ���� � ���� � ������ ��� �� �� "� ���������� $�� � ���� � � � � � �� H �� � ������ ���

� ����)��� �� �����F� >� �� :� �� �� � ��� ����� �� "� ��� ����

� �� �� �:���� � �� �� ��������� &�� � �� ��� &�� " �� � ��� >��� "� �� F��'����3��� �'�"��3����� ��� ���� ��� ���� ��� �����

$��� ������� � ���� � �� � ��� �������� �� ���� � ����� � � ��������

� �� �����00� 00��� ����)����&� B B� � � � � � ��� � �

�����

/

��F/G

/

��F5

�G

/

��F5

�G

/

��F1

2G

������

� ����)����&� B B� 2� I�� 2� I�� � ��

Page 310: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

=����� ��� &� �! ���� ���������� �������� :� >���

������� 7 $�� ���������� � ���� � ��� �� ������� � ���� ��$�� � ���� � ������ � � ���� �� "� ����� �� �� ��� �� � ������ � ��� �� � ���� �������� *��� �� � ���� � �� "��������� ��� ��� � �� �� � ���� ��� ��%�� � ���� � � � ��� � ������� � � ��� �� � �� ��� �� �"� � N�������� � ������� ����� ��� ������ ���� ���������� �� ���"� � N�������� � �������

� )��������� �� �����&� �� �� � ��� ����� !� �� �� >� �� :� �� ���

� / 5� ��� ��&�� ������� � �� �$����� : �� �$������ � �� �$����� � �� �$������

� �& 5�)��� %� ����$&�5�)���� �$��� ���� / X�� �� !�� $���#��� &�����0� > �� �����00 � 00�� ���������&���������� ����$&�����)����&� >� �� :� �� �� � ����� ����$�� / 7�� ��&�#��� &������ &���� ���������) & ��� / � ��&�#��� &���� &!������0� > �� �����00 � 00���� ����)������������&� �! ���������� >� �� :� �� �� � ���� ��� ����� ����� / 7�� ��&�#��� &������ &���� ���������) & ��� / � ��&�#��� &���� &!������0� > �� �����00 � 00���� ����)������������&� �! ���������� >� �� :� �� �� � ���� ��� �&�� >�� ��� �����

������ ��� ��������� $�� ���������� � ���� � �� �� �� �"� �N�������� � ������ � ���� ��� "� �� �� ��� �� � � � � �����"� � ���� ����� � �� ����� "�� � �� � ��� �� ��%���

� )��������������� �� ������3�� � 200,� 200,� � ,��

I����'��� � ����'��� � ����'��� J

I����'��� � /�����//5�2�2:3�20� �

3��0:/:351�353/0::3J

Page 311: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�! 2���� ���� 2���� �� ����� � �$�

� �� �����"�� �=������ ���������� �� �� �� �"� � N���������� ��� �� ���� ������ $�� ��� �� ��� ���� ���� �� ���� � ���� �� ����@� ��� �� � ���� � ���� �� � � � �� �� �� �=������

� )��������������� �� �����3��� 200,� 200,� � ,��

I�� � �� � ��J

I�� � ��11321210::�2��222� � ��/2//����0��10:3�/5J

�� �� ��� �� �� � ����� �� �� �"� � N�������� � ������ ��� ������ �� ���������� ��� ���"� � N�������� ��� �����

� 5�)��� �� �� )��������������� �� �����3��� 200,� 200,� � ,��

I�� � �� � ��J

I�� � ��11321210::�2��225�12/3 �

��/2//����0��10:3���/��3J

� 5�)��� �� 2�

��� �� �"� � N�������� ���� ����� � � ��������� �� ��� �� �� �� � � � �� "�� ���-��.����@ � � "���� ���� �� �� �������� � �� ������� � � � �C0� � � � � � ������ � � ��

� IGVX,5�OL95�200,� 200,� )��������������� �� �����3��� 200,�� 200,� 2� 2��� ]=<�\V]=5���

00.5

11.5

22.5

3

00.5

11.5

22.5

3

–1–0.5

00.5

1

��� "���� �� ��� �� � �� � � � �� "�� �� ���� ����-��.�-�4���� "���� � � �� ���� �� � � � �� "�����-��.����@ ���� � ���� ������ ����� � ��� ��� � � ��

Page 312: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

'�0 ����� ���

����� �� ��� �� ������� � "� � � �� ��������� �� "�� �������� ����� ���������� � �� ������� � �� �� �� ����������� ���� � ��� >�� � � �� �� �� �����"�� ��� �� ��� ��������

����# �10/��=# %%% ' '

������# �10/��=# %%% ' '

����� �� �10/��= � ��� �� � ��7 ��� �� � ����L ���� � ��� �� ���� �� �� ���� ����� ��#��� �� �� ����� � � ����� ����� � �� �� +�� � � ���� � �� � ���� � ������ � ���� � �� � ��7 ����� � ����� 6� �=������ � � �� � � �� � �� � � ���� � ��� �������"�� ����� ������ F� � � ���"G�

� ������� ��������� ����� ����� ��3�� ���00�� � � 00,�� �! �������,� &�� �� � , � ��

$�� � ��� ������ �� � �� ���� �C��� �� �� � �� F�� G M F/ O���F*&�/0�G�� / O ���F*&�/0�G ��F*&�/0�GG�

� ������ �� � �� ����&�� � � ' �������23I��� 3 �������23I� ��� � ' �������23I��� 3 �������23I� � � ��

6� �=������

� ���������

I/�110/3�0��� ���:1333355�3J

E� �� ��� � ��7 ��� �� �����

� IGVX� IV9;X<� ��-� ���������� ��200M2 � � ��

0

0.2

0.4

0.6

0.8

1

1.2

0.5 1 1.5 2

Page 313: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�" 3��+ ���� � �$�

E� �� �" ���� � ������� ���� ���� � ��� ����� �� �������� ����� �� �� � ���� F�� �G� �� �� ��7 ��� �� ���� � ��� ���

� &�� � �� � �� � IVGWOV;<�� � 2� 2 ��� ��-� ���������� � � 200�23� � ��� HVGVL� LO\� 02��� 02��� 02�� � � ��

$�� ������ F� ���"G ������ �� ��= � �����

� IGVX� ;98 X=� ��-� &�� ����� � � 00� � � ��

�� ��� � ������ 5� $�� �����- ������ � �� �� ����� ������� �� ���" � ������� ���� �� ��

� #��$��������

(�����)� �$� �� � �$��)������� $�� :��� ����&����

� �������� IGVX� ;98 X=���-�&�� ����� � � 00���� ��

1.

0.

–1.

2.0.

1.

0.

–1.

2.0.

1.0

.5

0. 2.0.

1.0

.5

0. 2.0.

1.0

.5

0. 2.0.

1.0

.5

0. 2.0.

��������� *�+��� �� ����$�� ��-������ � ���� � ��� � ��� ��" � ������� � ���� �� ��� "���� ����� ����

������� ( $�� � ���� � ���� � � ������� ��#�� �� �� �� � ����� ������ � "���� ���� � ��� �� � ������� �� ��� �� �� ��#�� "��� ��@� � ����� ����

� #��$������������

(�����)� �$� ����)��� �� � ����# ��# $�� � )��:��:�����)

Page 314: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ���� ����� �� ����� � �� ����� �� ������ ���� �� �������� � ��)��00���)�� �� IGVX,5������� ��� IGVX,5� ;98 X=� ��-� � ��������� �� ���-����� ��� ��00� � ��� ��� ���� ���� ��� �����

$ � �� � ���� � � � ��������� ��

� ���� ������ ������$�������� ������)������������ ��

$�� ���� �� ��� ��?

� �������� ���� ������ ������$��������� ������)������������ � ��

0��� � $� ������� �� ����$�� ����� ��� � � � ������ "� ������ �� � ���� �������? ���� �� ������ � �� ����� ������� �� �� �����- ������ "���� ���������� . ���� ����� 6� �=������ �� �� ���" ��" � 6� �� �� ��� ��� �=����� � � ���� � � � � �� ��� I�� �J �� ��� ���C�� ��� ��� �� � �������� ��� �=������ �� �� ��� �� � �� �� ����"�� ���� � ���� E� �� �� ��� �� �� �� ��� � � �� �� 6� �� �� ����� ��� ��F�G M ���� O

����� �� ���F

�������G O �� ��F

�������G� "�� �

�� M�

�� �

� �

��F�G ���

��&

�� ���

���

��

�� M�

�� �

� �

��F�G ��

��&

�� ���

����

Page 315: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�" 3��+ ���� � �$'

������� ) $�� ������������� � ���� � % � ���� ���� �� ���� ���� 6� �� ��� �=����� �� � � � �� $�� ������������� ��� ���� ������ �� ���� ����� �� %���� � ���� � ��� �� �� � ��� ��� ����� ���

� &�!����I���!�� ��� ����� &!��� ����)����� �����)�� ����������� ����� �� �� :� �� .� "� �� -� �����! ��

� � �� �$�� �$������)�� ��� : �� �$�� �$������)�� ��� � �� : � ��� � �� 3 I� 3 �$������)�� � ���

� �����! �� �� 3 ����&� 9��� &!��� ����)�� ��� &�� . &�� �� � ��� / O������� �$� ��� � �& �$� F�!���� ������ �& &!��0� �����! �� �����! � ' �� 3 ����&� 9���&!��3����.3��� ����)�� �� 3 ����.3��� ' �� 3 ����&� 9���&!��3����.3��� ����)�� �� 3 ����.3���� / I��� .��$ F�!���� ������� �����0� -�.� �� ����� �����! � ����)�� ������:�!��� ��)���00���)�� ��� ��� ���� / O������� ��-!���� �& &�� ��0� - �� ��������������� � ��-� -�.�� .�00� � ��� ����-!�������!� ��� / �� �$� &!������ ����� �� �� ���$ &�� �0� � �� ����� &!��� ����)�� ����� � ���� ��)���00���)�� ��� ��������������� � -� � � ��� ��� �����

E� �� �" �� ������������� � ���� �� �=������ �� % � ��=6� �� ��� �=������ �� !��

� &�!����I���!��� ������� ��2002� � ��

$�� ���� �� ��� ��?

� �������� &�!����I���!��� ������� ��2002� � � ��

Page 316: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

.2e5

.1e5

0. .1e20.

.2e5

.1e5

0. .1e20.

.2e5

.1e5

0. .1e20.

.2e5

.1e5

0. .1e20.

.2e5

.1e5

0. .1e20.

.2e5

.1e5

0. .1e20.

xxx

xxx

$�� �����"�� � � �� % � ��= 6� �� ��� �=������ �� " 56 ����� #"5('�.��� �� �� ����� � ��� �� ������ � �� �� �������.���� ������ �7 � ���

� &�!����I���!��� 3��)�! ����� ���00,� ��� ����������!� ��

$�� ���� �� ��� ��?

� �������� &�!����I���!��� 3��)�! ����� ���00,� ��� ����������!� � ��

2.

0.

–2.

2.0.–2.

2.

0.

–2.

2.0.–2.

2.

0.

–2.

2.0.–2.

2.

0.

–2.

2.0.–2.

2.

0.

–2.

2.0.–2.

2.

0.

–2.

2.0.–2.

xxx

xxx

E� �� ���� � ��� ������ ������� "�� ��� �� ��� ��� �=�������� � �� �� $���� � -��]�� �� &��������!-��]�� "�� �� ��� ���C���� ��� � � �� �� ����� ����

�� � ����� .� ���������� ��7 ���� �=�� � ��� "� �� � �� ���������

������� 7 $�� �����"�� � ���� � ��� � ����� �� �� ��� ���������� � ��� � �� ����� ��������

Page 317: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�" 3��+ ���� � �$!

� X��P��� �� ����� ��� ������ �� ����� �� �� �!���� ������� �!��� �� � �23������ � 3����+3�� ' +3����3���� �+3����3�� ' 23������ � 3����+3���� 23����,3�� ��� ����� �� � ��-� �������!:������� �!����� ��2003I�3���� ����!��,��� ��00� � ��� ��������������� ������ ����-!�������!�� ����������$��� ��� �����

E� �� �� �� �� �� �� �=������ ��= ������

� X��P�������

$�� ���� �� ��� ��?

� �������� X��P������ ��

.� ������� ��'����� *�+���� � 0��E� �� ������ �� � ������� ��#��� � �� �� ��������� ������� "���� ������� ����7 ��� ���� � ����� �������� ��#��� � �����

������� 8 $�� ���������� � ���� � � ���� � �� �� � �� � 5�> ����� � ����=� $�� ���������� � ���� � ���� � ���� � ��= �� � ���� �� �����=� � ����� �� �� �� ��=�� � �� �� � ������� ������� � � ��� ��� �� 6� ��� � �� ����� ���� ��=�� ����� �� ����" �� �� ��� $������������ � ���� � �� ����� � ���� � �� ������ � � ������������ �� �� ��= "�� �� ����� �� ��� "�� � �� ���� � � � �� ����� �� � ������ �� � ���C�� � ��7 ��� �� ������� �� ���"����� � ��7 ��� �� ��� �����-�

� �����)I��� �� ����� � �� ����� !� �!���� �����)�� :��� ����� :���� ��� $����� :���� :�����

Page 318: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� �!��� �� �!��� �� ������!����� �������� ������� �3����!��3I��3��22��� ��20023I��� ������:���.� �! �������22� �$��.�����, ��� �����)� �� �������� � ��-��!����!���� !�00�� ��� ����-!�������!� ��� :�� �� �!:���� �����2�� ����� ��������� ��� :��� �� ��$���� �2�2��� )�����+� +�� ������:�!� ��� ���� �� �������� � ��-�� ���������� :��� 2� 2� ����!��3I��3�3I��+ ��� !�00� � �� ����-!�������!� ��� :���� � �� �������� � ��-� ����������:��� 2� 2� ���� !�00� � �� ����-!�������!� ��� :���� �� �������� � ��-� ���������� :���� 2� 2�� �3���� �!�������3I� � ' �3����!��3I��3I��2 ��� !�00� � �� ����-!�������!� ��� �������� �����)�� ����� :���� �� :������ ����������$� ��������������+�1���� ������)������������ ��� ��� �����

$�� ���� � �� ���������� � ���� � ��� �� ��� ���� �� �������� � �� �� ����� �� ��������� �������� � ��� ��� ���������� ���� ��� � �� ��������� �� �� �� ��� ����� $� �� ��� �� ��� ���� ���������� � ���� �� �� � � '��� ���� �� ����� �� ���������

���������

� #��$�������� #��$������������� �����)I�������� �������� �����)I������ ��

6� ��� ���� � �� ������� � �� ��������� ������� ������ � ������ � ���� ��� ��� �0� �������� �� � �� ��� ���������

���1����

Page 319: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�# ���� ++��� ,��� ����� � �$#

'�2 ��%�����% 5� � ����

E� �� ���� ���� ��� �� ��#�� � ��� ��� � � ��� �� ��� ���� �� ����� � ���� $�� ����� ���� ����"� �� � �� �?

� (���� ���� �� ��������� � ���� C�M ��� �� � G,= ��� �

� &��� � ��� �� ��������� � ����� �� � �� � � ���

$ � �� �����"�� ������� F� � � ���"G�

� ����,�� �����3��� ���,00,� ���,00,� ��������� ��� ����,�� �����3��� ���,00,� ���,00,�� ������HVGV7L�LO\� 20,� 20�� 20� ��

� � �� ����� �� �����3���� - �� ����� �� �& � % � �$�� ���� � � � ��� �&�

� ����,�� �� �,00,� �,00,� ������- ��

���� �� � ���� ���� ������� �� �� ���� ������� �� ���� �� �� �� � �� ��"� ����� �� � ������ � �������� � �� ��"�� ������ �� �� ���� � � ������� ��#�� �� ��� ��� � ����,C � ��� �� �� �� ������� ����� �� ��#���

� IGVX� IVGWOV;<� � �2�2�� ��2�� ��� ��� � ��2�� ���� ���� ��2� ��� HVGV7L�LO\� �� �,� �� � � ��

0

0.2

0.4

0.6

0.8

1

0.5 1 1.5 2

E� �� �� ��@� � ���� � �� ���� ������ �� ���

����# ���D��13# ("8 %%% 8 (� 8

����,C#C�M8 �"8 %%%8 ��'' '

Page 320: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� '� ���� ++��� ,��� � ��� 2� �����

����# ���D��13# ("8 ����,C#C�M8 �"' '8 %%% 8

���D��13# (�8 ����,C#C�M8 ��'' '

6� �=������ �� �����"�� "� ���� � � �� �� ��� �� ������� � �� � �� �� � � �� ������

� IGVX� IVGWOV;<� � �2�2�� ���� ��2� ��� HVGV7L� LO\� � 2� 2 � ��� IVGWOV;<� � �2�2�� ���� �2�� ��� HVGV7L� LO\� 2� � 2 � � ��

� IGVX� IVGWOV;<� � �2�2�� ���� ��2� ��� � �2�2�� ���� �2�� ��� HVGV7L� LO\� � 2� 2� 2� � 2 � � ��

0

0.2

0.4

0.6

0.8

1

0.5 1 1.5 2

$�� � �� C�M ��� �� � � �� ��� � ��"�� � �� /�

�������� ��� ������$�� �����"�� � ���� � ��� ��� � "� � ���� ���� �� C�M ��� ���

������� ( $�� ����� � � ���� � � � � ��7 ��� �� "� ������?� ���D��13 � � � �� � �0��=�

� ����� �� �� ����� � �� \�� ����� �� "� ������� ������� &�������� / ������ � ��-!���� �& ������� &�� ������)���� ������ �� ��-� ��-� ����&�� � ��� � "���� ���'�� � "����� ���'�� � �"'����� ��� � �"'���� �� �� ��200 � �� "�200�� ��� / ������ � �������� �& LO\ ����� ���!��� ������ �� ���-� ��-� ���� ��� "������ \��� ��200 � �� "�200�� �� �� / &������ �!��� �$� ������ �������� ���� � ��-!����� &������ �� � �� ��� ������ �� ��� IVGWOV;<� �������� HVGV7L�LO\� &�������������� � ��

Page 321: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�# ���� ++��� ,��� ����� � ���

� X9XG=� ���� J\�!��J� ��������\� �����)� � ��� ��� �����

$�� �����"�� �� � /�� /� ���� �� ���� �L �� �� � ������ �� ��

� IGVX� ����� ���2� 2� 2� ��

Blue=0

0

0.2

0.4

0.6

0.8

1

0.2 0.4 0.6 0.8 1

#��� �� ���E� �� �� ������ � �� � �� �� � ������ �� �� � ���� � �����

������� ) $�� �����"�� ����� �� � ���� � ��� ������ � ���� �� � "� �� � ���� �����

� ����� ��� �� ����� � �� &�� ����� ��� IGVX� ;98 X=� ��-� � ����� ��� � �� ���&��� ��� ��200&� � ��� ]=<G \=G<�JL��J� JO����J� ��� ��� �����

6� �=������ �� �����"�� � ��� � �� ��� � /��/��/� ���� ����F� ���"G�

� ����� ����2� 2� 2��

E� �� � ��� � ���� ����� �� G,= ���� �� �� �����"��

� ������ �� ����&� ��-� � ���+2� 2�� ���+2� ��� ���'��+2� �� ���'��+2� 2� ��� ��200�M���

Page 322: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� IGVX� IVGWOV;<�������� HVGV7L�T7=� ��-���+2� ��200�M�� ��� ]=<X9HP<�5=F 7GX� 2�� <XWG=�I XHT;VOL95� ��

0.2 0.4 0.6 0.8 1

$�� �V=3�0�Y3#�=;�,��8 )' �����%���� �������� �� �=�� �������� ���� �� �� ���� �=�� � ������ �� ���� � ������� ���� �� �� ��C��� �=���

E� �� � ��� � ����� �G�� � ���� � �� � ���� �� ���� ������� �� ���� � ��� ����� � G,= ���� ���

� ����� ��T!� �� �����F� ��� ����� �� �������� ������ �� ��-� ����&� � ����� 2�� ����� ��� ���'���� �� ���'���� 2� �� �� ��200�� ��� IGVX� IVGWOV;<� �������� HVGV7L�T7=� ��-� ����&�F������� ��200 ��� ���� ]=<X9HP<�5=F 7GX� 2�� <XWG=�I XHT;VOL95� ��� ��� �����

$�� ����� �� ��� ���� ����� �� F�G M ��F&�G�5 �� � � � � 2��

� ����� ��T!�� � �� ����I�3���,� �2��

0.2 0.4 0.6 0.8 1

Page 323: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�# ���� ++��� ,��� ����� � ���

$� � ��� �� � ������� ���� ��� �� � � �� � � � ���� �� / � ����� �� � �� ������ ���� �7 �� �� � �� ��� � ��� �� �� ��

� ����� ��O�������� �� �����F� ��� ����� �� &������� ������� )������ ������ �� ��-� ����&�� ����� 2�� ����� ��� ���'���� �� ���'���� 2� ���� ��200����� &������ �� � �� ��� ������ �� ��� )���� �� HVGV7L�LO\� &�������� � ��-� ����&�� F������ F������ F����� ���� ��00 ������� IGVX� IVGWOV;<�������� )������� ]=<X9HP<�5=F 7GX� 2� ��� ��� �����

$�� ����� � ���� � �� �� ������ �� ����� � �� ������

� ����� ��O��������� ����� 2��

0.2 0.4 0.6 0.8 1

� �� ��� �$� ��� � ����E� �� ��� ���� ��� ���� � � �=���� ��� ��� � � ��

������� 7 $�� � ���� � ������������ ���� � ���� � �� � � �,CW=3� ��� ��� �� ������ ��� ������

� ���H!�������� �� ������!����� ����� �� "� ;� � � 8� � �!����� �!�������� �� -��

� / O�� �������) ����� ��&�� �����0� �!���� �� ������� ����� � ����!���� ��� �����������! ������ ��� / O�� ��� ������� :!� ����� �������0� �!������� �� �� ���� ����� � ����!���� ��� @ �����������! �������� ����&!�������$��)� HVGVL��� ����&!�������$��)� HVGV7L� A ���

� / 5���� ��� �$� ������)0

Page 324: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� / 8 ��� ��� �$� �� ��� �� �& �$� ��������0� � �� ����� �!���� ��� ; �� ��� ����� �!���� ��� 8 �� � ��-� ��� ��-� �!�����"�������� ��00;�"� � �� "�00� � ��� �� � ��-� ��� ��-� �!�����"�������� ��00;�"� � �� "�00� � ��� / \!��� ��# �!���� �����) T7= �����0� ��-� H7LR=<� ��-� ��!�����"����� �!�����"���'���� ��00;�"�� ��� HVGV7L�T7=� ��-���!�����"������� � �"����8�"� � �"���� ��00;�"������ ����!�������� �� "�00� ��� ��� �����

6� �=�����?

� � �� H7LR=<� � �2�2�� ���� ���� �,�,� ��� � ��2�� ���� �,�� � ��

� ?M &)9;+(FII�� �J� I/� /J� I�� �J� I5� 5JJ�

II�� �J� I�� /J� I5� /JJG

� ���H!��������� � ��

&)9;+(FII�� �J� I/� /JJ� II/� /J� I�� �JJ� II�� �J� I5� 5JJ�

&�*�)9F%�0 � ��/

5��

5GG�&)9;+(FII�� �J� I�� /JJ�

II�� /J� I5� /JJ� &�*�)9F%�0 � �� /GG

$� ����� �� �" ���� �� � � ���� ��� �� ������������ � ����� � ��� ��� �� �,CW=3 ��#��� �� � �=���� ��� � � ��

� �������� �� ����� ����� �� ����� ��������� ������� �� � �� �& ���2����H7LR=< �$��� ���H!������������ ���� � ��� �&�� ��� �������� ����� ��� ��� �����

$ � ������� � � ��� �� ��F�G O ���F�G�

� � �� ����� ������ ' ������� ��2003I��� ����������� �$��.�����, ��� ��������� � ��

Page 325: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'�# ���� ++��� ,��� ����� � ��'

–1

–0.5

0

0.5

1

1 2 3 4 5 6x

�� �� ������� ���� �� "� � ��� � �� ���� �������� �� "� ���� ���� � ��������

� - �� ����� ����3�� ' ������� ��2003I� ��� ��������� ����������������� -� ��

–2

–1.5

–1

–0.5

0

0.5

1

1 2 3 4 5 6x

$�� ������� � ���� � ���� "� �� � 5�> ����� � ����

� ��� �� ������������!����� � ������� ������� � �� ��200�3I��� �! �������22� �$��.������ ������:���. ��� ��������� ��� ��

Page 326: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� '� ���� ++��� ,��� � ��� 2� �����

E� �� ��� �� ���� �� �� � �=���� ��� �� ��� ���� �� � ������ &��� �� � ���� � � �� �� �� �� � 6���?�

� � I�� /J F�� A ����� ��G � �� �� �� � 6��� ?�

� � I�� /J� I�� /J� I�� /J F�� 94. ���� ���G�

+=����� 5 ��� �� ���� � ��� 6���F�� G M ���=FG�

������� � ����� 1�� ���+=����� 2 ���"� ��" � ���� � ����� ��� � ��� � �� "�� �� �� "����7 � �� � � 5�> ����

����� >� � ������ ����� � ���� �� � ��� �� � � � �� �������� � ���� �� � ���� � � �� � ����� � ������ ���� � �� �� �� ������ �� � �� ����� �� �� ���� �������

������� 8 E� � � % � ���� �� � �� � ���� � �������� �� ��$�� ������ �� �� � ���� � ������ ���� � �� � "��� ���� � �������� ������� � "���� � �� � �� � �� �����

� �$�������,� �� �����&� �� ��� ����� � �� �� "� ����)���� �� ����� �������)� ��>���

� / �:���� )��� ��>�� / ��� )������� �$� �������) ���� ���!��!��� �& $��������� � ��)���00���)�� �� )���� ��>�� �$��� �� ��>����� � �� ��>����� ���� / ��&�!���� �� +�� � �� +�� ��� �&��

� � �� ����,�� &� �� �� ��)���00���)�� ���

� / ������� )��� ���� �&���� ������� �& ��� / ���� ����)�� ����� ����)��� �� ��� �������� ���� ��� IVGWOV;< � ��� / �.� �������) &!������ � ����������) ��� ��� #$���� �������) �� ��� "� �� �& ������"� ��2 �$��� ������������ �����LO\�� ����� ��������#$���� �����LO\�� ��� �&�� / ���00�� �� �� ��� �$� �������� �& � :!� �$� &����� IGVX,5� ��-� ��-� IVGWOV;<� ����)����" ' ����3������� �������)��� "� ��� ��00 � �� "�00�� ��� ���00�� �� ��� ��� �����

Page 327: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

'��$ ���������� � ��!

$�� �����"�� �� � ����� ��� � ��� �� ��F�G ��FG�

� �$�������,�� ������3������� ���I�00I�� ���I�00I��� ����������$� �����&�� � ��

–3–2

–10

12

3x

–3–2

–10

12

3y

–1–0.5

00.5

1

����� $�� �4��������� � ���� � "� �� "�� �� ��� � � � � �������� �� �� �C0� � /=3G � � ���� $�� /=3G � � ��� �� ��� �� �� ��� �� � ����� � � ����� �� �� ��� �� ��� ���� ������� �� �=������

� �$�������,�� ���,�4�3������� ���003I�� ��200I��� ���������$������� ����������$�� ��)$� �������)$�� ��

'��8 ����������

� ��� ����� � �� ���� ��� �� ��" � ���� � ������ � ���� �� ������ �� ���� �� ������ �������� �� "��� �� �� ������� �� � � ������� �� ��������� ��������� A�"��� � �� � ��� �� ��� �� � �

Page 328: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� '� ���� ++��� ,��� � ��� 2� �����

� ��� ���� �� ������ ��� � � �� �� ����L ���� � � �� � �����������%����� �� ��� ����� ����� ����� ���� ��� � � ��� �� ���������� �� �=������ ���� � ��� �� ������ ��#���� ����� ������

��� � � ��� �� �� ������� �� ��#��� ��� � ���� � � �� ��"��� ��� �� �=������ � ��� �� ��� �� �� ������ �� ����� E� ���� ������� �� ��" � ����� ��� ������ � ��� �� ���� ����� � ���� ���"� � "�� � ��� �� ������� ���� ��� ���� �� �������� �� ����������� � ���� �� � � �������

Page 329: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

# $�%��� �������%��&

� ���� �������� &��� 4�� ���

� +=� �� &�����? )��� &������� &��� � �����

� ��������? )��� ����� � &������� &���

� � �������$�� ������������� ������� � ������ ������ �� ������ ����� ������ ��� � �� ����� ��� ���� � �� �� &� 6� �� '���� ��$*�.��� ;�� �� .���� ��� $�� �� ��� ���� �� �� �������� �� ��� �������� �� ������

!"����� ������2 #��� � ���� � � � 0����&������� ���� �� �� ���������� ��� ��� �� ������ ����� �� �=��� � � ���� " �� � &� 6� �� � '���� ������ �� ���� � �� � �� ��� �� �� �� �� �=� �� � ��� "� � � ���� ����� � ����� �� )��� �������� ���� �� �=��� �� ����� �� ��� $�� �� ���=���� � � �� ������� ���� �� � �� �@�� �� �� � ����� � �� ���

*��0����2 #��� 0���� � � ���� � ������ �� �� ��� �� �������� & � &OO ���� ��� ����������� $���������� ��������� - �� ����� �� ���� F�-�G � ������ ������ ������ ���� ���� �� ��� � � ���

*�� ���� ����� ���

��� � �������� �������

&��� ��� �� ����� ���� � ��� � �� ����� ��� ���� �� �� �� ��� ��� ��� �� ������������� �������� $ ����� � � ���� �� � ��

5/1

Page 330: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � �� ���� �� 3�� ���� �����������.

� ����� ��� ���� � � ���������� 6� � ������� ���� ��� � K&����4�� ���� E� �� �� �� ����� �������� ��� ��� � ������� � �� �� ���� ���� �� �� ����� � � ���� ��� ��� �� ��� ���� � �=���� � �� �� � �� ���� �=�� ��� $� �� �� � � ������ ��� �� �� � ��� �� ��� ����� �� �� ������������� ������� � ����� �� ���� ���� � �� ���=�������� �� ����� � �� "� �������� ���� E� �� ���� �=�� �� � ���%�� ����� � � � ��� ����� � �� ��� � �� ����� ��� �����

���������� E� ��� �� ������� "�� �� � �� ����� � ����� �� ������� �������� � �� ��������� �� �� �� �� �"� ������������� ������� ������ A�"��� � �� ������� ������� ��������� � ��� �� � ��� � ���� � � ��� ��������� � ��������������� �������� "���� �� �� ��� � � �� ����� �� ������� ���� � ������ "�� �� ������������� � �����

������ ������������� 5�����

&��� �� ������������� � ���� ��� �� �����"�� ���=� "�� � ��� �� �� �� � ��� �� ��� ����� �� �=������ ��

��������������� # ���������8 ���� '

$�� ��������� �� ��� �� �� �� �����"�� �� ���

� � ����� ����� ��� �=� �����? ����� ��� ��� � ����� � ��� �� ��� ��� ������� ��� �=� ����� � � �� ������

� � ��� �� �7 ���� �� �� �� � ����.��������� ? ����� �� � ����� �� � ��7 ��� �� ������� ������� ����� ��� ��� ���7 ����� ��7 ��� �� ������� ������ � �� � �� ��� ����

� � ���� � ��� � ����? ����� ��� ��� � ����� � ��7 ��� �������� ������� �� ������ � � � �� � �� � �� ��� ����

� � ����� � ���� � � ��� ��? ����� ��� ��� � �7 ����� � �� � � �� � �� ��� ���� 6� �=������ � ����� � � ���� �� &� ����� ��� ��� � � ��� ���� "�� �� ������ � �� �������� ��� � � ��� ���� $� ����� � ��� �� � '���� ����� ��� ���� � '��� ����� ����� ��� "�� �=�� � ������ � � ���� ���������� �� ��� �� ������ ������ � � ���� ���� ������� 6� ������� ��� ���� � ������ � � �����%� ��� ���� ��� � ������ ����� �� �� ��� ���� �� �=������ ���������������� ����������������B������B��������

Page 331: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���� 2���� ���� � ��

E� �� �� ��� ����� "�� �� ������������� � ����� 6� ������� ��� ����� ��� � �� ��������������������� ���� �����(��� �� �� �� � ������� ��� ����� �����"�

� ���� �H�.����? $��� ���� �����%�� "���� �����C��� �� �� ��� ���� $�� ���� � ��� � �� ���� ��� �� ��� � �� ����� �������������� �H� � ��� �� ��� � �����C� �� ����� ���� ����� � � �� �������

� ������.����? $��� ���� �����%�� �� �� � �� �� � � � .� ����� �� �� ���� � � �� � ��� � �� � ����� �� � ��� F��@� �� �� �� ��� ������G � � � �� �� �����%�� �� �� ��� �� �� �� ��� ������� � � %�� �� �� ���� �� �� ��� � �� �� ��� �������� � �� ������ �� �� � �� � ��� $��� � �� �� �� ��������� �� ���� �����

� ��������-���.����? $��� ���� �����%�� "���� � �� ����� � �� ��� ������� �� �� �� ��� � �� ���� �� �� ����� ��� �� � ��� �� �7 ���� �� ����� � ���� ��� ��7 ���� )���� �� ���� � ��� �� ��������-���.���� �� �� �� �� ���� �� ��� ��������� � �� ������ ����� A�"��� � ��� ����������-���.���� ���� �� ����%���� �� �� �� ��� ������ � �7 � �� �� �������

����� �� !��� ���������� .��� �� �� ����� ��� ��� ��@� � � ��������� � �� �� � �� ��� ���� � ��� �� �� �������������� �� ������ ����������� � � ������� �� �� ��� ��� � � ��� � ���� �=�� �7 ����� �� �� �� ����� $�� ��������������������

���� ���� � ������ �� � ��� ���� � �� ������ � ����� ����� � ��" � ��� � �� ������� �� �� ���������� � ������� �� �� � ���� ����� ������ ��� ����� � �����%� ��� ����� 6� ������� ��� � �� ���� ����� �� �� �� ������� ��� ���� �� �=��������������������B������B��������

�������� ������$�� ������������� � ���� �����C� ��� � � ��� �� �� ���������� $���� � � ����� � �� �������������������� ���� ����� $������� ���� � � ������ � ��� �� ��� ���� � �� � �� ��� ����&���������� �� ���� �� ������� ���� � ��� ���� � � ������� ����� ��� ���� � � �� �� ��� �� ������ �� $�� ������������� � ����� ���� � ��� �� �� ��� �� �� ���� �� ������ E� ���=� ���� � ��� �� �� ��� ��� ������� �� ��� ��� �� ��� ��

Page 332: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � �� ���� �� 3�� ���� �����������.

�������-���� ������� �������-��� �� ������-�� ������ �� ����� ���� � �� ��������������������� ���� �����

$�� ������������� � ���� �� ����� � � ��� �� �� ������ ����� $���� � � ����� � �� �������������������� ���� �����(��� � ���� � � ������ ��� � �� �� � �� ��� ����� 6� �� ���� ���� ��� � �����%� ��� ���� ��� � �� ������� ���� ����� �� �=������ ��������������B������B��������

$�� � ��� �� � � ���� � �� ��� ��� �� �� �� � ����� � ���� �� � �� �� � ����� �� � ���� �� ���� �� ��� ��#��� � �� � � �� ��������� � �� � �� ��� ���� �� � � ���������� � ��7 ��� �� ��#���� �� ��7 ��� �� ������ � � � ���������� � � � � �����C�� � ���� �� ������ � ������� ��=����� � � �� �� � �� ����� "�� �� ������������.��� �������� ������ �� � � ��������� ��� ��� � �� ����� �� ��� ����� � � ��� ��

*���� ����� ��#��� �� ��� ��-� �� ����� � � ������ � � ���� �� � �� ��� ���� $��� ������� �� ��� ��� ����������� "�� ����� � � ��� � � �� � ������� � �� ��������� �� �� ����� ��� ��� �� ���� �� ��� � ���� � ���� � �� ��� ����� � ��� � � ����=�� � ���� � ���= ��

������� ( $�� �����"�� �=����� ����� ��� �� ������ �� �� ���� � � '����

� & �� �������� ����� ��� � �� �����3��������� �����&�JX$� ���!�� �� D&J� ���� ��� ������ H���O����������U�����&��

� ���� "���0���)08��$�

����� H���O���������H���� @�!:��� ������ ���� & ���!:�� ��@��!:�� ��� � 8��$0��)��� 3 8��$0��������<���� 0�!�0������JX$� ���!�� �� J ' ���

AA

������� ) $�� �����"�� �=����� ����� ��� �� ������ �� �� ���� � � &� $�� ������-�� ���� ��� �� ���� � ��� � ���� �

Page 333: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���� 2���� ���� � ��

�� �� ������ ���� �����%�� �� � � �� �� � ��� � ��� ����� ��� � �� ������� � �� �� ����� ��

� ) �� ������� �� >�� ���!�� �3���3>'�3>�� ��� ������ � �� H���O����������*H*��)� ��&�!�����������)��� �!��!�������)��

� ?M Q� � F� =� � �� � CG��� � F= S � � � S C O = S CGL�

��R

������� 7 $�� �����"�� �=����� ����� ��� �� ������ �� �� ���� � � 6� �� .��� �� 6� � 33 �� �������������� �� �� �����V �� ����� � ����� � ��N�� "�� �� �� ����� "�

� $ �� �����]���! ����� ��� ������! ����� +001��� ���!�� ]'��+�'����'��1��� ��� ������ H���O����������F��������$��

(�����)� X$� &����#��) �����:�� �� � ������� ���� #��� ���� ��)� � ���

��!:����������� &!������ $ �]� �)���!:����������� ]��!:����������� �)�+�1�$ � ] ' �)�+� ' �)��� ' �)�1����!��

���

�� ������������ !��� ��� ����� �� � ������������� ������ � �� � ������� �� ���� �� � � �� �� ������ �� � ��" �� �� ������� ��� ����� $�� �� ������ ���� �� �� ����� ��#�� �� "������� ������������� ����� � ��� ��� 6� ��� ���� ��� �� �� ������� ����� ��� ���������������B������B0���� ���������3���������

$�� ���� ����� �� � �� ������ ���� �=� ������ � � ����� ��� �� � �������� �������������<51 ���

+ � �� "� �� �������� ��� �� � �� ������������� �������� ���� �������� ��� � �� �� ������ �� � �� �� ����� �=� ������ �� ���� �� �� ��������

Page 334: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� 3�� ���� �����������.

��� ��� ���� �� �� �� �� � � � ������� � " ��� �� ��� ����� � ��� ��� ��� ��%����� � �� ��������� �� �� ��� ����� �� ������ �� � �� � ����� �=� ����� �� � � ��� �� �� �� ���� ��� �� �� ������ �� � "�� �� �������������<50���� ��������� ����� � A�"��� � ���� �� ���� ������ �� �� �� ������ ���� � ������%� � �� ��� ��� � "���� �� � � ������� � ��� ���� � ����� �� ������ ���� �� � �����%� ����� � $��� �� �� ��� �� �������������������������� � � ��� � � ��� �� 5 �� �� �� ���� �������

+=����� 2 ���"� �� �� ������ ���� �� �� �=� ����� ��� � /�$�� % � � � �� �� �� 3���� � � � �� �� ��� �� � ��� ���� ��� �� ���� � �� �� ������ � ������

������� 8 $�� �����"�� �=����� ���"� �� �� ������ �� � �� ���=� ����� ��� � /�

� H���O����������9���� ������H�����3�4���

<����� �� ���:�<���� ���<�-!����� ���)� ����O��������;� ��J�)J�� <! �I���!���9���)�����

I�#���;� ��J�J�� 9���)������� ;�)������9���)��������

!"�� �� ��� � �������� �������� 5���������$�� ������������� ������� �� ��� �� �� "�� ����� � �� ����� �� � �� ����� ��� ����� � ������� �� �� ��%� �" ������ � � ����� ������������� � ��� �� ���� �� ��� ��� �����$���� �� ��� ��� � � ��������� � �� ��������������� � ��������� �� ��������������

& ��� ����� � �� ��%� � ��� ��� � �� �� ��� � �=�� �=����� ��� ��� ��%����� ��� ���� �� �=���� ��� ���� ��� ���������� �� ��� � �� �������

$� ��� � ��� �� ��� ���� � ��� �����C�� �� ���������������� � � ��������� �� �=����� �� ���������������<5���������������<5����������� �������

�� �������� ����� �� ��� � ���� ���� �� ������������� �������% � � ������� �� ����� �� �� ������ � � � �� ������ �� ��$��� �� �����"�� �� �� �� �� � ������ "���� ������ �� �� �������� � � � ����� � �� ���� ��� � ���� ���� ��� �����%� � ��� �� ��� ����

Page 335: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���� 2���� ���� � �'

6� ���� ��� ��� � �� �� ������ �� �� �� � �� � �� �� �������� ���� �� > �� �� � ��� ������ ����� ��� ��� �� �� �������� � �� ������� 6� ���� � ��=� ����� �� �� �� ������ �� �� ���������� �� � � ����� ��������� "�� �� ����� �� �=� �������

.�/�� � ���� ��������$��� ����� �=����� �� � ����� �� ��%�� � ����� �� � � ����� ����

-���� � ������� ����� ��� ���� ������������� ��� ��� ��%���� �� � �� � ��������� ����� ��� ��� ������ � ������� ��� ��� "��������� ��� ���������%� � � ����� � �� ���� � ���������� �� ���� ��� �� � ����� "���� �� �� ��� ��� ��� ���������%� � �������

$�� � � � "� "��� � ���� � ������� ��� ��� $�����������������<5��������������#' � � � ���� � �������

��� �� ������ � ��� ���������%� ���� �� �����������������<5���#������ � �'<5������� ������ � �� ���� �� �� ������� ��� �� ��� �� � � ���� ��� ��%�� ��� ��������� � ��

$�� ��� � �7 ���� ��� ������� ������� � ��� �� �� ����� �������� 4��� � � ��� ����� � �� �� � �� � � � @� � 4��� ��� ��������� � �=� ������ ����� ������ �� � � ����� ��� ��� ��� �� �� �=� ������ � ��� ��� � ����� �� ��� � � �� ���� ������ �� � �� � �� � ��� � �� �� �� � �� � @� � � ������� ������ �� ��������

$���� :�/ ���� ���� � ������� � ����� 6� � ������� ����� ���� � ������� ��� ����� ��� ���������������B���������������B��������

������� 9 $��� �=����� ��� � ��� ��" ��� �� �� �� �� � ������ �� � ������� ��� ���

� #��$�H���O�����������G��)!�)�5�&���������� I������ �� O������I���������

Page 336: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� 3�� ���� �����������.

����� ��� -����� I������ 5��������

���;������� >�%� � ������ �� � � ��� ��� �� ������� �

���������� >�%� � ������ �� � � � � ��� � ��� �� ��������G����� (� � � ���� � � �� �� �� �� ������� �� �

�� ������ �� � ������;������� 4� � ������ �� � � ��� ��� �� ���

���� ����������� 4� � ������ �� � � � � ��� � ��� �� ��������G����� 4� �� � � X� � ����� B � ���� � �� �

�� ������ �� � ���0����� ��� � � ��� ��� "�� � ������ �� �

� � �� � �����

����� - � � � ��� � � @� ���������� ����� � ��� �� � �� ������ �� �

� ���� ?M�����FG

������� ��(���� � ���!���� ��� ������� "��# ����� �

"��7������� � ���7������� � "��(���� ���(����

"��� ��%������ � ���� ��%������ �

���#�����"��� ����� "����#�����"��� �����

���#�����"��� ����� ������������� �������������

������������ ���0������ ��(���� �������������

������������������ ������ � ������ � 0��� ���

���������� ��� ����������� ��� � �� � � ��: ���� �

� ������������� � �����������:���� �

� ��3�� � ���# ��� � ������� � !���� ���

"��!���� ��� "��!���� ��� � ���!���� ��� ��������L� � �

��� �����

� I�������� ��V�������� ������� � J'J ��

QOR

� I�������� ��F!������� J���J� ��! ��������! ����� J����J ��

IQ���R� ��J

Page 337: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���� 2���� ���� � �!

� I��������O��V�������� ������� ��

QOR

� I��������O��F!������� J���J� ��! ��������! ���� ��

IQ���R� ��J

���� � ��� ��� ��%���� �� ������� ��� �� ��������� "���� ��� ��� ��%��� �� �� ��� ���� �� �� ��� �������� F!���*$��� ������� �� ��� ��� ��� ��%��� ������ ���� ���� � �� �=������G

������� ��������� *�3������ $�� � � � "� ����� ������ ����%�� � ��� ��� ����� �� �� �� �������������? ��� �����������������<5����� ������ �� � ���� � ��� ��� ��%���� ��� ���

6� ������ ��� ���� � ����� �=����� �� �=���� ��� ����� ���� ���������������<5����� ������ $� � �� �� � ����� ��� �� ������� � ���� ������� �� ��� ��� � � � � ����� � �7 � ���� � ���� � ��� � �������� � ��� � ��� ��� ��%��� ��� ���

����� $�� ����� � � ������ "�� �� ������������� �������� �� �=������ &� ;�� ��.����� �� '���� � � ��������� ��� ��� ��� �������� ��� ����

-���� ��� ����� ������� $�� ����� ������ ���� � �� ��� ��� ��� ���� � � ��� (� �� ��� "�� � �� � ��� ���� � �� �� �=������ ���;�������� ���;��������� ����������� ��������G����������-��� �� 3������������������

$���� � ��� ����� ����� ������� ���= �� �� �� � �� ��������� �� �� ������� � ���� �� �� ���� ���� $�� ��� ��� ��%�� � ����� � �� ��� ��� �����%� � �� ��� ��� ������ �� � � ��%��� 6� �� � ��� ���� � ��� � ���� �� ������� ���=� ��� � ��������������B���������������B��������

����� $�� ����� ������ � ��������� � ���� � ������� ��� ���� �� ��� ���� E� �� � ��� � � ��� �� ������������������<5�������������� � ���������������<5����

Page 338: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� 3�� ���� �����������.

������� : $��� �=����� ��� � ��� � & ����� � � "���� �� ������� ���� ��� � ��������C�� ��� � � � ��� - ��� �� � �������������� �� �� � ���� E ��� �� �

� H���O�����������G��)!�)�5�&���������5�&����J8�;�#G��)!�)�J�� �������JHJ�� ��I����T�������� H���O�����������;� ����I���!�� � ���������� I��������I�����J � !���J� ��)���� J� J� ��)����� J�J��� ��� ����� �� ��

����� � �� � ���� � �=������ �� �� �� � � ��� �� �����������������<5����� ������ �� �� � ��� ���� ��������G������"���� ���� � ��� �� � � ���� � �� � � ���� $��� ����� �� � ������� � ���� � ��������� �� �� �� � �� ������� � ��=� ����� �� ���� ������ �� �� $�� ���� � �������<5����� �����%�� �� �� ������ ��� �� � ������������� ��� ������� ��� ���

!������� � ������� *�3������ ����� � ��� ��� ��%��� ��� ���� � ����� ��� �� "�� �=�� � ���������� �� �������� $�� ��� ���=�� � � � ������ �� �����"�� � �� ���

� ������� � � ���������� ��� �� ��� ���� � ��� �� ���������� �� � �� �� �������������<5���������������<5��������������� � ������� ��� �� ������ � �� ���� ��� ��� ��%��� ���� �� ��� ���������������<5���#L������ � �L'<5��������

� ���������� � 9� � � � ��� �� ������ � � � � ��� ���������������� ������ ����� �������<5�����������

$�� ���� �� �� ��� �� ��%��� � � ���� � ��7 ��� �� ������ ������� � ���� �� ��%� ��� ���������%� ��� �� ���� � ����� ���

��� ��%��� � ��� ��� ��%��� ��� �� �� �� ����� � � �� ���� ��� ���� �����C�� �� ������������� �� ��� ���������������<5���������������<5��� �������

����� ��� � ���� �� ��� ��� ��%��� ��� ��� �� � � ������� ���� ��� �� �� ��� �� �� ��� ����� 7 ��� ���� � ����� � ������������������<5���� $�� ��� �� ��� ��� ��%��� ��� �� � ��� ����� �� � ��� �� ��%���� � �� � ��� ���

Page 339: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �#

������� ; $��� �=����� ���� � ��%��� ��� ��� ��� �� �� �������������� ��� 7 ��� � � � �� ��� �� ��%����

� 7��������F������11 �� B ��!����� ������ I������� I����X��)���� I������ �� �����H���O�����������G��)!�)�5�&���������O���� JF������J����I�������� I����X��)�� �� �������� ��)���� ����� &!��?����� �� ������� I��������<��G��)!�)� ����:!���JI��������J � ������� <����)X������7����H����I��������I����X��)�����)����� ��� ������ ��� ��!��B�� H���O�����������G��)!�)�5�&��������� ���J7��������F������J�� 7��������F������11��

-���� � ��, ��������� ��� ����� �� ��%��� �� �� ��� ��� ���� ���� �� ���������������<5����� � ���������������<5����������� ����� � �� �" ��� ��� ��� ���������������<5������� �������

������� < $��� �=����� ����� ��� �� �� �� � �" ����� � &����� � �� � � �� �� ;����� ������ "�� �� �� �� �" ����� �

� � �� ������ �����'�3>�'��!������ ��� ������ H���O�����������F����������

��!:����������� &!������ � ��� � ����� ' � 3 >� ' �:�������������������!��

���

� H���O�����������X����������� ���)!�)��J7��������F������J��

5V7\G=IL=H9<9V; F7;HX9V; I ��I � 5<9;�] ' W 3 K� ' 5\G=�9;X�59;X�]���L=X7L;

=;5

*�� () ���� ������%/ 7���% �������� ���� ��

�����

$�� �����"�� � �� ������ ������ � � � ����� � ��� ������

Page 340: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� �� 3�� ���� �����������.

� &����� +=� �� 6 ����

� 4�� ��� � ���� �

� & ����C�� � ���� �

�� �� �� �����"�� � �� ������ �� �� ��� � ���� � �=� ��� ���� $��������� ����� / �� � ���� ������ � �� 5 �� �� ���"�� �� � �� �� ��� ��� ���� ���� � � ��� ������ � ����� ���� � �� �� ������ +��� ����� � ���� �� �� � ���� � ��� ��������� �� ����� 5� ��� ��� ������ / �� � % ��

������ (� !������ �������� �������� � ��� ������ �������� � ����� �� ��� ���� � �� �"� � ���� ���� ���� �� N�������� ���� �� � ���� ���� � F� � ���� ���� �� �� N�������� ��� �G��� ����� �� ���� �� � ���� ������ �� ����� ���"� � � ��������� ������ ��"�� �� �� �� �� ������ �� �� �� �"� � �� �������� $��� ����� �� ���� �� ���� � �� ���� �� � ���� � �7 � ��� �� �� � ������� � $��� ����� �� � ������ ���� � �� �=� �� ��������"� �� �� �� � �=� �� ��� � � "��� ����%�����

������ )� '��������� 2������� ����� / �� �� ��� ���� � �������� ��� ������ "�� ���������� ����� � ���� � ������ � ����� � ��� �� �� �� ���� �� � �������� ������� �� ������ '��� ��6� � �� � �� ���� ��� � � ��L ��� ����� ������� ��� � & � ���� $�� " ���� �� �� �� �� ���� ��� ��"�� �� ����� �� ��� �� ������ �� �� �� �"� � �� ������� ����� � ������������ ��� �� �������� " ���� � F����� � �� �����%�����G � �� ����� "�� ��� � ��� �� �������� ����� &���� �� � �� ���� ������ ���=� �� � ���� �� �� �� � �� � ���� �� �� �� �=� �� ��� � ����+=� �� ����� �� �� ���� " ���� � �7 � � � & ������� �

������ 7� !�����+��� 2������� 6� N�=������ ����� �� ��� ������� � �=� �� �-� ����"� �� � � ��� �=���� " ���� � � " �� ������ ��������� E� �� " �� �� " ���� � & � 6� �� $�����"� � � ����� ���� ����"� �� �� ������ � ����� ��� � � �� � ���� " ���� �

!������ ������� ������

� �� �� �� ������F/ � 5G �� �� ��� � ���� � & � ����

� ������ / � 5 �� �� ��� � ���� � 6� � � ���� ����� � ��� ���������� � 6� � � �����

Page 341: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

� ��� ����� / �� ��������� �� ������ � '��� ����� F��� ���������� �� �� ������G�

0��� (2 ������ !"����� 5�����$� �� ��� �� ����� �=� �� ������ �������� ������ �� �����"��& ���� �� ���� "� ��� � �� � � �� �� �� ��� �� � �� �� ��� "� �� ��� �� ��� ���� �� �� ����� 7 ��� �� �=���� � "� ��� � � �� ��� �=����� ����� ��� �� ���� �7 � �� � ���������� ���� � ������

��� ��# ��� �� (8 ��� �� � '

Z

������ �� (7�� �>

[

$�� � � � 5 ����� ���� �7 � �� � ���� � �=� �� � ����

���� (� *�� !������� 6� �� ��� � ��� � � �� �������� �� � >������ *�� *�� � � F����"� ,,,�>**G� � (�� �� *�� � � F)��,���,,,��� � ������� ,,,������G� 6� �� �� �� ��� ����� � ���������� ��� � � �� ��� �� � �� � >**� �� �� �� ��� � � ��"������� �� �� �� � � � ������� � >** ��� �� ���� ���� ��� � ��� ���� "���� ��� � �� ������� B� ��� ����� �� ���� � ��" � � ��� �>**� ��� � ����� �� >**� �� � �� �� ������ �� � ��� ������� �� ����� � �� ���� � ����� � ��� ����� �� � ��� ��� ������

$��� �� �� ��� ��� �� �7 � �� �� �� � ���� ��"����� ��� �����%� ������� � 6� �� ������ ����� � ���� � ��� �� ��� ��� "�� " �� � &� 6� �� � '����

6� ������ �� �=� �� ��� � � � ���� � � �� �������� �� ����� 9������ ������ ������� "���� �� �� ���� � �� )��, � � � �� �����%�� "�� ��� ��� ����"� ������� ��

���� )� ������� �����3������ $� ���� �� ��� �� ��� � � �� ����� ����� ����� �7 � �� ��� ���� ��� �� � ��� �� � ������ �� ���� �� ����� �7 � �� �� �����"���

� ���� �� �� � ���

� $��� �� �� ���� � �� � ��� ������ �� � �

� ���� �� �� >** ������ �� � ���

$�� �����%���� �� �� �� ���� ���� � � ������� �� �� �������� � $�� ���� �����%���� �� �� ��� ��� ����� �� �� ��� ��� ���

Page 342: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� 3�� ���� �����������.

� ������� �� >**� $�� �=����� ��� �� & ��� ��� � ������ ��� �������%�� �� ��������$ � $�� $ � �� �7 � � � ����� ����� �� ��� �� ���� ��� � �� ��� �� ���� � ��� & ������� � �� 2���� ����� ���� ���� ������� � ��� �� ����� ���� $�� ����� ��� �����%����� � ��� � ��� ���� �� ������� ���� ��C��� 6� � ��� �� �� �������� ��� ������� ��� $���� :�� � ���� 55��

(��� �� ( �� �� � � � ��� ���� ��� �� �� �����%�� �� �� ������"�� � ������

�� (<<��������$

�� �<<��������$

$�� � ��� ���� � ���� � ��� �� �� ���"� � C=�,C1 �� ����

C=�,C1<<��������$

)��� ��� �� ��� ��� ����� �� ������� � ��� �� �� ��%�� �������� �� ����� � ��� �����9�"������

� � �� �� ��&���?���������� B���B�� B�! B������)������� B�! B������)������� BL=X7L;B������)������� BG9\B�J ���:0���J� ��

���������� (������ �� � ��� �=����� �� �� � �� �� � � ���� � � �� �� �� � �� � 6��� � � �� ��� ��� �� � � � ��� ������� � � �� �� � ����� "�� �=�� �� (�� 5�

���� 7� ������� ���������� +=�� �� �� �����9�"����� ���� �� -��� � � � ����� � ���� � �� ������ ����� ���� � �� �"� ����� �� �� "� � "�� � �=� �� � ���� $��� � ���� � �� �� ����� ���� "�� �� ��� ����� � ���� ���

� � ������

5

� � �� ,,�� : �� �

Page 343: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

� � �����:��

��

� ��� � �������

# ?M 22

���������� - ���� �� ��� ��� � ��� ��� ���� ���� ��� ����� �� � � ��� �� ������ $�� �����9�"����� ������ � ��� ���� �� ��� �=��� � ��� �� ������

$�� �����"�� � ������� � ����� �������� ��� ���� �� (�� ���� � ��� �����%�����

!"����� .�/���$�� �����9�"����� � ��� ��� �� �� � � ���� � ���"���� �� �� ��� � ���� �� �� �� ����� $�� �����9�"����� � ����� ������ �� �����"��

�����9�"�����# ����������8 �+��,+��8 ���"--���"8 %%%8

����--����8 ����8 .���./�������'

�����9�"�����# ����������8 .�+(��.8

����8 .���./������� '

� $�� "�� ������� �� ���� �����%�� �� ��� �� �� �� �� �=� ��� ��� � �� ������� $��� ��� �� �� �����%�� �� � ����� � �� � ����

� $�� ���-.�-/ �� ���� ����� �� � �� ����� ��� ��� ���� ������� �� >**� $�� ���� � �� &� ��� �����C�� ��� ���� � �'�;� �� 6�9$9���

� $�� �� ���� � ���& � � �� ���� ���� ��� �� � � ��� �� ��� ��� � �� ������� $���� ��� �� �� �����%�� � �� � �� �������� � �� ��� ����� � �� �� ���� �� �� �=� �� � ����� "��� ��� � � ��� �� � �� �� �� �� ������ � �� F��� � ��� �� � � ��� � ���G� $�� �� �� �� �� ����� � ���� ������9�"����� � � ��� �� ���� ������ ��7 ��� �� �� �� ��

Page 344: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

�=� �� � ��� "�� ��� � �� ��� ��� �� "���� � "�� " ���� $�� ��� �=����� �� �� �� � � �� ��� �� ���� �� ���C=�,C1� $��� �����%�� �� ��� � �� �� �� � ��� ��� ��� �� ���� ������ � �� � ���� 6� �� � ��� ���� ��� ��"���� ���� �� �����%��� ��� �� �����"�� ,'�� /��� 4��� �� � ��������

� $�� ������ � � ��� � ������� � � �� ������ �������� ���� � ���� � ������ ������� 6� ������� ��� �� ��� �� ��� �������� ��� ����� �

� �� ����� �� �� ��� �� ���� �� �� ����� "� � /���= �� �����%��� ���=� �� � ��� �� ��� ��� � ����� �� �" ����� ��� � � �������� "��� ���� ���� $��� ��� ��� �� �� " ���� ��� ����� ���� ��� ��� �� �������� �� � >**� ;� �� � � ��� � ����� �� " ��� � �� �=� �� � ���� � � ���� ���� � �������* &��� 7 �� 5������ � ���� 521� )��� /���= ����� ����������� � � ��� �� �� ����� �� ����� 5�

� $�� ��� �� �� >** ������ �� �=� �� � ��� �� �����%�� �� ��� �� ��0 ���� � �����9�"������ $�� ������� �� � � ���� �����%�� �� %����� �� �� ��� � � � "���� �� � ��� �� � ���� �� $�� �� �� �� ��� ��� �� ������ ����� ������� *���"����"���� � � �� ������ �� �7 � �� ������ � �� ������ � ��� ����� ��� ��� �� �� � �� ���� �� �� �� "� �� �� �����%�� � �������� � �� ���� ������ ��� ������ � '��� ������ ��������� �� ��� �� �� ����� ������ �� ������

�'�� �����/����(�� "� �� �� � �� �� � �=����� ������� ��" � ������� ���� �������� ����� ����� ��� �� �" ���� � � ����� � ��� �� "������%�� �� ���� �� ������ �������� ���� � �� ��� ����

$�� �� �� �� ���� ��� �� ���� �� �� �����"��

��� ���0�������� << ������������

$�� � ��� � ���� ���� �� ���� ���� ���� �� ��� � ��� ����� ��� � "�� �� ��� C=�,C1 �� �� ���������������� �� �� � ��� � � � ��� �� � C=�,C1 �� ���� �� �����%��� ����� �� � �� ���� �� � ������� � � � �� ����%� � � � �7 � ���

Page 345: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��'

����� ��� 6 ��� %.�� %� ��� �����

����� 8��� & ,'�� .������ ,'�� 9�%� ,'��8��� ����

��������( �4� MD�= �-��

��������� �4��� 01�=�=CE� �4���

��������$ ��� 01�=�=C ���

����� 01�=�=CE$

��������@ ����� 01�=�=CE@ ����

���� ���� 01�=�=CE@

����$ ��� C=�� ���

C=��E$

����@ ������ ��,M�= �C=�030�1 ������

C=��E@

�4��( �4� �G�C���=C �4�

�������( �4� ���0���E( ������

�������� �4��� ���0���E�

�������$ ��� ���0���

���� ���0���E$

�������@ ���� ���0���E@

���� ���� ���0���E@� ��� & ���� ��� �� ������� '��� ��� ������� ��( )����� ��

*+��� �������� ��� ,����� �� -)��� ��������� .�� ��� �����

��� ��� � ������ ��� ������ ����� �� �� ��� �����������

������ .��� 5� ���+=� �� ��� � ��� ��� ���� ���� "�� ����� ��� � ��� �� �� ���� �� �� �� ���� ������� ��� � ��� � ��� �� � � �� �� ��� � � � �� �� �� ����� $�� ��� ���� ��� � ��� � �� ��� ����� �� ��� � �������� � ��� ��� �� ��C�� $�� ��C� �� ���� �� ��� �� ��������� � �� ��� �� ���� �� �"� � ���� $���� :�� ���� �� ����� ��� ������� �� ���� � &� 6� �� �� '��� ������� ��

��������� .��� 5� ���� ������ � �� ����� ���� ����� � $���� :��� ����� ���� �����C������ ����� � ���� �� �� �� �� ���� � �� �� ����� ����� � �� ��� ��� �� ���� �� $���� ����� � ���� � � ����� � $���� :�5 ����� 51��

Page 346: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

!�������� ������ *��� ������� ( ��� � � ������ � ��� ����� ��� �� ���� � � �� � & �� � � �� �� ��� ��� �� � � �� ��� ����� ���� �� �� � "� � � ��#��� � � �� � ����� �� � ����� ��#��� � � �� �� ���� ���� �� �� � "� � � � �� �� ��� ��� ��

-� ���� � � �����1�2 ������� �� �� ������ � ��� �� �=������ %=�� ��C� � ��� ��� "���� � ���� � � ��� ��� � @� F�4�EG �� ����

( ��� � � ��������� ������ �� ��� ��� F��� � ���� � �� � ���� ������G� � �� ������ ���� � �� � �� � � � ������ ���� ������ ���� �� � �� �� ����� �� "�� � ��C�� >���� �� � ��C� � �� �� � �� ������ � � '��� ����� ��� � �@��� $�� � �� ��C� "���� �� ������� �� ����%����� � � � ������ �����

���� *��� ������� � � �� �� ��� �� � �������� �� � ���� �� � � � ������ �� ����� ����� �� ���� �� ���-�� �� �� �������� �� �� ����� ���-� /���"� � W����� ��� �� � � ��������

$�� ������ � � ��� � ������� � �� �������� $��� � � �� ���������� � � ��� �� �� �� ������ � �� ���- ��� �� � ������$�� ��� ����%�� ��@� ��� �� �� ���=�� � ���� � � �� �����%��"�� ����. F�� � � � ����"�� ���� ��� � ��� " ���� �=� ��������G� $���� ����� ��� ��� �� ���� �� � ����� ��� ��� �� �����- ��� �� �

�����'��:000 ��� �� �"� � ������� � � ����"��� $��� %��� �� ��7 � ��� � �� �7 ��� �� � �� � � �� � ������ �� 6� �=������������ ��������� ��������$ �� � ����

�����:000 $��� �� �� �����%�� �� ���� � ���� �� 6� � �� & �� ������ �� �� ����� ��� "���� ��� ���� �� � ;�����9�����"�� ������ � 6� � ��� � � �� �9����� "�� ������ � & � '������ � ��

������:000 �� ��� �� � �����%��� �� ���� � �� � �� ���� �� �� ���

��'��:000 $��� �� ������ �� �� ��� �� � ���� � ���-� /���"�W��������2 � � W���������� � �

����:;000� 000< $��� �����%�� �� ���=�� � ���� �� �� ���-� /���"�� W������

%���� !������ ���� $�� � � � ��� ����� ��� ��� ��� ��F� ��G� �� � ���� �� �� � � � ��� �� "�� ��� " ���� ���� ��� �=� �� ������ $���� ��� ���� ��� � � � ���� ���� � �������* "������ �� 5������ � ���� 553�

Page 347: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��!

�����$'�� ���� �� ������ �&����>�@� � � �� ����� ��� ���� ���� ��@� � ������� �� �� ����� ������� & ��"��� ��� ��������$����L ����������������� � � �� ����=������� �� ������ � ��� ���� 6� � ��� �������� ��� ���� -����� ��� ���� � ������� � ��" �� �� ���� "�� ����� ���

$�� ����� �=� �� ������ �������� � ��� � ��� � &� 6� � �� �� '��� ������ �������� � ����� " ���� ��� ��� ����� � ��� �� �� &� $�� � �� � �=� �� �-� �� " ��� � ��� " ����� � �� & �� 6� � � � '���� $�� ���� � ������ ��� ��&� $� �� 6� � ������� ������� �� ��� ;�C�C�1 �� � �� ���� ������9�"�����%

� & �� ��&���?���������* �?&!��*�*FVLXL ;*� 000��

$� �� '��� ������� ������� �� ��� X�W� �� � �� ���� ������9�"������ ����� ������� �� ���33���G. ���� � ��� � ������� ����

� & �� ��&���?���������* �?&!��*�*U R *� HG <<I XT�J000J� 000��

(��� ��� ������� ����������� F� �� �� -����� �� &OOG ��"� � "�� & �=� �� ������ �� ��� �� �� �� ��%���� �� � �� �������� �� ���� ��

0��� )2 �������� 4�������(��� ���� � ����� � � � � ����� �� � ����� ���� ����� $"��� ���� ���� � � � ���� �� F���������G� �� ��� �� F� ��G� ������ ������ � ��� �� �������� �� ������ ��� ��� �� ����

6� � ���� ���� �� �� ���� �7 � �� � �� �������� ���� � ��������� ������ �* &��� �� �������� .��� �� � ���� 55/� $�� ����� �� ����� ���� F>** � ����� � ��� �����%����� �� � ��� �������� �� ���� ���� � ����� 55/�555G � � ��� � ��� ������ $����� ���� � ��� ����� �=��� �� ����� ��� ���� �� ���� ������ �� �� " ���� ��

(�������� �� ���"� � UC���=C � �� ���� � �����9�"�����

�� ��� ����� � ��� �� ���� �� ��� �������� ����� ����������� ���� �� � >** �� ���������� ���� � �� �" ��� � �� ( ����7 ��� ������ �� � ���� � � �� �� �����9�"����� ����� ���"�� ��� ��� ���� ��� � �� ���� � ������ �� �=� �� � ��� ��� ��� � � �� � �������

$�� & ���� ��� ��� �� ����� " ��� �� ����� ��� � � �� �� ������ ��� � �� �"� � �7 ����� ����� A���� �� ���� %�� ��

Page 348: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� �� 3�� ���� �����������.

������ �� �������� �� �� ��� � � ��� ��� �� ��� ���� �� ������ ��������� � ������

� ����� �'��� � *����4�� ��� � " ���� %�� ����"� ����� � ����� �� � �������������� �� � � ��� � � ����� "��� ��������� ��������� � ��������"� � ��� N�=������ "�� ������ "�� ���� � �� ������ ��� ���� � �=���� ���� �� �7 � �� ����

$���� :�2 � ���� 515 ���� �������� ���� �� � � � ��� �� "���� ���"� � UC���=C �� �����%���

��������� .��� 5� ���� � � � �� � ���������� � �������� �� ����� �� �� �������� � ������ � &� � � ������ � -������ � �� �� �� ������ � �=��� �� ����� ����� � �� � �� ���� ���� � ��� ����

+��� ������ 33 ��� ����� ��� ���� ���� �� ����� �� �� � � �� ��� $�� ���� ��� �� �� �� �� ���� ���� ���� � ��� ����� �

$�� ��� ��� � � ��� � ������� "�� ��� �� ������ �� " ���� ��� �� �=��� �� ���� ��� � ������ $�� �����"�� "� ����� � � � ���� ���

,$2-� $����� � � ��� �� �� �� ������� ����� ���� )��� ������� �� ���� � ������� � �� ��� � � ����� � �� �� ����� �������� � � ���� �� ������ ���� �� ����� � ���� �������

-�/, *��� � � ��� �� �� �� ������� ����� ���� *��� � � � ��� ��� ��� � � ������� ������ *��� ��� �� ����%�� �������� �� ����� ����� � � ��� � � � � �=� �� ���� �7 � �� � ���� � �� �������� � � �� � � �� ������ ���� � ������ � �� ��� �������� ����� � �� ��� � �� ������

*��� �� ����� ��� �� ��� �� ���������� ��� �� " ���� ��� ��� ��� ���� � ������ ��� �� ����� �� ���� � ����

!� ����� �'���$�� ����� �=� �� ������ �������� ���� � �� ���� � ��� � �� ���� ���� F� �� �� ���� � &G� ������ �� �� ��������� ��� "��� �� � ��� �� ��� ��C� � ���� �� ��C� �� �� � �� ��� ��� �� ��������� "�� "���� �� �=� �� � ��� "�� �������� F � ���� ��� ���� ���� ��C� �� �� �� ���G�

Page 349: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��#

���� ��� ���� 5� ���(��� ��� ����� ���� &� � ��� ������ � ���� �� � � ���� � ������ ���� � �� �� ������ � � �=� �� � ��� � �� ���� "��� $��" ���� ��� � � & ���� � ���� � � ���� ����� � �=�� � �� ������� ���� � "�� �� ���� � � ���� $��� & �������� �� ���� � �� �=�� �� ���� � �� ��� ���� �� ��� & � ����

+��� ������ 33 ��� ����� ��� ���� ���� �� �� ���� �� �� � ����� �� $�� ��� ����� �� �� �� �� ���� ���� ���� � ��� ����� �

� �� � �� ���� � ����� � � � ���� � �� ����� ���� � � ���� ��� ���� � � ��� "� ��� � �������� ��� ����� ���� ���� � �� �=� �������

���� �' ��$�����)���� ��� ����� ���� � � �� �� ������ �� ��� �� $�� C=; ����%� �� �� ��� � ��� ��� ����

��� ���0������� << C=;# �����������8 ���� '

$�� C=; ����%� �� ��� �� �����"�� ������

$!=,>�!" $��� ���� � � �� % � � �� ��� �� ������ )�� ������� � ����� � �� �7 ����� �� � & $� �< �� ���� � $�� " ���� ���� ����� � ���� ������ � � ��� � ������ ����� F2�������� � 0���� N��� ������=� � � ��G� "�� ��� � ��� �� ����� ��� � �� �� ���� ���� �� ��������� 1,�� �� ������ � ���=� �� � ����

&$-- �!-= $��� ���� �����%�� �� ���� �� �� ��#�� �� � �������� �� ��� ���� �� ������ ���� �� �� �=� �� � ��� � �� " �� � �� ����� ������ �� "�� ������� $��� �� �� ������ � � ��� �� ��#��� ������ F��� �� �����"�� $���' ��� �������G� �� � �� �� ��� ���� F�� � ������ ���� � �������� � � �� ��� �� ����G�

)�,?)! �!-= $��� ���� �����%�� �� � ��� �� �� ���� ������� �� �=� �� � ���� ������ ��� � ��� ��� � �� ������������� �� ������� �� �� �=� �� � ��� �� �=����� � %�� �� �����"�� ���� $�� �� � �� ���� �� �� � ��� �� ��� ����� ��#���

����' *������ � �CC�D � � �� �� ����� �� �� ���� �1�D �� � ���-� /���"� � W����� "�� � ��� ����� �� ������ � �� �=� �� � ��� F�� �� �

Page 350: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� �� 3�� ���� �����������.

������ �� �7 � ��G� ���� �1�D ��� � �@�� �� � � ���� � � ����� ������ � ��� � �� ��� " ��� �� � ����� � ��� $� � ��� ���� �� ��� ��� ��� �� �� ���� ���D � �� �CC�D ���� ��� �

$�� �CC�D ���� ��� ������ �= � ����� "�� ��� "�� " ���� ��� ���� $���� ����� �� �� �����%�� �� �����"��

�CC�D# ���"8 %%%8 ����8 ������/�������8

����/0008 %%%8 ���� '

$�� ���& � � �� ���� �� ���� � � � ���� ����� ��������� �� ��� �� ���� ������� �� �� � ��� �� �� �� ��� � ��"� �� ����� �� �� ��� �� ���� � � ��� � "���� ���� �� ��� � �� ��� � �� �����%�� �� �� ������� � �� �� � � ����

$�� ������ � � ��� � ������� ��" � � �� �� ������� $�� �����"��� � ����� ������

&��= >� � ��� �� ������� � �� ���� � ��� $�� ��� ���� � ����% �� �� �� �� ���� �� ������ � �� � �� �� �=� �� � ����

!� &��= $��� �� �� �� � ���� �� �� ��� �� ��� ����� )� �����"�� ��� � " ���� ��� ��� �=� �� ����� �� �� ���-� /���"� � W����� �� �� �� " �� ���� F��� �� � �� �� " ��G� � ���� �� ����"�� �� �� �� � ��� ��� ���� � ������ � � �� �=� �� � ����)��� 1�9���D � ���� ���� ����� �� � �� � �� ��� �� � ���� ��� �� �� ����� �� 1� ���D �� �����%��� �� � ���-� /���"� � W����� "�� ��� �� ����� �� ������� � �=����� �� ������ � � ��� � � ��"��� ������ �� ��� ���� �� � ����� � � ���� F��� � C=;

���� ��� G� ��� � � ������ �� ��� �� ���� �1�D ������� �� C=;"�� �� ��� �=����� ���� ���� � �� ������ �� ��� ������

%������ ���� ���(������� � �� ������ � � ���� �������� � � ��� � �� ����� " ����� �� ��� �� � �� ������ � � �� �=� �� � ���� 6� �=������������ �� �����"�� ���������� & � ���?

��� �� # ��� E�(8 ��� E�� '

$��� � ��� ���� "� ���� ���� �� �( �� ��� �� ���� �� ������� �� �� � �(� ������ "�� � %�� � � � �� �� C� �� $����� ��� " ���� �� �� ���� � �� ��� "���� �� ���� � � � ������ ��C�� $�� ����� ��%��� �� ��� � ��� �� �� �����"��

Page 351: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

� <! �� ��&���?��������� *�! *�� � �� LL W�00��>������)�������� � �� LL W�00��>������)�������� ��>� �� ;V?I <<�����)�������� L=X7L; �� ����)������� G9\�J��:�! 0���J��

$�� 1� ��33 ����%� �����%�� �� �� ��C� � � �� ��� �� � �������� � �� �=� �� � ���� $�� 3� � ��� �� �� ������ �� �������"�� ������

� <! �������������

"�� � �( �� �� � � ���� �� ����� ������ �� ���� ���� � � ���� ���� ���� ���� � �� �=� �� �� � ���� � ���� � ���� �� ��H�

����� � �� �=� �� � ���� � ��H� �� ��� �� � � �� �������F���� �� �� 1� �G=�Y ���� "�� � �����%��G�

��� �� ��� ���� �� ��� �� ��� �� �������� � � ���� $����� � �� �$�� � � ����� � � �������� � ���� �B� � � ��� �� 1� ��33�

���� �� ������� � !����' ��� ������� �� ����� �� �� ��� �� ����� ���� �� ������ � �=� �� � ���� �� �� ����� �� �� ���� �� ������ � �7 ����� � ���� � ���"�� �� ���� ��� �� �� � � �� ��� �������� $�� ��� �� ���������� ��� �� � ��� ��� ����� ��� ��� " ���� �=����� �� ����� ��� �� �� � ����� �� �� � �� ���� �������� ��� �����

$�� �����9�"����� � ��� ��� � ���� 1� �G=�Y "����� �� ������������ �� ��� ������� ��� �� �� ��������� ��� " ���� � 6� � ��7 ��� ������ �=� �� � ���� �� �� �� � ������ ��� ���� ��� ������%���� ��� ��� �� �� ����� A�"��� � �� � �� � ��� ��������� "�� ��� �� 1� �G=�Y ����� �� �� ���� � ��#�� �� �� " �� ���� ����� ��� &���� ��� " ���� ���� ����� � � "�� � ��� �������� �� ��� � � ��� � ������� � �=� �� ����� �� ���� � ��������� ������� �� �� �=� �� � ����

�&�������� �� � ���� � � �� �� �����9�"����� �� ������� �� ������ � ��� �� � � ������ � � ���� �� � �� �� ������� � � ����� �� �=� �� � ���� *���"���� �� ��� � � �� � �� �� �=� ��� ��� �� ���� �� � �� �� ������� ����� ����

$�� �����"�� ���� ���� ���� �� �=� �� ���� �� �� ����� ������ �� �� ���� ��� $�� % � ����� ����� ��� �� �� �� � "���� � �� � �� �� �� ������� �=� �� ��� �� ���� �� ���

Page 352: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� 3�� ���� �����������.

�������� ,'�� $������ ����� ,'��;<

�������� ������

��������� �������

����� ���� ������� �������� �� ������ ���"�� �� ���"� �� ����� ���� ������� ��������4��� ������ ��� �������������� ������� �- ���� ��CC�D#' ���-� W������ /���"� � �� �3�C,��#' ����� ����,10�1#' ����

�C��#' ���������

6� 3�C,���� ���� ���� � ����� � � ����� �� � �� �� �� ����� ������� ����� ��� ��� �� �� �� ���� F� ��� � � ����G �� ���������� $������ �� ��� �� ��������� ���� �� " ���� �� ���� ���� 6� ,10�1�� ��� ����� � � �� ����� �� �� ���� � � ���� �=���� ��� � "�� ������ F�� ������� � �� �� �� ����� � �� �� ��G�

�� � � � �� �� � ���������� ��� �� ������� � � � ��� ���� �� �=� �� � ��� �� � ������� *���"���� �� � ��� � �� ������ ���� � �� ��� �� �� �����%�� ��� F�� �=������ ���� �� �� ��G� �� � ��� �� ��� ������ N�������� ��� ��� � ������ � �=���� ���� � ��� �� �� �� �=� �� ��� �� ����� ���� � ������ �� ���� ���� �� ��� � �� "��� �� ��� �� �� �=� �� ����

� � ��� �� "� � ����� �� �� C=;� ����� �� ��� ������ ��� ��� ���� �� �� ������ ���� � ���� � C� �� � �� ����� �� ��� ������� �=� ������

� �� � ��� �� ������� � �� ���� ���� �� �� ��� � �� ������ �� ��� ���� � �� �=� �� � ���� ��� �� �=� �� � ��� � �� �� ������ ��� � �� ���� �� ���� � �� ��� �����%�� �� �� � � ���� ������� ���� � �� ����

� �� �� ��� ������ ��� � ��� �� �� ���� 1,�� �� ������� � ����� � �"�� �������� ����� �� �� � � � �� ������� $��� �������� �� ��� ���� �� �� � ����� � ������ �� ����� � �� 9+6����� ����

� �� � C� � �� ������� 1,�� �� ������ � �� �=� �� � ����

� �� �� ��� ����� �=� ����� �� ������� �� ��� � �� ������ �� ��� ����� �� �� ������ ��� � �� ����� ����

Page 353: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

� ����� *����$� ������� �� " ���� ��� � �� ����� �7 � �� �� �� �� � & ������� ������� � �� ���� ������ �� �� �� ������ ����� ��� ���� ����� ������ � ���� �� ������� � $�� ������� � � �� ������C�� �� �� ������ � ��� �� �� � �� ����� -�$A �� ��� ������������ ��� �� ������ � � �� ���

$�� ������� �� ��� ������� � � ��������� � ����C���� � �������� �� ������� ��� � ���������� �� ����� >��� � ��%� ����� � � ������� "���� ��� �� ���� ��� ����� "� � Q� �� �� ��=�R ������� � �� �� ����� � �� �� ���� �� ������ & ������� � ������� " ����� � � ��� ����� ����

��� ���� � ������� �� ��� ����� � � �� �� � � ��� �� �� �� �������� �� ��� �� ������ �����9�"�����#A��/�0�= ���0�13A'���� �� ��� �� � �� �� ��� ������ �� ����%��� �� ����%����� �@��� ��� " ���� ��� ��� ������� ��� �����9�"����� �� �� ������ �� �� ������� �� �� �� ���� �=�� �� �� �� ������������ ��� �� �� ���� �� �����%�� �� � �� ���� � �����9�"��������� �����%�� �� � �� ���� � �� �@�� ���� ��� �� �� � ��� ���� �����

$�� ������� �� ��� ������� � � ��������� �� ������ ����/�0�= ��//�1� �� �01Y ��//�1� � ���� �� ��%�� � �� ������������ ��� ��� $���� � ���� �� ���� �� �� �� ��%���� � �� �������� ����� ��� �� � �� � ��� � ������ � �� �� �� �=�� �� �����-��� ��

$� � ����C� �� ������� �� ��� �������� �� �� ������ �������"�� ������ ��� ���� ��� �� � � �� � ��� � 1,��� �=��� �� ��/�0�= ��//�1� �� �01Y ��//�1�� "���� � � �� � ���� �� � 1,���

&����-�) $��� �����%�� �� ��� �� �� ������� �=�� �����

&.-$"/ $��� �����%�� ���������� � N��� ������ � �� ������� �

&����-� �!-= .-$" $��� N�� ������� �� �� %�� �� ��� ��� ��������� � ��� ����� �� � �� Q5�R� "���� �� ��� �� ������� � ��� �� � ��#�� %��� � � ��� � � �� � �� �=�� ���� � ��� � �� � ���� �� ������ �� �� �� �� ������

�/� ��� ����� 0������� ���� ���� ��� ��� ����� %���� & &����� ��/� ����� ��� ��� ����� & ������ � ��� ���� �� ��� �� ��� �� ���� ������� ���

�� ���� �� ��� ���� ���� ��� �������� ��� �������

Page 354: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

&�29 .-$" $��� �� �� N�� ��� �� �� ������� � ������� �� ���#�� %������ $�� ������� ������ ��� ��MX ;��� \\ ;0�= \\

�MX =V� � ��� �� ��#�� %��� � ��� ����� �� � �� Q5�R�

-�29 .-$" $��� �� �� N�� ��� �� �� ���� � ������� �� � �� ���� � � ���� $�� ��� ������ ��� ��MX ;��� \\ ;0�= \\ ��� =V�

� ��� �� ��� �� ��� � ��

.�-� $��� �� �� ���� ��� �� �� %�� � �� ��������� $�� %�� �=����� � � �� ��� ��� � ��� ���� 6� �=������ � ������� Q��%�R��� ;0�=.L��L �� ;0�= =V�.L%�L� ��� ;0�= �� �� � 1,�� ������� ��� ��� � %�� ��� ����� � �� � ��� ����

.�-� �@, $��� �� �� � �� �� %�� �=����� �� �� "� � �������Q��%�R� �� ;0�= =V�.L%�L� �� ;0�=.L��L�

�29 �@, $��� �� �� ��#�� %�� �=����� &���� �=����� � � Q%�R�� Q%��!R�

8-- �@, $��� �� �� ������ ��� � � �=����� &���� �=������ � Q%���R �� Q%��R�

�!& .-$" $��� � ������ �� ��� ��� � �� 01� ���G� � ��� ������ �� � �� Q50R�

�!& �$,> $��� �����%�� �� �� ��� ��� � ��� �� �� ����� %����)�� � �=� ����� ��7 ��� � ������� �� � �� �� �� ��� ���� �=������ 01� ���G.#LB���B����B ���B�"����B�������L8

LB�����B!���B�������L'�

&����-� &���$!8 $��� �� �� � �� � ���� � �� ��� ����� ������� ������� $�� � ���� � � � � � � ��� � ���� ��� � �� � ������ � � ����� �� ���� ��

-�!A�) $��� �����%�� �� ��� �� �� ���� �=�� �����

-�!A .-$"/ $��� �����%�� ���������� � N��� ������ � �� ���� ���� ��� ���� �� �� �� �� ���� � � ��� � ������ F��� ��G��� � ��

-�2 .-$" $��� � ������ �� ��� ��� � �� �0M ���G� � ��� ������ �� � �� Q5�R�

-�2 �$,> $��� �����%�� �� �� ��� ��� � ��� �� �� ��� � ���� )�� ��=� ����� ��7 ��� � ������� �� � �� �� �� ��� �� �� �=�������0M ���G.#LB���B����B ���B�"����B���L8LB�����B!���B���L'�

Page 355: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��'

-�2 $��� ���� �� ��� � � "���� ����� �� �=� �� � ��� � �����$��� ���� � � �� �����%�� � ��� � ���� � �����9�"������

-�2/ $��� �����%�� ��� ��� � ��� �� ��� � �� ����� "�� �� " ����� ��� � � � ������ ��� �=� �� �������� )�� � �=� ����� ��7 ���� ������� �� � �� �� ��� � �� �� �=������ �0M3.#LB���B����B ���B�"����B���B�������%��L8LB�����B!���B������%��L'�

/=/ -�2/ $��� �����%�� ����� ��� � ��� � ��� "�� �� " ���� ���� � � � ������ ��� �=� �� �������� )�� � �=� ����� ��7 ��� �������� �� � �� �� ��� � �� �� �=������ �0M3.#L5��L8L5� L'�

�@��), .-$" $��� N�� �� ��� � �������� "�� �� ;,1��0�1

���� � ��� �� � ��� � �� �=�� �� � �� �� ��� �� ��� � ��$��� �� ������� � �� � 1,�� � ����� �� �� �=�� ��� ��������� ���� ��

.?!&,��! $��� �� �� ��� �� �� �=� �� � ��� ��%�� � ��" ���� ��� � �� $�� ����� ��� ��� � ;,1��0�1 ��� �� ��� �� ��� ������� � �� � 1,���

-�!A &���$!8 $��� �� �� � �� � ���� � �� ��� ��� ������ ������� $�� � ���� � � � � � � ��� (� ��� � 1,���� �� ������� ������ ���� ���� �� ������

� ����� �� �� ���� ����� �� �� ���� � � �����9�"�����

"�� � ���� � ������� "� �� �� � ������� �� %������ 6� �=�������� �����"�� ��� ��� � " ���� %�� ���� Q��%�R�

� & �� ��&���?���������* �&!��*�*(L II=L*�*F9G=*�J&��J�*G9\*�� J ���:0���J��

$� �� � ������ � ������� � � ��� ������� N���� ����� ��� ���� � �� ������� ����� ��� ���

������� $�� �����"�� �=����� ���"� ��" � �� � �� 4�) ������� � � ������ �� (��� ���

� � �� ��&���?���������*HV8I9G=?VIX9V;<*��� ���HV8I9G=L �� J)��J�� ���HV\U?FG O �� J�� J�� ��&���?���������* ��? !��*�*(L II=L*�*G9\*�J��:��������0��J��

$�� ��� �7 � �� � ����� ��"�� �� �� �� ��#�� ���� ���������� ��MX ;��� ����"� ��� � �� ������ ���� ��� ��� ���� ���� � ��� ��� � ����������

Page 356: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

$� ���" �� �=�� �� �������� �� �� �������� �� �����9�"������ � � ����� � 9������ �� � ���� � �=����� �� ���� ��� �� �����"����

� � �� ��&���?���������*HV8I9G=?VIX9V;<*��� ���HV8I9G=L �� J)��J�� ���HV\U?FG O �� J�� J�� ��&���������&���?��������� �� ,�� ��&���?���������* ��? !��*�*(L II=L*�*G9\*�J��:��������0��J��

L��/�0�=9��//�1�L

L��� 5� 5� 50B����B����B ���B�"����B������� 5� T

2��9 �9 ���%� 2��9 �9 ���%�L

L�01Y9��//�1�L

L�� 5H����� 5� 5�- 5M�-� ��

5�B����B����B ���B���B���%3,193��C�93���C03 T

5� 2��9 �9 ���%�� 2��9 �9 ���%� 5�� 5� ����L

���� "�� � ���" �� ������� �� ��� ������� �� � ���� ���������� ���� � ���� �� �� ����� +� � � �� � ����� �� �� ������� �� "��� �� �������� ��� "��� ��� � � �����

� � �� ��&���?���������*HV8I9G=?VIX9V;<*��� ���HV8I9G=L �� J)��J�� ���HV\U?FG O �� J�� J�� ���HV8I9G=?HV88 ;5���

L��� 5� 5� 50B�B ���B�"����B������� 5� %� %�L

� !�����)��B���F9G=B��� ���HV8I9G=?HV88 ;5���

L��� 5� 5� 50B�B ���B�"����B������� 5� ;0�=%� ;0�=%�L

������� $�� �����"�� �=����� ���"� "� ����� � �����9�"�����

���� ��� �� �� ������ ������� $�� % � ���� ���� ��� �� ��UC���0M ���� �� � � ��� ��� ���%� �� �������� �� " ���� ��� � � ���%���� $�� ����� ���� ��� �� UC���0M ���� � � �� ���=���� ���%���� �� ��������� � " ���� ��� ��� �� ��� � ������� �����

Page 357: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��!

� -!���!���?�� �� ��&���?���������B-!���!���?��B�� (L II=L�F9G=�J-!��J�� ���&��������� L=X7L;��&��������� G9\�J����0���J��� -!���!���?���0��

@%@)))))(R)&�$@I��@

� ��������� -!���!���?�� �� ��&���?���������B-!���!���?��B�� (L II=L�F9G=�J-!��J�� ���&��������� L=X7L;��&��������� (L IG9\�J-!��0���J�� G9\�J����0���J��� -!���!���?���0��

@%@)))))(R)&�$@I��@

��� >**� � � � ���� �� �������� � ��� � �� ���� � ���� � ������ �� ��� �� � � ���� ��� ��� ��� >** "��� ��� ������� F���� �� �=��� ����� � ��� �� �� ������ ������G� ����������� � ��� ������ "�� �� % � >** ����� "�� �� �������� ������ � � ��� � �" >** �� �� ���� ��� "��� ��� ��� �� ���� � �=����� �� ��� $�� ����� ������ ������� �� �� ��� � ����� ��� ��� � � ���7 ��� ������ �� �=� �� � ��� ��� ������ >** "��� ���� �� �� �����9�"����� ������ "��������� � ��� ������

!&������ �����+=� �� � ���� �����" � ��� ����� ���� ��� ��� � �� �� � �� ��� � � ���� ��� � �� � � ��� ����� � �� ��� � ��� �� ������� � � ������ ������� ���� � ��� ����� 7 ��� "�� ���������� ��� ���� 6� �=������ ������ �� �����"�� � ��� �� � ������� � ��� �� "� ��������

���� ������9��# ��� E� '

Z

�# � .. 1,�� ' ������>

E� E. �>

[

� ������ �� " ���� ���� ��%��� �� ��� � ��� ���� ����� �������"��

Page 358: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� �� 3�� ���� �����������.

� ��!:��?�� �� ��&���?���������B��!:��?��B� ���L=F�����)�������� G9\�J��:����0���J��

��� �=�� �� ��� � ���� �� � � �� K�K �� ���� �� � �� ������� �� �� �� ������ �� � ���� � � 2���� �� �"� � ���� �� ���� � �� �� �"� � ���� �� �� ������ � �� �=� �� � ����K������9��K� $�� �� K�K �� ����� �� �� � ���� � � ���� � � ����������� � ���� K������9��K "�� ������ �� �

� ��!:��?���,��

� ��� ����� � ���� � �� �� �"� � ���� � �� �� � K������9��K�$�� ����%�� ��� � �� � ���������� � �� ������ $� ������ �� ����%����� �� �� �� ���� � � �� ����� $�� ��� � � �� ������� � �������� 7 ��� � � ��� ���� ����

� ���,�� ��!:��?������ / � �� ����!���� &����� �� , �� ������� ��

� ��!:��?���B�B�� / !�� !�����!����� -!���� �� ���� B�B� ��

I

6� �� �� ���� �� � �� L1,��L �� �� ������ �� � �� ���� � �� ��� �� ��� ��� ) F�� & �)**G� 6� � ���� ���� �� L1,��L �� ������ � ��� �� ���� ) �� ���� ��� ��� )�

� ��!:��?���J;7GGJ���

� ������ �� ��&���?���������B������B�� L=X7L;�������)� ��������)� :�������)�� G9\�J��:����0���J��� �������J;7GGJ�J�J��

L1,��"L

Page 359: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��#

� �������2�2��

)

� �� ����� �=������ �� & ���� ���� ���� ���� �� �����"��� ����� ��� � ��� ���� � ���� ���� � �� � ��� ���

�4� E �����# �4�E 8 �4� E� '

Z

�4� E�>

�# P \\ P� ' ������# 1,�� '>

� . #�4�E' ����##������#'7������#�'7('E��H��#�4�''>

�����-#�8'>

�����#�8�'>

������# � '>

[

0��� ,2 ���� �7�� 4�������6� ������� �� �� ��� ��� ���� ����� ����� ����"� ����%���� ���=���� " ���� � �� � ���� �� � ��� " ���� �� $�� � � � �� � �& �� 6� � � ���� ��������� �� ������ �� ���� ���� �������� � � ���

$� �� ��� ������ �� � � �� ������� "�� �� ���� �7 � �� � �� �������� ���� � ������ ���� ���� � ������ �* &��� �� ��������.��� �� � ���� 55/� 6� ��� ������ �� �� ��� ����� � � � ���� �����%���� ���� �� ����� ������ �� ��� � � � ������ ����� ������ ��� ����� $�� ��� �� �� � � � ��� "� ����� ���� F>**� ���� �� � ��� ������� �� ���� ���� � ����� 55/�55�G � ������� � " ���� ��� ���� � ���� � "� � � �� ��� � ������ �*"������ �� 5������ � ���� 553�

!"����� 5���� !��' �������� %�� �� ������ ��� ���� �� �� % � � � �� � �����9�"������ �� >** �����%�� � �� �0M. � � ��� ����� ���� %�� ��/UC��9�- ���1 � � �� " ���� ��� � �� $��� /UC��9�- ���1 � � ���� � ����� ��� �� �����"�� �� ���

���=M /UC��9��������9��#

Page 360: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'$ � �� ���� �� 3�� ���� �����������.

/Y�����W����� ��8

;������ #E�' # ;������ ( '8

���=M �9���

'>

$��� � ����� �� ��� � �� �� " ���� ���%� ���� ���� � ��� ���� � ������ $�� % � � � �� �� �� � ����� � �� ����� �� ��� ��� ���� � $�� ����� � � �� � �� � � ��� ���� ��������� ������ �� � � �� �=� �� >**� � ��� ����� � �� ������� ����������9�� �=� �� � ���� $�� ��� � � �� �� � ����� �=� ������ ��7 ��� ��� � � � ������ ��� �� � � ��� ������ � ��� ��� � �� �� ���� ���� � �� ����� � ���� � ��� ��� �� �������9�"����� �������

$�� � � ��� �� �� �� �� ��� "�� " ���� � � � � ������������ ���� �� "�� UC���0M �� �����%��� � ��� �� �=� �� � ���� �� �=�� ��� �� � ��� ���� �� ��������� "�� �� �� ���� /���= �� �����%�� ����� �� UC���=C � UC���0M�

���=M /UC��9��������9��#

/Y�����W����� ��8

���=M �9���

'>

$�� �-� � ��� � ������ �� ���� ���� ����� ��� � � ��� � � [/���=B�"����B������� "�� � [/���= �� �� ��� �� �� �������������� $�� ����� %�� ����%4 ��� �� �� ��� ��� "�� " ���� � ��� & " ���� �� �� �� �� ����� %���� ��������%4 � ��������I$���%4� ��� �� �� ��� ��� "�� " ��� � ��� 6� � � " ���� �� ��� ����� %���� ���4���%4� �� ������%4 ������� ��� ����� �� ��� � � �� �� � � ����� �� �� �� ���� ����� �� ����� ��� � � ���

����� ��� �� ���� ������� � ���� F����G � �� ��� ��� ��#����� �� �� ���� �� N���� ��� ��� �� � ��� ��� ���� � � ���� ���F6� �� � ��� ���� ��� ����� �� �� �� ������ �� ��#������� ������= ��G $���� ���� ���� �� ��� ���=M � & " ���� �� ��01�=�=C � 01�=�=CE@ � 6� � " ���� �� 6� � 33 ��� � �� �����%��� ������� �� ���=M ���� � � � �� Q�����R �� ��� ������� "� ����C�� ���� �� �� �� ������ "� � ��C� �� :2��� F�� �=�������� � � >+& �����G� �� ����� ��������I$���%4 � � �� ����� 01�=�=CE@ � � �� ��� �� �� ��� ������� +=�� � �� ����������� ����������#2�����H�' � ��� ��� "���� �� ��� � ��5���� � :2��� ���� ���� ���� � 6� �� ��� "� ��� "�� &� �������� �� ���=M ��� ����� �� �� ������ "� � ��C��

Page 361: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �'�

E� �� � ���� � ��" �� �� �� ������ �� ���� � ���� ����� �� ���� $�� ��� �=����� �� �� � � �� ��7 ��� ������ ��� " ���� � � ���� $��� �� � �=� ����� ��7��� F=V�3=QG ���� ���� �� ���� �� � � �� �� ���� �� �� � ���= ( F� )G� $� ���9����( �� �� % � �� ���� ������ � �� �=� �� � ���� )��/���1� ���� � ��� ��� �� ��� �� � � ��� ������� ��� ���� 6� � �-� ��� � ������� ��@� � ���� ������� $�� �7 ������ 6� � ���� �� ���9�� 9���� $�� & �-� ���� � � ��� �� �� ������ �� ��� ����� � $� %� �7 ����� 6� � ����� ��� � ���-� ������

�������� ��� �������' ������� 4�������$�� ������ "�� � �� " ��� � ��� " ���� � �� � ����� � ���������� ��� ��� " ���� �� &����� �� �� � ��� �� "�� � ��� ��� � �� ������ �� ��� ����� � )�� �� UC���=C ���� � ��������9�"����� � ��� �� � " ���� � ���� �� �� 1�9��/�0�= ����� "�� �����9�"����� �� �� � � ������� �� ��� ��� " ���� �$�� ��� �� �� ��� ��� %�� �� � ���

� � �� �� ��&���?���������� B���B�� B(L II=LB�� B;V?HV8I9G=B�� B�! B������)������� B�! B������)������� BL=X7L;B������)������ ��

-��� <. L 2��9��%�L

$�� %�� 2��9��%� �������� �� �����"���

BE /UC��9�� U�����

�������� ��� �����- �- /���

�� ��� ���� �4�� ���% EB

]������� O�����%46

]������� O������%46

]������� O������%46

]������� O ���4���%46

]������� O ����%46

/Y�����W����� ���Y�����W��>

�-���� ���� E/����������>

Page 362: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�' � �� ���� �� 3�� ���� �����������.

���=M E���>

BE �� 5 /UC��9�� EB

���=M /UC��9��# /Y�����W����� ��8

01�=�=C�� #E�' # 01�=�=C�� (8 01�=�=C�� � '8

���=M �9��� '

Z

01�=�=C�� (>

01�=�=C�� �>

01�=�=C�� �>

���=M �>

��� �>

���Y�����W�� . ��>

��� . #���=ME' �9���>

�# /���1� ����# ���Y�����W��8#���=M'���' P. � '

/���C���=����# ���Y�����W��8L0�������� �� ���

� ��� ����L'>

BE ��������$ EB

( . /�����0��������# ���Y�����W��8����( '>

BE ��������$ EB

� . /�����0��������# ���Y�����W��8����� '>

� . #E�'#(8 �'>

� . ��/���0������# ���Y�����W��8#����' �'>

������# � '>

[

$�� ��� ��� " ���� �� � ���� �� �� ��� �� � ���� " ���� ��$�� � ��� �� ���� �= � �� ������ �� ����� ���� ��� ���� �� ��" ���� ��� ��� �� ��� ��� 6� �=������ �� �� �� ��� ��� ���9��� ������ �� ��� �� � ��� "�� ����( � � � ���� �� � ���������� "���� �� ��� � "�� "� ��� "�� ��������� �� ��� ������ ��� � � �� ��7 ��� � ���� �� ��� � � ����

9������ �� �� �� � ��� ������ ����� �� � � ��� ( ��� �� � �� �� �� �� $��� �� �� ��� �� ���� � �� " ���� � .� ������ �� ����� � � �� � �� �� /���= ���� �� �� ���� �� ������ �� (7� � ������� �� ������ � �� ����� �� " ���� �������� �� �����"���

Page 363: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �'�

BE ����� �� �� �2� �� ���� �� /��� EB

]������� O�����%46

]������� O������%46

]������� O ����%46

BE �� ����- ����� 5 /UC��9�� EB

���=M -���# /Y�����W����� ��8 ���=M �9��� '

Z

01�=�=C�� (> BE 01�=�=C�� .6 ��� #������ �� EB

BE ������%4' EB

01�=�=C�� �>

01�=�=C�� �>

�# /���1� ����#��8�9���' P. � '

/���C���=����#��8L0�������� �� ��� � ��� ����L'>

BE ������� �� /��� ������� �� � ��� EB

( . /�����0��������#��8##���=ME'�9���'�( '>

BE ������� �� /��� ������� �� � ��� EB

� . /�����0��������#��8##���=ME'�9���'�� '>

� . ( 7 �>

������# ��/���0������#��8#����' �' '>

[

$��� � �� �� % � �� �%�� �� �� ����� � ��� ���� ������ �=����"� � � ���� � �� ���� � �� "� � � ��� � �� �"� � ���� ��� ���� ���� $�� �� � �� ���� �� � � ����� ���� �� � ���

$��� � �� �� �� �� �������� �� � >** ��� �� ���� �� & �������� � +� � �� �� ��� "�� �� ����� �-� ��� �� ��� � �� $�� >**�� �� ������ �� �� ����� ���%N3D3�=/ �� ��� �� � ����"�� � ����� �� -�$A� ��� ��� >**� � ���� �� ���%N3D3�=/ �� ��� �� �� ��� ��� � ������� �� � �� ��� � �� >** � �� �0M � � �� ������9�"������ )��, �������� � ��� ��� � �� ��� �������� � ������

$���� :�� � ���� 512 ���� �� ����� �-� *�� � ��� �� & �� 6� ����� �������� �� >**� �� � ��� �� �� ��� � ������ �� ���

������� � � � ����� � �� �����9�"����� ���� ���� �� ����� ����

Page 364: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'� � �� ���� �� 3�� ���� �����������.

� ���� ��� � � � ��� ������ � �� � ��� " ���� �

� � �� �� ��&���?���������B � ��B�B8 IG=B�BG9\B�� J � ��0���J��� � ����,��

� � ���0���

=����8 #�� -���' ������� �"������ �� ��������$ �� ����

� � ���4�2�412��

=����8 #�� -���' ������� ��� ���� �� �����"�

$�� �7 ����� 6� � " ���� "� �� ���� ���� �� �����"���

����� �� �� �2� �� ���� �� /���

01�=�=C ;,1��0�1 -���#��8 ���'

01��,�= L ��������%4L

01�=�=C ��

01�=�=C ���

01�=�=C ��

01�=�=C (8 �8 �

�G�C���=C =CC/3�E�)

01�=�=C =CC/3��=1

=CC/3��=1 . �)

0; # ���9�� 9���#��8 ���' %1=% � ' �G=1

=CC/3� . K0�������� �� ��� � ��� ����K

���� ���9����9�����# ��8 =CC/3�8 =CC/3��=1 '

-��� . ��9 ���9����# �� '

C=�,C1

=1�0;

Page 365: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �''

�� . ���9�"����9��# ��8 ���8 ( '

( . ���9��9���������#��8 ��'

�� . ���9�"����9��# ��8 ���8 � '

� . ���9��9���������#��8 ��'

� . ( 7 �

-��� . ��9 ���9�������# ��8 � '

=1�

��� �������� �� � >**� �� ���� ���= �� �� ��� � ������ ������ �� � ���� $�� ��� ��@� ��� �� �� �������� ���"� �K;�C�C�1K � �� �����9�"����� �����

� � �� �� ��&���?���������B � ��B�B8 IG=B�BFVLXL ;B�BG9\B�� J � ��0���J��� � ����,��

!"����� ���� �=� �� �-� �� � ������ �� �� � "�� "� � � ��� �=����" ���� � � " �� ��� �" � ��� " ���� �� $��� ����� ���� ���� ��� ���� ��������� "�� ����� "�� �� ����� �-� ��� � � F��� $���� :��� ���� 512G �� ��� ��� ���� ����%4 � ��������%4�

������ !���$��� $�� �����"�� & � ��� �� �� ��� � 7 � ��� ��� �� � � ��� ������ � �� � � �� �=� ����� ��7 ��������� �� �� ��� � � �� � �� �=� �� � ��� � � ���� $���=� ����� ��7 ��� ������ � ��� � � ��� �� �� 7 � ��� �� ���� F�� �=������ ##���=ME'�"��'�( G� �� � . /���1� ����#��8�"��'� �� ���� � �� �� ##���=ME'�"���� �

/901� /���1� ����# /Y�����W����� ��8 ���=M �"�� '>

$�� � � ��� ������ � �� 6� � � � ��� ��� �� 7 � ����� ����� $�� ��� �"���� �� � ��� � � �� ��� � ������ ��� � �� ��� F�� �=������ ��( . ���9�"����9��#��8���8('G��� � . ���9�� 9���#��8�'� �� �� ��� � � �� �� ���9�"����9��#��8���8�'�

Page 366: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'� � �� ���� �� 3�� ���� �����������.

01�=�=C ���9�� 9���# ��8 � '

01�=�=C ���9�"����9��# ��8 �8 � '

$�� �����"�� � ���� ������ �� ��� �� �� ���� ����� ��#���

/9M��� 0�/�����������1 �# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/����� ���"1� ����# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���1� ����# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���0������# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���0������@# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���0������(I# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���0��������# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���0������I$# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���1 �# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���1,��# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/����������# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/����������1,��# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/������������# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���C����# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���3�����# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/�������# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���,��������1 �# /Y�����W����� ��8 ���=M � '>

/9M��� 0�/���,�� ��J���# /Y�����W����� ��8 ���=M � '>

+7 ����� 6� � � ���� � � �� �����"�� $�� & � �����0�/����������� 0�/����������1,��� �� 0�/���,�� ��J��� � �� ��������� � �� 6� � �-��

01�=�=C ��9 ���9�������9� �# ��8 � '

01�=�=C ��9 ���9�� ���"9�� ����# ��8 � '

01�=�=C ��9 ���9�� ����# ��8 � '

01�=�=C ��9 ���9�������# ��8 � '

01�=�=C ��9 ���9�������@# ��8 � '

01�=�=C ��9 ���9�������(I# ��8 � '

01�=�=C ��9 ���9���������# ��8 � '

01�=�=C ��9 ���9�������I$# ��8 � '

01�=�=C ��9 ���9� �# ��8 � '

01�=�=C ��9 ���9����# ��8 � '

01�=�=C ��9 ���9���������# ��8 � '

01�=�=C ��9 ���9�����# ��8 � '

01�=�=C ��9 ���9������# ��8 � '

01�=�=C ��9 ���9����# ��8 � '

01�=�=C ��9 ���9���������9� �# ��8 � '

Page 367: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �'!

$���� � ���� ��� � �C,= #(' "�� �� ����� ��� � %� �� ����� ���� ���� �� �� � ��� ���� �� � �� � �� �� �� �� ���� ;��3=#)' �� � ��� $�� ����� 1,�� �� � �� ���� �� � & � �������##�$�� �� �� �� �� ���� �=� ����� ��7 ��� � �� ����� ��� ���� $����� �� � ���� �� ����� �� � �� ��� ��� C� �� (��� �� � �� � ������� ��� ���� � � �� ����� *�� ���� �� ���� �� � �������## � ������= ���� �� ����� ���� C� �� � � ������� ����� ���� $��0�/���%%%1� ���� � ��� �� �� ����� ��� �� ���� ��%���� ������ ������ �� �� ��� ��� ��%���� 6� �=������ �-��#��( 8� �' � � ���� � ������ � 0�/���1 � ������ �� � 1�/= ��� �� �� � ;��3= ���� �� ��( �� �� ���� �� ����� �� � ��M�=C=; �������� 7 � � � ��� "�� �� �� ��C� �����%�� � �� ��� ����� ��� � �� ���� ����� ��#�� � �� � ����� ���� �� ���� �� � �� ��% �� �� �����%�� ��� �� ��� �� ���� �� � � �� �"� � ���� �

!���������� ���� ����� %�&���� $�� �����"�� � ���� � �������%�� ��� "�� ���� � ��� � �� �� �� ���� �� � �� ����

��/��=V;�� /������� ���";�����# /Y�����W����� ��8 ���=M � '>

��/��=V;I$ /������� ���";���I$# /Y�����W����� ��8 ���=M � '>

�V��� /������� ���";������# /Y�����W����� ��8 ���=M � '>

;������ /�����;�����# /Y�����W����� ��8 ���=M � '>

;����I$ /�����;���I$# /Y�����W����� ��8 ���=M � '>

01�=�=C@ /�����0������@# /Y�����W����� ��8 ���=M � '>

01�=�=C(I /�����0������(I# /Y�����W����� ��8 ���=M � '>

01�=�=C�� /�����0��������# /Y�����W����� ��8 ���=M � '>

01�=�=CI$ /�����0������I$# /Y�����W����� ��8 ���=M � '>

/9M��� /�����/9M���# /Y�����W����� ��8 ���=M � '>

/901� /�����/901�# /Y�����W����� ��8 ���=M � '>

����E /������������# /Y�����W����� ��8 ���=M � '>

�4�E /�����3�����# /Y�����W����� ��8 ���=M � '>

$�� �����"�� � � �� �7 ����� 6� � � ���� ��� �� ������=�� � �� ���� ��� � � ��� �� ��� ���� $�� ��� �� �� � � � �������� � �� � ��� �� �� � �� ���� �� ��� � ��� �� �� � ���� � �� �� ��� �� +7 ����� � ���� �� /������� ���";�������� /������������ � � � ����������

3,MC�,�01= ���9��9�� ���"9�����# ��8 �8 � '

3,MC�,�01= ���9��9�� ���"9���I$# ��8 �8 � '

C=�� ���9��9�����# ��8 � '

��,M�=�C=�030�1 ���9��9���I$# ��8 � '

Page 368: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�'" � �� ���� �� 3�� ���� �����������.

01�=�=C ���9��9�������@# ��8 � '

01�=�=C ���9��9�������(I# ��8 � '

01�=�=C ���9��9���������# ��8 � '

01�=�=CE@ ���9��9�������I$# ��8 � '

01�=�=C ���9��9 9����# ��8 � '

01�=�=C ���9��9 9���# ��8 � '

01�=�=C ���9��9������# ��8 �8 ������ '

6����� -�� ��� � ��� ���� � ������ � �� �� ���� ��� ��� �"� � ��C� ����

&��� ��� � �� � 3�C01� ��� � � ���� � � �� �(&�� ��� ��� �� % � ��� ��� � �� � ��� &��� ��� � �� � ����� M����� �� ���� � � ( �� ���� � ) �� ����

&��� ���� � �� � 3�C01� ��� � � � �� ��� �� � �� ����%���������� � ���� ��� �� �� ���� �� �� ����%����� � � ������ ��

$�� /������������ ���� ��� � � �� ���� ��� � �� �� � ������ M01�CD ����

!���������� � ����� %�&���� $�� �����"�� � ���� � � ����� �� �����%�� ��� ��� "�� ���� � ��� �� �� ������� �� �"� �����

���=M ��/���M�����# /Y�����W����� ��8 ���� � '>

���=M ��/����4�# /Y�����W����� ��8 ���� � '>

���=M ��/����� ���"# /Y�����W����� ��8 ������ ��8

������ � '>

���=M ��/����� ���";���# /Y�����W����� ��8 ���=M ��8

���=M � '>

���=M ��/���="��������3�������# /Y�����W����� ��8 ���

����8 BE ���=M ��(8 ���=M ���8 EB %%% '>

���=M ��/���0������# /Y�����W����� ��8 ���� � '>

���=M ��/���0������I$# /Y�����W����� ��8 01�=�=CI$ � '>

���=M ��/���;���# /Y�����W����� ��8 ������ '>

���=M ��/���1 �# /Y�����W����� ��8 �4� E�8 /9M���

��9����� '>

���=M ��/���1,��# /Y�����W����� �� '>

���=M ��/���1,���������# /Y�����W����� �� '>

���=M ��/����������# /Y�����W����� ��8 ���� E�8 /901�

�-�� '>

���=M ��/���C������# /Y�����W����� ��8 ����� �4� E���8

���=M �4�8 ���=M �4� '>

���=M ��/���3�����# /Y�����W����� ��8 �4� E� '>

Page 369: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �'#

���=M ��/���,����# /Y�����W����� ��8 ���=M � '>

$�� �7 ����� 6� � � ��� � � �� �����"�� $�� 6� � �-����� � � ��� ��/���="��������3�������� ��/���1,������������/����������� ��/���C������� � ��/���,�����

��9 ���9������# ��8 � '

��9 ���9�4�# ��8 � '

��9 ���9�� ���"# ��8 ��8 � '

��9 ���9�� ���"9���# ��8 ��8 � '

��9 ���9�������# ��8 � '

��9 ���9�������I$# ��8 � '

��9 ���9���# ��8 '

��9 ���9� �# ��8 �8 �9��� '

��9 ���9����# �� '

��9 ���9������# ��8 �8 �9��� '

��/���M����� �� � �� ��� ��� ��� � �� C� �� � � � �� �������� ���� �� � �� 5(� �� ����� ;�0� ��� �� � ��� �� � �� ��C� �F�� � 5(G� �� ����� ���� ��� �� � ���

��/����4� � � � ����� ��� ��� ����� � �� ������/����� ���" ���� � �� ��� �� �� ����� �� �� � � � �� �����

�=� ����� �� 7 0E� � �� � � ��� ������/����� ���";��� ���� � � ��� �� ;���� ���� � �� �����

�=� ����� �� 7 0E� � �� � � ��� ������/���="��������3������� � ��� �� � � � ����� �=� �����

��7 ��� �� %��� � "�� �� 1 ����� ����� ��(8 ���8 %%%8 ��1���/���1 � � � � ����� 1�/= ��� "�� �� ��� �� �� ��9�����

�� �� � �C,=� �� ��� �� ������ � �� ����� ��� ������ ��� "���� ����9����� �� ;��3=� �� ��� �� � �7 � �=�� �� ������

��/���1,�� � � �� ����� 1,�� ��� F� ���� =V�3=QG���/���1,��������� � � �� ����� C� � ���� $��� �� �� " ����

�� ������ �� � 1,�� ���� ������ � � � ���� �� >� � ��� ����� "�� �� ��� � � �� �� ��/���1,���

��/���3����� ������ �� ��� ��� � �� � � � ����� 3�C01� ����� � � �� ��� ��� �� 6� � �-�� �� ���� �� �� ���� � ��� � ���� �� �������

��������� ���� >������6 ������6 ����? ����������� 2������� � ��� ����� ����� �� W������ /���"� �� ���- ��� � � �� ������� $�� ����� ������ � ���� � � �� �����"��

�$� ���� ������ �� �������� ��� �� ��������

Page 370: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � �� ���� �� 3�� ���� �����������.

���=M C���������# /Y�����W����� ��8 C����3������� E�8

���� E���8 /901� E������ '>

����E C������M����# /Y�����W����� ��8 ���=M �� '>

/901� C����1� =�� ����# /Y�����W����� ��8 ���=M �� '>

/901� C����1� �� �������# /Y�����W����� ��8 ���=M �� '>

/901� C������2��M����# /Y�����W����� ��8 ���=M ��8

/901� �� '>

/901� C����,����M����# /Y�����W����� ��8 ���=M ��8

/901� �� '>

/9M��� C����0�C��# /Y�����W����� ��8 ���=M �� '>

$�� 6� � �-� ����� �� �����"�� � �����

3,MC�,�01= ���-9��9��-# ��8 ��8 8 �� 9��� �8

�������8 �� 9�� �8 ������8 ��9�-�� '

3,MC�,�01= ���-9��9�����# ��8 8 ��8 �� 9�� �8

������8 �� 9��� �8 �������8 ��9�-�� '

01�=�=C �������9��9�����# ��8 8 �� 9��� �8

�������8 �� 9�� �8 ������8 ��9�-�� '

01�=�=C �����9�� 9��� ����# ��8 � '

01�=�=C �����9�� 9�� �������# ��8 � '

01�=�=C �����9��2��9�����# ��8 �8 �� '

01�=�=C �����9�����9�����# ��8 �8 �� '

01�=�=C �����9��9���# ��8 � '

C������M���� � � � ���� � �� ��� ����� �� � ���������� $�� � �� ��� � ��� �� �� ����� � �� ��" ��� ����� �� ������ $�� ��� ����� �� �� ���� ���� �� ���� ����� �� ��� C���������� � C����3������ )�� � "�� �� ���� ���� ����� ��� ����� � � �� �"� � �� �� �� ��� ���� � �� � ��� ���� ��� ����� �� ���=�� � ���� � �� ��� � ��� ���

� 6� �� �� � �� � "�� � � � �CC�D ���� � $� "� �"�� � � �� � ���� � ������ �� ��������� � � �� ������ � � � ���������� 6� � ��� ����� ��� �� ���-9��9��- � ���� � �������� ���� �� �� ���� �� � �� �CC�D� � 6� � ������� �=�������� �� �� ���� � �� � � ������� ��� � �� ��������%4 %��� $����� � � �� ���� � ������ �� ���-9��9����� � ��� �� �� ����

C��������� � � � �"�� � ���� C��M�= �� �����%�� ��?

/� $�� ��%���� ���� � �� C����3������� � � � ��

�� � ���� � � �=���� ����� �� ���� �� ��� �� 1,��� � ����������� �������� �� ������C�� � �56���� ��� � ������ � �� ����

Page 371: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

� ���� ����� �� ���� � �� ���� � �� �56������ �� �� � �C,=�(�C�� �� ���� ��� ���� � �� � �� ���=�� � ���� ��� �� ��� �������� �� "�� ������ �� ��� ������ 4�� ����� �� ����� � ���� �� ���������� �� �� C������M���� � ��� ������ � ��

5� $�� �� �� � ��� ������� � " � �� �= � � ���� ������ .

(8 8(8� F�� ��� ��� �� ��� �� ��"� �� �� � � �� �����%��G�

$�� 6� � �7 ����� � ��� �� ������� �� ������ � � ���� ������ � �� � �=���� 6� � � ��� $�� ��� �� � ������ �� ������� ������ �� ����� ������ � ���� � �� �=� �� ����

C����1� =�� ���� � � �� ��� �� ������ � � ���������� $��� ��� �� ��@� � � ��� �� �� � � ���� ������

/� 6� ���� ������ � �� ��� �� ������ �� �� ��� ���������� ��� �����

�� �� �� �� � ��4���� �� �� ��� �� ��� � � �� ��� �� ������� � �� ��� ���� �����%�� �� �� ����� F"���� �� �� ������ �� ���� �� ���� ���= ���� G� ��� �� �� ��� � ���� � �� ���� �� ��� �� ��� ������ �� � � �� ���� %������ � �� ��� �� ������ ��������� (��� �� �� ������ ������� �� ��� � C� ��

5� 6� ��������� �� ������ ��� ��"��� � � C� ��

C����1� �� ������� � � �� ��� �� �������� � � ���� �����

C����,����M���� �� C������2��M���� ���� �� ��� �� ��"� �� � �� �� � �� ������� �� �� C��M�=� ��� 6� � � " � �� �=�C������2��M����#��8(' � � ( ���� �� �� % � ������� �� ��� � (%%�� �� �� ��"� �� � �� (�

C����0�C�� ������ �� ������ �� �� C��M�= �� � �� ��� "���� ��� � � ��� ���� �� ���-��.�� ���"� � � � ;��3=� �� ���-�� ��� �� �"� � ��� "�� � ���=�� � ���� �� �=������ ����@ � � � � �C,=� ��� "���� � ���� �� ���� �� � � ;��3= "�� ��% � ������= � � �� �� � � �C,= �� � ������= � ��� � � �� ��

� ������ � �� ����� � ����� �� � �� � �=����� & �-� �� "� ��� "�� ���� ��� �����

���� C�������������������# /Y�����W����� ��8 C����3�������

E�8 �4� E� � '>

���� C����������0��;�# /Y�����W����� ��8 C����3�������

Page 372: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � �� ���� �� 3�� ���� �����������.

E�8 ���=M ���� '>

���� C�������������# /Y�����W����� ��8 C����3�������

E� '>

���� C�������3�������# /Y�����W����� ��8 C����3�������

E�8 ���=M �� '>

/901� C����0��;�# /Y�����W����� ��8 ���=M ��8 /901� �� '>

���=M C����0��;�����# /Y�����W����� ��8 ���=M ��8 /901� �� '>

���� C����3�����������# /Y�����W����� ��8 C����3�������

E�8 �4� E� � '>

���� C����3��0��;�# /Y�����W����� ��8 C����3������� E�8

���=M ���� '>

���� C����3���-��# /Y�����W����� ��8 C����3������� E�8

/901� ��8 �4� E� � '>

C������ C����3�����# /Y�����W����� ��8 ���=M ��8 /901�

E����" '>

C������ C����������# /Y�����W����� ��8 ���=M ��8 /901�

E����"8 C������ �� '>

���� C����3������ ���# /Y�����W����� ��8 ���=M �� '>

1��901�E C����3����0���"C�2# /Y�����W����� ��8 ���=M ��8

/901� �� '>

���=M C����3����0���"3���# /Y�����W����� ��8 ���=M ��8

/901� �-9�� '>

���� C����3����3��1� =�� �# /Y�����W����� ��8 ���=M ��8

/901� �� '>

/901� C����3����3�H�# /Y�����W����� ��8 ���=M �� '>

���=M C�������-# /Y�����W����� ��8 C����3������� E�8

���=M �� '>

���=M C�������-0 ���# /Y�����W����� ��8 C����3�������

E�8 ���=M �� '>

���=M C�������-C�����# /Y�����W����� ��8 C����3�������

E�8 ���=M �� '>

���=M C����J��C�0 # /Y�����W����� ��8 C����3������� E�8

���=M ��9��8 ���=M ��9� '>

��� C���� ������ � ���� �� �� C����3������� � � � ���%�� � ������%4� $��� � � �� ������ �� ���� � �� ����� ���������� � �� ����� ��� �� � ������

C������������������� ������ �� � � � �� � � �� ��� ��� �� �� � �� C����3������� � � ��

Page 373: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ���

C����������0��;� ������ �� ���=�� � ���� ��� � �� ����� ���=�� � ���� � �� C����3������� � � �� ��� �� ���� � �� � ����� ����� ��� � ���� ��� ���� 6� �=������

C����������0��;�#��8F��������8��/���1 �#��8L�- �����L8

�C,=''>

C����������0��;�#��8F��������8=��/���3��� ���#��8

L�������������� L''>

C������������� %��� �� C����3������� � � � � "�� ����� � ���� � ��� ��� $���� ���� �� � � �� �����"��

��9�-�� . C��M�=9���

���9�-�� . K�-�4���K #/��� � � K�-�4���K'

����-�� . C��M�=9�CC�D

������ . C��M�=9C=��

�( . 5(8 �� . 5(

����� . C��M�=9;�C�C�1

���9���- . ;��3=

������ . ;��3=

�� 9�� ������� . 5(

����"9�������� . K1,��K #/��� 1,��'

��������� . K1,��K #/��� 1,��'

�������� . ;��3=

��� . )

C�������3������� %��� �� C����3������� � � � � "�� ������� ���� �� �� C��M�=� ���

C����0��;� � � �� � ���=�� � ��� ����� $�� ���=������� � � ��%�� � ������%4 � �� �� � C��M�= 01�=V VVVV� �� �� �� � � ���=�� � ����� ��� ����� � � � �� �� ��� � �� �� �� �� ��� �� ���=�� � ���� �� �����0��;��#��8(' � � �� ���� �� �� ��� ���=�� � ���� )�� /���1� ���� � ��� ��� �� ��� �� ���=�� � �����

C����0��;����� � � �� � � �� �=� ����� ��7 ��� �� ����=�� � ��� K�� K � ���� K��K� �� �� � � � � � � ���� �����K1,��K �� � ��� $�� �� � �� �� � �� ���� �� � � �� �"� � ��� ��� �� /�����VVV � ���F�G� $�� ��� �� � � ��� � �� ���� ��� ���� ��� /���1� ����� ��� �� ���� ��"����� ��� �� ���=�� � ���� �� �7 � �� � ���� �� � ��� � � �� ���� �� ��� �� �"� � ���� 6� �=������ C����0��;�����#��8��8(' ��� �����(8�� ���� � � �� �( �� �� �� �=� ����� ��7 ���

Page 374: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

#�(8��'� $�� �� � � ��" �� �( �� �� � � ��"��� ���� ��&��� ����� � � ��������� �� ��"��� �� ���� ��� �� �� ����B�������� $� � �� ����@ ������ � ���� � � �� �"� � ��� ��/�����;���I$�

C����3����������� ��� ��� �� � �� �� �� �� C����3�������

� � � � � �� ����� 1�/= � �� �� � ��C����3��0��;� ��� ��� �� ���=�� � ���� �� �� C����3�������

� � � � �� ���� � � �� ����� ���=�� � ��� ����C����3���-�� ��� �� �� �-�� %��� � �� ���� C����3�������

� � � � � ��� �� "�� ��.C��M�=9���� ��� �� ��� �-�� � � ��6� �=������ � �� �� ��� ��� � ����@ � C����3���-��#��8F�8C��M�= ;����81,��' �� ������� $� �� �� ��� � �� �����C����3���-��#��8F�8C��M�= ���8L�� ����L' �� ������� .���� ��� ���� � ��%�� � ������%4� $� �� ����� � ����� �� C����3���������� � � � �� �� ���� ���� �� ���� �� �����"��

��������%��9�-�� . C��M�=9���>

��������% ���9�-�� . =��/���3��� ���#��8

L�� ���"#�� ����'L'>

C����3����� � � �� ��� � �������" � "�� � �� �� � C��M�=��� ����" �� � ���� � ���

C���������� ������ �� ��� � �� � �������" � $��� � ��� � ��� ��� ����� �� ������� �� ���� � �� ���� ��������� "����� �� ���� ���� ��� � ���=�� � ��� � � �� �� ��� �� �� F�� �=������ ��� ��G� $�� ����" �� � ���� � ��� 6� �=������ �� ������"�� ���� ������ �� ��� � �%($ � �� ��8( ����� �� �� �������-��.����@ �����

C������ ��>

/901� E����">

����"�) . �>

����"�( . (>

��%���I$ . �%($>

C����������#��8��8����"8��'>

C����3������ ��� ������ �� C� �� � �� ��� �� ���� ��������� $��� ��� �� �� ������ ��� � �=� �� � �� �� ����%�� ����� �� ��� ����� �� �����

C����3����0���"C�2 � � �� ���� �� ������ �� �� � �������� �� ��� $�� �� � � �� � ��4 ��� �� �����

Page 375: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��'

C����3����0���"3��� �� � �� � � ���= ���� �� �� ��4��� �� ���� ��� $��� �� ��� �������� �� �� ��� ���= ���� � � ���# ��� ���� ����� �� �� �� ���=D��� � ������ �� � ��� ����

C����3����3��1� =�� � ��� �� ��� �� ��C� � � ��� � ����4 ��� �� ���� �� � 1� $��� ��� �� �� ��� ��� �� �� ��� �������� ��� �������

C����3����3�H� � � �� ��� �� � ��� �������� � �� ���� � �� ��4 ��� �� ���� ��� $��� �� � ������ ��� �� ���� ��C����1� =�� ��

C�������- � � � ���� �� �� ���� �� "�� �" ����� �� ������ �� C����3������� � � � ��

C�������-0 ��� � � � ���� �� �� ������ � �� �� �� ������ "�� �" ����� �� ���� �� �� C����3������� � � � �� $������ � �� �� � ��� ���� � ����� ��� �� ������ � �� � �� ������ �����

C�������-C����� � � � ���� �� �� ��� �� �� �� ���� ��"�� �" ����� �� ���� �� �� C����3������� � � � ��

C����J��C�0 ������� "� ��� 9$�.*+�� �� �� �� �� � � ��� ������= ���� �� �� �� � �� �� 7 0E�� � � $�� ����� �� �� �" ���� �� �� � �� � � ��� ���� �� �� C����3������� � � ���

���� ����������� $� "� � "�� ����� ����� �� �����"�� �-� � ������ �� ���� $���� � ���� � � ��� ��������� ��� �� & �-��

���=M /������������# /Y�����W����� ��8 /901� �� 9 � ���� '>

���� /�������������# /Y�����W����� ��8 ���=M ����8

/901� �8 ���=M �� '>

���=M /�������3�����# /Y�����W����� ��8 ���=M ����8

/901� � '>

/������������ � ���� � �03� ��� "�� ����� �� �� 9 � ���� �������� $��� ��� � � �� %���� ���� � � �� �� ������ � ������

/������������� ��� �� � ����� �� �� ���� ��� � �� ��� ���� $�� ��� ������ <. ���

/�������3����� � � �� � ����� �� �� ���� �����

���� ����������� $� �� ����� ������ �� �����"�� �-� � ������ �� ���� $���� � ���� � � ��� ��������� ��� �� & �-��

���=M /������������# /Y�����W����� �� '>

���� /�������������# /Y�����W����� ��8 ���=M ����8

���=M ���8 ���=M �� '>

Page 376: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � �� ���� �� 3�� ���� �����������.

���=M /�������3�����# /Y�����W����� ��8 ���=M ����8

���=M ��� '>

���� /�������������# /Y�����W����� ��8 ���=M ����8

���=M ��� '>

/9M��� /�������G�=���-# /Y�����W����� ��8 ���=M ����8

���=M ��� '>

/������������ � ���� � ��M�= ���� $�� ���� �� ������� �����/������������� ��� �� ��� ����� �� �� ���� ���� � ��

��� � ��� $�� ��� �������� <. ��� "�� � ��� �� �� � 1�/= � ��=� ����� ��7 ��� �� ��� �� � �� ��� ����� ���= �� � ����������

/�������3����� � � �� ��� ����� �� �� ���� �����/������������� ������ �� ��� ����� � �� �� �����/�������G�=���- 7 � ��� �� ���� � ��� ��� "���� � ���

��� � ����� � ���= ���� �� � ����� �C,= �� � ��L ��� "����;��3= �� � ���

*��� ��������� $�� �����"�� � ���� � � ��������� "�� ��� ��& �-� ��� �� ���� "�� ������� � �� �� �� � ���� �� ����� ���� � ���

���=M /���3�����0 ����-���# /Y�����W����� ��8 ���=M � '>

���=M /���3�����C�����# /Y�����W����� ��8 ���=M � '>

���=M /���3�����0���"��# /Y�����W����� ��8 ���=M �8 /901�

�� 8 /901� E��� '>

/���3�����0 ����-��� �� /���3�����C����� � �������� � �� ��� �� � �� � ������= ��� ���� �����������

/���3�����0���"�� � � � ��� � � �� �� ���=���� ��#�� ������� � �� �� ����� ��-� � ���� $�� ���= �� �����%�� �� %���� ����� � �� "�� �� ���� �� ���=� $�� ����� �� ���� �� �� �� ��� �� �������� � �� � �� � F���� �� ��� �� ������ � ���G�

6� �=������ � ���� � �(8�8� � �� �����"�� ���� �� �� �� ���F��� ��� ��( ���� � �� � �� G�

���=M ��>

/901� ����� >

����) . (>

����( . �>

����� . �>

Page 377: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��!

�� . �56������0���"��#��(8 �8 ���'>

-��#� *��� $�� �����"�� � ��� �� ��������� ��� � �� & �-��

���=M /���,�����# /Y�����W����� ��8 ���=M � '>

$��� � ��� � ������� �� ���� ����� �=� ����� �� �� � ��� �7 � ���� �� �� �=� ����� � �� �� ����� ����� ����� 6� �=������ �� �� � ��� �� ��� �� . ���������� �� �� ����� � �� ��� �� . �E?))5 ������� � ��� ��� ����� ��� �� �� �� �� ���� � ������ �7 ����� ��� ������ �������� �� � �� .

/���,�����#��8�� '� ��� �� �� �� ��� � �� ���� ���� ��

����� 1������� $�� �����"�� � ���� ���� � ����� ���"� ������ � � � ��������

���� /���C���=����# /Y�����W����� ��8 �4� E �� '>

���� /���C���=����(# /Y�����W����� ��8 �4� E ��8

���=M ��( '>

���� /���C���=�����# /Y�����W����� ��8 �4� E ��8

���=M ��(8 ���=M ��� '>

$�� 6� � �7 ����� ��?

3,MC�,�01= ���9����9�����# ��8 ��8 ��� '

$���� � ���� ������� �� ������� ��� ��� �=�� ��� �� � � �� ����� �� ����� � ���� � /���C���=���� ���� � � �

$�� ��� ��� � �� �� �� ���� "����� �� �� �� �� � S1� "�� � 1�� � ��C� � ���� � $���� "����� �� � � ������� �� �� �= � � � �����( � ���� ���� � ��������� �� �������� �� S51 �� �����%��� �� �������� � � �� �� ��������� "�� ��� ��� ��� � �4 ������� � �� 6� �=�����?

/���C���=�����#��8 L�4� S5( ��� ���8 KS�K8 �� ��� ����L8

��/���0������#�'8 ����� '>

$���� �� ������� ����� �� � � � =��� ,�� �������> ?���?> � ��� $�� �=���� ��� �.$� �� ����� �� �� � �� ����� ��� ����

$�� ��� ���� � ����"�� �� S) ���� �� �� � ��� ��� ��� ���� �� ��� �� �� ��� ������ � � ����

$�� & �-� ���� � ������ � �������� �� ����� � � � ����� ��������

�$� �� � ���� ������� ��� �� �������

Page 378: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � �� ���� �� 3�� ���� �����������.

����E /������=����# /Y�����W����� ��8 ���� E#E����'

�## ���� E�� ''8 ���� E��8 /9M��� E������� '>

/������=���� �=�� �� �� & � ��� ����� ������ � �� ������� �� � � � ��� �� ������� �� �� � �C,= �� �������� � ������������ �� � � � ��� �� �� �� � �� ����#��' �� � �� ��������� �� ;��3=�

6� �=������ �� �����"�� ���� ����� � �=�� � � ����� � ����� �� �� � � � ��� �� � ���� �� � ��� �� ���� �� ����

�-���� ������ Z

/Y�����W����� �>

���=M �8 ��(8 ���>

[ ����������>

���� E��-������# ���� E�� '

Z

BE ���� �4� ��� ��������� K�K 2��4 ��� ���� K��(K EB

BE �� K���K EB

������ #����E'

=��/�������# ##����������E'��'56�8

##����������E'��'56�8 �8

##����������E'��'56��(8

##����������E'��'56���'>

[

���� /������# /Y�����W����� �8 ���=M � '

Z

/9M��� �������>

���=M ������>

���������� >

%� . �>

%� . �>

%��( . ��/���;���#�8�%($'>

%��� . ��/���0������#�8$$'>

������ . #���=M'/������=����#�8��-������8F8F�������'>

�# ������� ' Z

BE �� �� ��4��� EB

[

���� Z

Page 379: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � ��#

BE �� �� ��4��� ���� EB

[

[

1���,��� ����� ��������� $�� �����"�� � ���� �� ���� �� � ������ ���� � � ����� ��� �� �"� � N����

������ /���=��4# /Y�����W����� ��8 ���=M � '>

������ =��4/�������# /Y�����W����� ��8 ���=M �8

��� ����8 ������ E��� '>

$�� �7 ����� 6� � � ���� � � �� �����"��

��,M�=�C=�030�1 ���9���4# ��8 �'

��,M�=�C=�030�1 ���49 ���9����# ��8 �8 ����8 ��� '

/���=��4 ������� ���4 � �� ���� ��� �� $�� ���4 ���� ���� ��� � �=� ������ ��� �� �"� � N��� � � �� �� � �� �"� � N�� �� �� � � � �� ����� � � ���4��� ���� �� �� �� ����� � �� ���� � =��4/��������

=��4/������� ����� �� ���4 ���� ��� ���� �� ���� ����� �� �� ���� � ���� � � "��� ���� �� �� �� �"� � N���� ���� � � ���"� � N���� $�� � ���� � � �� � ����� ����� �C��

���� ���� �� �� ��� �� �� ���� � � ���� � �� �� ��� �� �� ����� �� ���� �� ��� �� ��� �� � � (L ����( �� �� % � �� ���� ��������� �� �� ���� �� ����) �� � ����

(��� � � �������� ��� �7 � � ���� ����� �� ������ � �� " ���� ��� �� �� �� �� �������� ��� ������ � �� �� �� ���� F ���� � �������� ��� � �� �� ���� �� �� �������� �������G� $�� �����"���� � �=����� �� � " ���� �� ��� =��4/������� � ���� �� �� ��� �� ���� � 4��- �� ���� �� �� ��� ���

]������� L ����%4L

����� /Y�����W����� ��> BE ������ ������ EB

����� ���=M �> BE ������� 4���� EB

����� ������ 4�� ��G;9/�V9��C�/37( > BE �� ����� EB

���� ������# ��� 18 ������ V8 ������ D� '

Z

4�� ��( . #������'1>

4�� ��� . V>

BE 4�� ��� �� ����- ��� EB

Page 380: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!$ � �� ���� �� 3�� ���� �����������.

=��4/�������#��8�8�84�� �'>

[

BE �� 2����� ������� ����� �� /��� EB

���=M ����# /Y�����W����� �8 ���=M ��� '

Z

BE ���� �� �4������ �� �4� ��� � ������- EB

�� . �> BE ��� ������ ������ EB

BE ��� �4� 4��- 4���� EB

4�� ��� . /���=��4#���#����( ''>

� . ���#����� '> BE ��� �4� ������� 4���� EB

��9���#������'> BE ���� �4� ������� �4� EB

BE ���� ������#' EB

������# �56��/���1,��#' '>

[

� ������ �� �=� �� � �� �� �������� ���� �� ��� � �=��� �� � �� ����� �� �� ���� � ���� � �� � ���� � �� ���4�

� & �� ����������� ��� �� �3������� ����� � �� R�������������������&���������

� � �� ��&���?���������B����B�8 IG=�G9\�J��:����0��J��� ����&��

'������ ��������� $�� �����"�� � ���� �� ���� �� ����� � ����� �� � ������� $���� � ��� � � � ��������� � �� 6� � �-��

���=M /���=��# /Y�����W����� ��8 ���=M � '>

���=M =��/�������# /Y�����W����� ��8 ���=M �8 ��� ����8

BE ���=M ��(8 ���=M ���8 EB %%% '>

���=M =��/���3��� ���# /Y�����W����� ��8 �4� E���� ��� '>

=��/������� �� � �������� � ������ $�� % � � � �� � �� ������ �C�� � ;,1��0�1 ���� "���� �� ���� ��� "�� �� � � ������( %% ��1� 6� �=������ ������ �� �����"�� ����� � ����

� & �� ������� �4� ����

�� ��� � ��� �� ������ � �� �=� �� � ��� �� ����( � �������"�� ���� �=�� �� �� ���� � ��� � " <. �%($�

Page 381: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� ������ � � ������ 8���� ��+����� ���� �� � ��� � �!�

���=M (8 /���C�����>

������ �C�����>

( . ��/���;���#��8�%($'>

/���C����� . =��/�������#��8����( 8(8('>

�C����� . /�����;���I$#��8/���C�����'>

=��/���3��� ��� ������ �� � �� � ����� �� ����� ���������� �� ���� �� �� 6� �=������ �� �����"�� ���� ���� ��� ����� �� �� �� � �� ��� " . )%%(�

���=M /���C�����>

������ �C�����>

/���C����� . =��/���3��� ���#��8L���#"*�8".)%%('L'>

�C����� . �����;���I$#��8/���C�����'>

/���=�� ���� ��� � ����� �=� ������ � �� ���������� ��� � �� ��� ���� �� ��� � �� � ������� ����

��������� �� ����� ��������� $�� �����"�� ������� � ���� � ���������� ��� "�� ��� �� & �-��

���=M /���������# /Y�����W����� ��8 ���=M �4�8 ���=M �4� '>

���=M /���������0���"��# /Y�����W����� ��8 ���=M �4�8

/901� �� 8 /901� E���8 ���=M �4� '>

/��������� ��� �� ��� � ��� �4� � �� ��� ��� �4�� $��� ���7 ����� � �� ����� �����

� �$� �� �$��

/���������0���"�� ��� �� ��� � �4� � �� ���=�� �� ����� �4��$�� ����� �� ���� �� ������� �� ��� �� �������� � ��� �� F� ( �� �4� �� � ����G� $�� �� � �� ���� ��� �� � �� �"� �� �� �� �������

6� �=������ � ���� �� ������� �( �� �� . �%($� �� ������"�� ���� �� �� �� ��� F��� ��� ��( ���� � �� � �� G�

���=M �4�>

/901� ����� >

����) . (>

����( . �>

Page 382: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�! � �� ���� �� 3�� ���� �����������.

����� . �>

�4� . ��/���;���#��8�%($'>

/���������0���"��#��8��(8�8���8�4�'>

-��� ��"�������� $�� /���,���0�� ������ �������� L ��L "�����������K� �K �� �� � ������ $��� ������ �� ��� ��������� ��� & �-��

���� /���,���0��# /Y�����W����� ��8 ��� �����8 �4�

E� �8 �4� E �� '>

������ ���������� $�� �����"�� � ���� � � ��������� ��� "�� ��� �� & �-��

����E /��������# /Y�����W����� ��8 /901� ��-��� '>

���� /����������# /Y�����W����� ��8 ���=M � '>

���� /���������2# /Y�����W����� ��8 ���=M '>

���� /������������# /Y�����W����� ��8 ���=M '>

/�������� �������� ��-��� ���� �� ���� � �� � � � ���� � �� 4� ���� �������� �� ��� ���� � �� ������ �� ������ ��� ��� ������� ��� ���� �� � �" M01�CD ��� � � � �� � ����� �� ����� � �� ��� �� �� �� ��� �� � ���

$�� �����"�� ���� ������ ���� �� ��� � � " ���� �� ���� �� ���� ��� ��� F� ���G � ����� � &�

���=M ��(>

01�=�=C�� E�>

� . /��������#��8��H��#01�=�=C��''>

E� . /�����0��������#��8��('>

/���������� � ��� �� ���� � �������� � �� � � � �� $������ �� ��� �� ��� � ��� � � �� � ���� ��� /��������� � ���� �� "� � � ���� �=� ���� �� � � � � ���� � � �� ������ �� �� ��� ����� � � �� $�� ����� �� ���� ������� ��������� ���� � � ����� � �� �� ��� ��� � � �� �� � ����������� � �� � ������ � � �� /�����������

/������������ � ���� �� ����� ��� � �� ���� �������� �� ������� �� ���� ������� � $�� ���� � ����� � F�� G �� � � ��� ������� �=��� � � ���� � /���������2 �� ��� ��� �� ���� �� � ��� ��� ��"�� �=� �� � ��� �������� � � �� � ������ $���

Page 383: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �!�

��� ��� �� �=� �� ������ � ���� ���=M �� ������ �� "��� �� ��� ��� � � ��� �=� �� ����� 6��� � � � ��� � �� � �� ���� �� ����� ������ �=����� �� �� �� �� ����� �� ���� ������� ������ � ��"��� ��� ������

/���������2 ����"� �� ����� ��� � � � � �� �������� �� ������� �� ���� ������� � �� ����� ��� � � � �� �� � ��� ������ ���� ����� ��� � � � �� � ��������� ��� ���� �� �� ���� � ��������� ����� ���� � � � ����� � �� �� ���� �������� �� ��� � � ��� ����"�� � F�� ��� �� ��� � �� � ������ ��� � �� �� � � ��B����G� $�� � ��� ��� �� � ����� ��� �� � ���� �� ���� �������������� � ��

�'��� �������'$�� ����� �� �� ��� � �� �� ��� �� 7 ���� � ��������� �� �=� ��� ����� �� � �=� �� � ��� �� �� �� � ������� ��� ���� � �� ���������� ���� � � ���� �� �� ��� ��� ������ �� ��� ��� �� �� �� � �������� �� � � ����� � � � $�� �=� �� � �� � �������� ��� ����� � � ��� ���

�� � �=� �� � �� �������� ���� � � ���� �� �� ��� ��� ����� � ����� �� ����� ��� ��� ������ �� �=� �� � �� "��� ������ ��� � ����� ����� "��� ������ �� ���� �� ��� � ��=�������� ������� � �� ��� ��� � �� ����� ������� (����� ��� � �=� �� � �� �� ������� ���� "�� ����� ��� � � �� �� �� � ����� �� ��� ��� ����� � � � ���� ���� ����������

$�� ��� �� �� �=� �� ������ � �� �" ���� ����� � �=� �� � �� �� �� �� �� ���� " ��� � �� �� � ������ �� � �� � �� �� "���� �� ���� ����� �� � �� ���� F��� �����9�"�����G� ������ � ��� � �� ��� �� �� �� �=� �� � �� "�� � �� �������

*�" ,��������/ 7���% ����� �� �������� ����

$��� ����� ���� ���� �� ��������� - �� ����� �� ���� F�-�G ��� �������� �� ��� �������� �� � � �� �� � ���� �� ����"� �� � ������ ����� ���� ���� �� ��� � � �� � �� �������� & � &OO � �� ��� $� �� ���������� ����� � � �� �������� E� �� ��� �� � �� ��������� � �� ������� ����� �� �

$�� ��� ���� � ��� ��� �� �� �� �"� � �������� )������� "��� ���� �� ��� ���� �� ���� ��� ��� ����� � ����� ���������

Page 384: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!� � �� ���� �� 3�� ���� �����������.

����$��� *&��&���$�� � �� ����� �� ���� F�-�G �� � �� � �� �=���� �������� ����� � ��������� )��� �������� � ������ �� �� ������ � ��� �� ������� �� �� ��� ����� $��� �� ������ � �� ������ ����� �"�����

� ������ � �� � �� �� � �=� �� " ���� � 6� �� � ��� ���� ��=� �� ������� ��� #0� �������� &��� ��* ? �� &��� ��� &��� ������ � ��� � ��"����� ������ �� ������ U������

�������� � ������ �� ������ � �� �� ����� �� �� �� �� ��� � � .� ���� �� � � �� �� � ������� (��� � ��������� � ��������"� �� � �� �� � � �� �� �=������ � �= ��= � � � ��� 6� �� � ��� ���� � ��������� � ����� ��� &���+���1 .��� �� ����� 531�

*��� ���� ����� ��%�� � ��" ��"������ ��� ���� � ��� ��� �� ������� ��"�� � ����� ��� (��� ���� � � ��� �� �� ���� � � � ��� �� �� �������� �-� � �����

/ 01� � ���� �� �� �� ���� ��C� �� � ���� � �� � ����� ��� ��� � ����� ��� �� �=������ ����"�� ��� �� �7 ����� ����� � ���� � ����� ��� ��� �� �7 ����� � ���� ����

/ M��� � ���� �� �� ��� �� �� "� ��� ��� �C,= � ;��3=� $����C� �� ��� ��� �� �� ���� �� / 01��

���=M � ����� �=� ����� � ���� �� �� �� ��� $�� �� �� �� ���� ����� � ���� � ���� F� �� �� /���=��G �� � �� ��=� ����� �� � �� � ������� �� ��� �-� � ����� $�� ������ ��%���� � � � ���4���%4 �� ������%4�

01�=�=C@8 01�=�=C(I8 01�=�=C��8 01�=�=CI$8 ;������8 ;����I$ $������� �� ��� � ��������� ����� ��������� ����� $�� ��� � �������� � �� �� �� ������C�� ���� ��� �����C�� �� �� �� ����� ������� �

��� �-� � ���� � � ����� �� "�� �� ����%� / �=�� �� =V� �=������ ��� ��� ���� ;�� �� &D&OO F�(;&G� / �=�� �� ��%�� ���� ]����� �� ������ �� =V� �=�� �� ��%�� ��� ]����� ����������#���� ����' F� ������� ������ ������� �� ��� ����

��� �=�� �G� 6� ��� ������� �� ���� � � ��%�� ��� ]����� ������� ��� ��� ��� �(;& � ����"�� �� � �� �� ��%���� ��� �� ������

Page 385: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �!'

0���� �� �������� $�� �������� �-� ������ �� ��� �� ���� �� ���� ��������� � �� �=� �� ���� �-�� �� � 3���/���� 3���/������ C�����/��� � ����� 6� �� � ��� ���� � �=� �� ���������� #0� �������� &��� ��* ? �� &��� ��� &��� � ����� � ��� � ��"����� �������

$�� ��7 ��� �� ������ �� ����� �-� � ���� �� �� �����"��

/� &��� 3���/���� 6� �� � ��� ����� ��� �� �����"�� �� � �� 7 ������� � �������

�� +=�� � � � �� ������ � ����� �� ������ =��/���3��� ���

� �� �� �� �� ��� � ���� ����� � ����%4� 6� �� � ��� ������ ��� �%���� �� ����� ���� � ���� 53:�

5� 9��� ����� �� ������ C�����/��� F�� ������ �G� $� �=�� � ��������� ������� � ��� ������� � � ��� �� 6� �� � ��� ����� � ��� �� ������ ��� )� � � �� 7 �� ����� � ���� 530�

2� &��� 3���/���� ��� �� ��� �� ����� �� ��� �� ��� ��� �� 6� �� � ��� ���� � ������ ������ ���,��� ��� �� ������ ���� 530�

$�� ��������� � ���� � � ����� �� � ����%4 �� ��%�� � �������"�� � ��������

��������+��� ����� $�� 3���/��� � ���?

� & ���� � ����� �� ��

� -����� ���������� �� ���� � � ��� �� �� F� � ��� �� ���� ���� �� ������ � �� �������� �� ��� �� �����G

� - ��� �� �� �� �� �� ���� ���

$�� ������ ��7 ��� �� �� �����"��

/Y�����W����� 3���/���# ��� ���8 �4� E���� 8

/���M��W����� ��8 ���� E���� ��8 ���� E���8

�4� E������ '>

� $�� ��� �� ���� ������� �� ��� �� ���������� � � ��������� � ����

Page 386: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!� � �� ���� �� 3�� ���� �����������.

� $�� ��� �� ���� �� � � �� �� � �� ���� � ����� �� ���������� �� ���� �� $��� � �� � � ���� � ���� ��� O / ������� ��% � �� "���� F����) G � � �� �� ��� �� �� ��������� � ��� �� B�����B� �� ��� �� 1,��� ��� �� ��� � � ��� ���

$�� �������� �� �� � ��� � � � ��� �� �� ���������� ������ ��� �� �� �� ���������� �� ��� �� ������ ����� �� ���� � ��� F� �� �� R5�RG �� �� ������ �� ���� ?

C � ����� �� ���� � � "���� �� � � �� ���������� �����"� ������ "�� � �� ���� ������ �� �=������ R5�B���B ���B���R

C � ��� �� �� ���� �� �� �=������ R5�R �� RB���B ���B���R

����� �� � � ��� � ��� �� ��� �� � �� ������ �� ������ F�>� ����)G �� %�� ����� F�6� ��� �-G� ����� �����%� � ��� �� � ��������� ���� � � ���� ��� � ��� ���

� $�� �� �� ���� �����%�� � �������� �� � ���� �� ����� ��� � � �� �� � �� ���������� 6� �� � ��� ���� � ���������� ����� ��� &���+���1 .��� �� � ���� 531�

� $�� ���� �� �� ���� �� � � �� � � �� �� ������ ��� �� � �� ��% � � � �� ������ � �� ��������� � �����

� $�� ��� �� ���� �� � ��� ��� ��� �� �� �� � ������ �� � �� �� � 1,���

� $�� ������ �� ���� �� � � ��������� � �� � @� � $�� � � ��� ���� ���� � � ���� � � �� "�� � � � � �� " �� �� �������C��� ������ $�� � � ������� "��� � �=���� ��20 ��� ��� �F��� ��� �� � � ���� G�

$�� 3���/��� � ��� � � � ����� �� �� ����� �� � ������ ��$��� ����� �� ����� �� � � � �� � ��� ��� � ���� ����� � ����%4� �� /���0������H� ����� F�� �=������ �� ��� �� � � ���� � ������G� � � � � C� � �� � � � ������� �� " �� � ������ � ����� � �� �� ������ �� ���� � & ���� � ����� �� ���� � ��� � ��� ���

��������� ����� ���� $�� ��� ��� �� ���� ��� � ����=��/���3��� ��� ���� � �� � ��� �� ��� �� �� �� �=�� ��� �� �� � "� � �� �� � �������� ������ $�� �� � �� �� ������� � � �� �� ��������� ��� �� ��������� � ���� � ������ �3���/����

Page 387: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �!!

$�� � � � �� ����� �� %�� �� � �� ���� � �� �� �� ������ ���� �� ��� � ���� �� "� � "�� �*4+. �����

$�� =��/���3��� ��� � ��� �� ��%�� �� �����"��

���=M / �=�� =��/���3��� ���# /Y�����W����� ��8 �4�

E���� ��� '>

� $�� �� �� ���� �����%�� �� ����� � �� ����� �� ��� $��� ���� ����� � �� �� 3���/����

� $�� ���� ��� �� ���� �����%�� �� ����� � �� ���� �����=� ����� � ����� ���=� �� �� �=� ����� ����� � ���= � � �=��/���3��� ��� ����� �� ��������M�� "�� "� �� ���� �?� ���= � � ������� �� �� �@�� �� ���� ��� � "���� ��� � ��� ��� 6� �� � ��� ���� � �� ��������M�� � ����� ��� ����� &���+���1 .��� �� � ���� 50/� �� � �������������� ������ ���� � � ���� F*G �� � ��� �� � � � � �� �� ��� �� ����� � ������ �������� �� � � �� � �� ���� �7 ��� �� ��"��� ����������

������ � ����� ��������� $�� /���C���=���� � ��� �� �������� � �� �� ��������� � ��� � �� �� � ����� � � � �� �� ������� ����� ����� ��� ��� ������� �� � ����� ��-5���4� �� ��@��� � ������ �� � � � �� ����� ���� ��� �� � �=�� � ��� �� ��-5���4 ����� ��� "���� ���� ��� ����� �� � ����� � � ������� �� ��� ��� �� �� � ��������M�� � ���� 6� �� � ��� ����� � �� ��������M�� � ���� ��� ����� &���+���1 .��� ��� ���� 50/�

$�� /���C���=���� ������ �� � ���� �� ��%�� �� �����"��

���� /���C���=����# /Y�����W����� ��8 �4� E �� '>

���� /���C���=����(# /Y�����W����� ��8 �4� E ��8

���=M ��( '>

���� /���C���=�����# /Y�����W����� ��8 �4� E ��8

���=M ��(8 ���=M ��� '>

� $�� �� �� ���� �����%�� �� ����� � �� ����� �� ���

� $�� �� �� ���� �� �� �= �� �� � � ������� � � �� �� F ������ �=����� �� �� ��G�

�$� �� � ���� ������ �� ��� ��������� ���������� ��� �� ������ - �� ��� ��������� ���������� ���� � �����

Page 388: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�!" � �� ���� �� 3�� ���� �����������.

� $�� �� �� ���� � � � �� � �� � � �� � � ����� ��#��� ��� � � ��� �� �� ��� �� �� ���� ������� � �� �� � ��"�� �� �=����� �� ���������� 6� ��� ���� � ��� ������� � ���� ��� � �������

���������+��� ����� $�� C�����/��� � ��� �� �� ������ �� ���� �������C� �� ��� �� � ����� �� ��� 9�������C�� �� �� �� ���7 ����� � ��� �� �� ���������� �=��� �� �� �=���� ������������ � �� �������� � �� �� �� �� �� � �� �� ��� ����L �� ���� ��� � � �� � �� ��� ��� ������ &����� C�����/��� "�� ����� ��� �� ����� �� �7 ����� � ����� �� ����� R������>R� �� =��/���3��� ��� � ����

$�� C�����/��� � ��� �� ��%�� �� �����"��

/ M��� C�����/���# /Y�����W����� ��8 �4� E������ '>

� $�� �� �� ���� �����%�� �� ����� � �� ����� �� �� � �� ��� ���

� $�� ������ �� ���� �� � � ��������� � �� � @� � $�� � � ��� ���� ���� � � ���� � � �� "�� � � � � �� " �� �� ��������C��� ������ $�� � � ������� "��� � �=���� ��20 ��� ��� ����� ��� �� � � ���� �

� �� � � � ��� � "�� �� C�����/��� � ��� �� ������ �� ����� ��� �� ������ C�����/��� � � ;��3=� �� � � � �������� �� " �� � �� ���� � ����� � �� �� ������ �� ���� ��� � � � ��� �� � � � �C,=�

���������� ����� $� � ���� �� ����� �� �� F�� �=������ � �� � �=��� �� ���������G� ���� �� 3���/��� � ��� � � �� ���� ��� ��� ��� �������� �� ������ $�� 3���/��� � ��� ���� ��������� %��� �� �� �� �� ��� ���� � ��� �����

$�� 3���/��� � ��� �� ��%�� �� �����"��

���� 3���/���# /Y�����W����� �� '>

$�� �� �� ���� �����%�� �� ����� � �� ����� �� �� � � ������

����� ��� ������ �� 3���/��� � ���� �� ��� ���� ���������-� � ���� F ���� �� 3���/���G�

Page 389: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �!#

��������� 5�����9�� �� � � � �� � �� � ����� ���� ��� ��� �� ��������� � ������ $�� � � �� ������ � � ��������� � ���� ��� "���� �� �� ���� � ���� � � � � �������

E� � � ���� �� ��������� � ���� � �� 3���/��� � ���� � � � � �� ��� /���M��W������ $�� /���M��W����� ��� ����%�� �� �����"��

�-���� ������ ����� #/ �=�� E��"����M��'# ���� E��8 ��� ��8

�4� E������ '>

���� #/ �=�� E��������M��'# ���� E��8 / 01�

����8 �4� E �� '>

���� #/ �=�� E��������M��'# ���� E��8 ����

�����-���,���8 ���� �����-��������8 ������

����� � '>

�4� E #/ �=�� E����������M��'# ���� E��8

/ M��� ����� '>

/ M��� #/ �=�� E�����������M��'# ���� E��8 �4�

E� �8 �4� E ��� '>

�4� E #/ �=�� E���� ���M��'# ���� E��8 �4�

E� �8 / 01� ����8 �4� EE��� '>

/ M��� #/ �=�� E����-0��������'# ���� E�� '>

�4� E #/ �=�� E���M�����M��'# ���� E��8 �4�

E������ '>

� /���M��W�����8 E/���M��>

+��� � ��� ���� �� � �� � �� ���� �� ��� ��� � ��� �� ���� ���� � $�� �� �� ���� �� ������ �� ��� � �� �� �� �� ���� �� �� 3���/��� � ����

�� � ��������� � ��� ���� �� /Y�����W����� �� �� �� �� � ��"���� � "�� ������� �� ��������� �� �� �� �� �� ���� � ������� ��� ����� 6� �=������ �� �� �� ���� �� ���� � ���� �� ��#�� � � � � ������ �� /Y�����W������

����� ��� �� �-� � ����� ��� ��� �� ��������� � ����� � � ������ �� "�� �� / �=�� ����%� � $�� � ���� ������� � �� ������������� � � ���� �� ����� �� "�� �� / �=�� ����%� �

$�� ��������� � ���� � � ��%�� � ����%4 �� ���� ���� � �������"�� � ��������

Page 390: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"$ � �� ���� �� 3�� ���� �����������.

��� !���/���$ ������� � �� ��������� �� �� ������� � ��"����M��� ����

$�� ��"����M�� � ��� �� ������ "�� ������ F���=�������G����� � � � $�� � � �� ����� ��� ���� �� �=������ � �� ������� �� � � �� � � � �� � ����� ������ �� ������ � ����"����M�� � ����

���� #/ �=�� E��"����M��'# ���� E��8 ��� ��8 �4�

E������ '

� $�� �� �� ���� ������� �� ��� �� ����� � � � $�� �� ��� ���� �� ��� �� �� �� �����"�� ��� �� F�� ��%�� � �� ��%4G�

�$�-� ,�@, �?,�?, � ����� ��� F/�>G ����� �=� ������ ������

�$�-� ,�@, 8�$" >������� � � F���� ���������� � ���� � � G�

�$�-� ,�@, ��/& ���������� � � � � �� �=������ � ���� ����� ����� � ����

�$�-� ,�@, >�-� $�= ���� � � � $��� �� ��� ��� � ������� � � ���� �7 ��� 6� � �� � ���� ������� ���� ����������� #0� ����� ��� �� >��� 8�������

�$�-� ,�@, D?�, 9������ � � ����� ����� ����� � �����������

�$�-� ,�@, 5$)!�!" � "� �� ������� ��� ��� � ��� � ���� ����

�$�-� ,�@, �))�) � � � ������� ��� ��� � �� �� ���� � � �������� $��� �� ��� ��� ��� �� �� �� ��� �������� � ��������M�� � ���� 6� �� � ��� ���� � ����������M�� � ���� ��� �� �����"�� ����� &���+���1 .��+� �� � �������

�$�-� ,�@, /,$,?/ 8� �� ��� �� ���� �� � F� R�-�������R �������G� $��� �� ��� ��� ��� �� �� �� ��� �������� � ��������M�� � ���� 6� �� � ��� ���� � ����������M�� � ���� ��� �� �����"�� /��� &���+���1.��� �� � �������

�$�-� ,�@, 8�2?" � � � �� �� ����� ��� ��� �

� $�� ������ �� ���� ����� �� � � �� �� ��� ������� ���� �� �� ���� � +��� � � � �� �� �� � �� � ��� ����

Page 391: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �"�

����� !���/���$ ������� $�� ��������M�� � ��� �� ������ "��� � � ��� � � �� �� ��� � � ��������

���� #/ �=�� E��������M��'# ���� E��8 / 01� ����8

�4� E �� '

� $�� ���� �� ���� ������� �� ������ �� � �� ��� � � �

C �� ���� � �� �� � � "�� ������ � �� �����%�� �@�� � ��� �� ������ � =��/���3��� ����

C �� ���� < �� �� � � �� ��� � �� ��� � � L � �� � ���� ���� � �

� $�� �� �� ���� ����� �� �= �� �� � � ��������

�� � ��������M�� � ��� �� ��� �����%��� � � �������� � � ��� �� ��"����M�� � ���� "�� �� /���= �=V� =CC�C ��� 6� �� ���� ���� � �� ��"����M�� � ���� ��� �� � ���� � � ������,��� &���+���1 .��� ���

����� !���/���$ ������� $�� ��������M�� � ��� �� ������"�� ����� ��� � ��� �� ���� ��� ���� F�7 ����� � �� R�-�������R �������� � �������� �����G�

���� #/ �=�� E��������M��'# ���� E��8 ����

�����-���,���8 ���� �����-��������8 ������

����� � '

� $�� ����� � �� ���� �� �� ��� �� ������ �� &-) ��� ���� ��� ���� �� ����� �� �� "�� �� ��� $��� ��� ��� ��� ���� �� ��������� � �����

� $�� �-���,��� �� ���� ������� ��" ��� ���� �� �� ��� ������� �������� �� �� ����� �� �� �� ��� ����� �

� $�� �-�������� �� ���� ������� ��" ��� ���� �� �� ��� ������� �������� �� �� ��� ��� ����� �� �� ����� �� �� �� �������� �

�� �� ��������M�� � ��� �� �����%��� �� � ��� ���� ���� � �� ��"����M�� � ��� � �� �� � R�-��� ����.S��8

����.S��8 �� �.S(%�R� "�� �� /���= �=V� 3���,3 ��� 6� �� ���� ���� � �� ��"����M�� � ���� ��� ,��� &���+���1 .��+� �� � ���� 531�

Page 392: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � �� ���� �� 3�� ���� �����������.

��� ���� !���/���$ ������� $�� ����������M�� � ��� �������� "�� �� �� �� �=�� �� �� ����� ������� � ��� F"������ ���� ��� �� ������ �� 4�����-G � ���� � ��� �� �� � �� �� �� � � ��� ����������� ��� �� � ����

�4� E #/ �=�� E����������M��'# ���� E��8 / M���

����� '

� $�� ����� �� ���� ������� �� �� ���� � ������� "�� ������ �� ����� ��� ��� F�� ����� ��� ��� ��� ������� � ����� ��� ������� � �� �� �� G�

C �� ����� �� �C,=� �� ������� ���� �� � �� �� ��� ��� �

C �� ����� �� ;��3=� �� ������� ���� �� � �� 4�����-� �������� ���� ����� ��� �����

�� �� ����������M�� � ��� �� � ������� �� ���� � �=��� � �� ����� ������� � ��� � �� ��� � � � F ��� �� ��� ����������M�� � ��"����M�� � ���G� 6� �� � ��� ���� � ����������M�� � ���� ��� ����� &���+���1 .��� �� � ���� 50/�6� �� � ��� ���� � �� ��"����M�� � ���� ���,��� &���+���1.��� �� � ���� 531�

������� !���/���$ ������� $�� �����������M�� � ��� �� ������"�� �� �� �� �=�� �� �� ����� 2������� � ������� � ���� $���� �� � ��� �� � ���7 � � � �

/ M��� #/ �=�� E�����������M��'# ���� E��8 �4� E� �8

�4� E ��� '

� $�� � � �� ���� �����%�� �� ��� �� �� %�� � "���� � � ����������

� $�� ��� �� ���� �����%�� �� %�� ������ ���� � ��? R2�R �� " �� � R�R �� ������

$�� � � �� ��� �� ���� � � � ��������� "�� �� & ��� � �� ��� �����

�$� �� � ���� ������ �� ��� ������ � ��������� ��� �� ������ 1 �� ��� ��������� ���������� ���� � ������� ��

�$� �� � ���� ������ �� ��� !������ ��� �� ��� ���������� ��� ������������� ���� � ������ ������ �� ���� +21�

Page 393: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �"�

�� �� � � �� ���� �� 1,�� F� "���� ���� �� �� ���� � � � ���������� "�� ����G� ����� �� �������� �� ��� ���� �� � ������( ���7 � � � �� �� � �� ��� � � � ���� ����� ��� �� �� ��������

�� �� �����������M�� � ��� �� � ������� �� ���� � �=��� � �� ����� 2������ � ��� � ������� � ��� � �� ��� � � � F ��� �� ��� �� ��������M�� � ��� � ��"����M�� � ���G�

!��� 0��$ !���/���$ ������� $�� ���M�����M�� � ��� �� ������"�� ����� ���� ����� �� ����� ������ � ����

�4� E #/ �=�� E���M�����M��'# ���� E��8 �4�

E������ '

� $�� ������ �� ���� ����� �� �= �� ��� �� �� �� ���� ������� � �� ����� ������ � ����

� � � �� ���M�����M�� � ��� � � ���� � 1,��

���� � � � �� ������ � ����� ����� �=� ������

� �� �� ����� ������ � ��� � � ����� �� ���������M��� ��� � � 1,���

� �� � ����� �=� ����� �� � ��� � �� �� ���� �� �� ����� ������� ��� � � �� F ���� ���G �=� ������ � �� ���������M��� ��� � � � �� ��� ����� �=� ������

$��� � ��� �� �� ��� � �=������� ���� �� ������ ��� �� �� ����� ��� � �� ���� �� � � � ��� � � ������

�� �� ���M�����M�� � ��� �� � ������� �� ���� � �=��� � �� ����� ������ � ��� � �� ��� � � � F ��� �� ��� ����������M�� � ��� � ��"����M�� � ���G�

.��� �������� !���/���$ ������� $�� ����-0�������� ���������� ��� �� ������ � ����" �� �� � ��� �� ���� ���� $��� � ����� ������ ���� � ���� ����� ����� �� �=�� ��� � ��� ��� ��� ��� �� � ��� �� ���� �� ������ 6� ���� ��� ���� F����� �� �� ���� ���� �����G� �� ����-0�������� � ��� �� ������ ��� � ��" �������

/ M��� #/ �=�� E����-0��������'# ���� E�� '

$� ��� �� ���� ���� �� � ��� � � � �C,=� $� ��� ��� ���� ���� �� � ��� � � � ;��3=�

Page 394: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"� � �� ���� �� 3�� ���� �����������.

�� �� ����-0�������� � ��� �� � ������� ���� ���� ��� ���� ����

������ !���/���$ ������� $�� ����� ��� ���� �� �� ��������� �-� ���� ���� ��� ������� �������� $�� ����� ���� �� �� �� � � ��� �� � ���� ��� ���� � � � ��� "�� � ��� ������� "�� R01�=C;��= R� >�� �� �� � � � ��� ���� ��������� ���� �� � ��� ���� F�� �=������ �� ����� ����� � ��� ���� �� ���� �� 01�=C;��= �C01� � ���G� � �=������� �� � ���� � �� ��������� ��� � ���� $�� � � � ���� �� � ���%�� � ����� � ���������� ��� � ���� ��� � �� �� �� ��������� � ���� ���� ����� ��� � �������

( ���� � � � ���� ��� � � � ��� ���� F�� �� ��� �� ��01�=C;��= �C01� � ���G� � ���� � ���� �� �� ��� � �7 �� ���� ���� �� "���� 6� �=������ �� 01�=C;��= C=���01= � ��� �� ���� �7 �� �� �� � �� �=�� �� �� � ����� � ���� �� � ���������� 01�=C;��= C=���01= �� ������ � �� ����������M���

� ������ � �� � ���%�� � ����� � ����� �� � � � ���������������� � �� � ��� � ���� �� ������ � ����� �=� ����� �� �� �� ��

01�=C;��=9���� 1 �#��� ����'

� �� ���� ��� � ���� �� �� � ��� � � � �� �� �� ���� ���� ��� � � �� �� �� FE� �� ���� ��� � � � ��� �� ������� �� � �=� ����� � �� ����� ����� � ���� � �� ����"�� � �� ��=� ����� � �� �� �� � �� � ���� ���� � � �� ����� � �� ��� �� ������ � �� � ��� ���� � �����G�

$�� ���� ���M�� � ��� �� ������ "�� ����� ���� � � ��� � ��� �� �� � �=������� ������ �� �� �������� �-��

�4� E #/ �=�� E���� ���M��'# ���� E��8 �4� E� �8

/ 01� ����8 �4� EE��� '

� $�� � � �� ���� �����%�� �� ��� �� �� � ��� "��� ��R01�=C;��= R � �%=�

� $�� ���� �� ���� ������� �� ��� �� � � ��� ������� ��� � � ��� � � ������� ���� �� C� ��

� $�� ��� �� ���� ���� � � � �� �� � �� ���� �� �� �� ����� � �� ������� +��� � �� �� � ����� ��� F/�>G ����� �=� ������� ������� � �� � � ���

Page 395: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �"'

$�� ���� ���M�� � ��� � � � � � �� � ����� ��������=� �� � �� � �� � �� � ��� � � � � �� 1,�� ���� �

)�� ���%�� � ���� � � � ��� ���� � ��� �� ���M�����M��� ���� 6� �� � ��� ���� � �� ���M�����M�� � ���� ���&��� 2��1 &���+���1 .��� �� � ���� 505� ( ���� ���� ���� �� ���������?

� $�� � ��� ��� �� ������� E� �� �� � ����� � ���� � ���������� �� 7 ����� ��� ��� "���� ��� ��� � �� �� � �� �=������� � ��� ��� � �� ���� ���M�� � ����

� � ����� � � ��� � � ������ �� ���� �� � ���� ���� �����M�����M�� � ��� � "���� � ����� � � ��� � � �������� � ����� ���������� ��� � ��� $��� �� ��� �� ��� �7 � ����� �� �������� ����������

� $�� ��� �� � � ��� �� ������� ����� � ����� � ����� ���� ������� � � ��� � � �������

�� �� ���� ���M�� � ��� �� �����%�� �� � � �� �� �� ��" � ���� �� � � ��� � �� � ��� � � �� � �� ��������� � ��� � "���� ����� �� �� � � ��� �� ��� �� ��"����M��� ����

0���� *��� 8��� .�������$�� ����� ���� ���� ����� �� ���� ��������� � �� ���������� ����� �� ���� � � �� �� ��� ��� �� ������ � ����� 4��� ������� � �� �� F� "���� ���� �� � � �� � �� � �� ��"����M��

� ��� "�� � /���= �=V� G=�� ��G� � �� � � ���� � �N�� ���� � � � �� ���� %��� .� ������ �� ���� ����� �� ����� �� �������� ����� �� �� � ������

������� ��� 1��� *������� ������ ���� $�� ���� ����� �� �������� ��� �� /���G��� � ���� �� "�� �������� ������ �� ���� ��� ����� �� ��%�� �� �� ��� � �� ���� ��� $�� /������1 � � ����� �� ��� � 7 � � � ����� ��� ���� 6� �� � ��� ���� � ��/������1 � � ���� ��� � ����%4�

��������� � 1��� ���� $� � ���� �� ������� � ���� ����� �� ��/���G��� � ����

$�� �����"�� %� � ��� � ��� �= ���� ���� � � �

�$� �� � ���� ������ �� ��� ��� ��� �� ���� ���

Page 396: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"� � �� ���� �� 3�� ���� �����������.

$�� /���G��� � ��� � ����� �� �������� � ���� ����� � � ������ �� � ���� ����� ����� � �� �����%�� ����� $�� �� �� � � ������ ��� � ��� �� ��� ��� � �� � �� �� � �� �����%�� ��������� � �����

�4� E / �=�� /���G���#

/Y�����W����� ��8

�4� E�����8

�4� E�������8

/ M��� #/ �=�� E2�����4�'# ���� E��8 ��� � '8

/ M��� #/ �=�� E2����������'# ���� E��8 ��� '8

��� 2���48

���� E��

'

� $�� �� �� ���� �����%�� �� ����� � �� ����� �� ��� $��� ������ �� � �� �� 3���/����

� $�� ����� �� ���� �����%�� �� ���� ����� $�� ���� �� ��� ����� ����� ���"� �� � ��� ���� ������� � � �������� �� ������� ��� �� ������� 6� �=������ � ��� � � � ��� � � �������� �� R������ ����� ����� �� ����R�

Page 397: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �"!

� $�� ������� �� ���� ������� "���� ����� �� �� ���� � ���������� ��� �� ������ �� RR � 1,��� �� �� � ���� �� ���������� $� �� ��������� � � �� �� �� ����� �� �� ����� ���� �� �� �� �����"����� ���

B���B >������� �� � ��� ��� F������ ���� ����G �� ������� ��7 ���

B���� �� ��B >������� �� ������� ���� ���� �� �� � ���

B�������B >������� �=������ �� �� � ��� ����

B�����B >������� � ��� �� ����� �����

� $�� 2�����4� �� ���� ��%�� � ��������� � ��� � "���� ����� ��� � � � ������� $�� ��� ��� � � � ��� � ������ *����� ������� � ����� � ������� �� ��� �� ��� ������� �� ����� ������ � ���� ���� � �"��� FB��BG ��� ��� �� �� � �� �� �� ���� ����$�� 2�����4� � ��� � ����� ��� �� �� � �� �C,=�

� $�� 2���������� �� ���� ��%�� � ��������� � ��� � "����� �� � ��� ���� �� ������� $�� � �� � ������ � 2����������������� � ��� ��� ��� � ������ � 2�����4� �� ���� � �� ��� ������ � 2����������� $�� �������� � �� � ��� �� � �?

.! !�)�$- �� ��� �= �����

.! 2�-8 2�������� ���� ����0 $��� �� �� ��� �� ��� "� ��� ����� � ���� �� � �=����� � � �� �� ����� ��������

.! �,$- ���� � ���� ����@ $��� �� �� ��� �� ������ ��7 ����� ���� �����

.! ?!8�) )�� ���� �= ����� $��� �� ��� �� ���� � ��� ������ $�� �� �� �� ��� �= �� R� ��2��������EE� ��(���R�"�� � � ��2�������� �� �� ���� � "���� �� ��� ��� � �� � ���(��� �� �� ��� �= ��������� � �� ���� ����� � �� �7 ����� ��� A$�* ����?

<$ >)�.:B� ��2��������B4� ��(��� <F$4

$�� 2���������� � ��� �� �� ����� �� ������ 1,�� �� ��2���������� �� ���� �

� $�� 2���4 �� ���� ������� �� "���� � ��� ��� �� � "���� ������ ��� ���� �� �� �����

� $�� �� �� ���� �� � � �� � � �� �� ������ ��� �� � �� �� % �� � �� ������ � �� ��������� � �����

Page 398: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�"" � �� ���� �� 3�� ���� �����������.

$�� /���G��� � ��� � � 1,�� �� � ������ �� � � � � ����� � � � � ������� �� � ������ �� � ��� � �� ���� ���� � ��� ����� �� ���� �� $� ���� �� �������� ���� � ���� �� � �����������

�������� ������$��� � ������ ���� ���� ������� ��� �� ����� � ��� ���������

������ -���� ����� �������� ���� � � �� �� ��� ��� �����F� � �� �� & ���� � ��� � ��� � ����� ��G � �� �� �� ��F:28. � ��� � ����� ��G� $��� ���� � �� � � �� � �� ���� ��� ����� F�� ��� �� ���G �� ����� � ������ ��� ������ ���� �7 � �� � ����� �� ���� �� �� ���� � �� ����� � �� �� ������� �� �� � �� �� ��� ����� ����� ������ ���� �� �� ��� ����� �� ��@� � ��C�� �� ���� � ������� �� � �� 7 ����� %� ������ �� �� ��7 � �� ��C�� 6� �=������ ����� ����� �=����� �� �� � ���"� � ��������� � ������ � ��� �� � �� ������ �� �� ��C�� ����� �������� ������������ � � �� �� ��� ��� ����� ��� "�� � �� ����� � ������ � �7 �� ��� �� �� ��� �����

����� ������� � ���� ���� � ���� �� �� ��� �� ���� � ��������� � ����� ��� �� ������ $�� �� � ���� � ����� �� �������� ���� ��� ��� ������ �� ���� � �� �������� � � � ���� �� � � ������� �� 6� ��� ����������� 2�. �� ���� � � � �� ��������� �� ����� � ��������

)�� ��� ���� ����"�� �� ����� �� �� �� �������� ��� 2����� � � ������� E� ��������� � � �� �������� ��� "��� $��� ��� ��� �� �7 � ��� �� ����"� �����������

5��� ����������@ �� ��� ����� �������� ���� �� �����"�� � ��� ��� ��� ����%��� ����� � ���������

� �0G/=/ *����� �� ����%��� �� ����%���� ���� ����� �� �� ������� ��� � ��� ��� �� �� �������� �� ��� $� ��� ��� N3D3�� �� ����� �� ��� $���� :�� � ���� 512�

�����F���������F& *����� �� �� &D&OO ]������� %��� �� ��"�� �=� �� ������ �� ���������

� � *����� �� �� ����� ��� ��� � ��� �� ���� ��������

������F������� *����� �� ����� ��������� ������ �����

Page 399: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� /���� ���� 8���� � ��� �� ��+����� ���� � �"#

$�� �������� %��� ������� � � ����� � ��������

?!�@ � )��, ����� ��� �� �������� ���� ������ �� � ��� ����#�� ��� � � F��� ����%��� ��� ����%�� FA-G� � ��� ����%F��,GG "���� �=�� � �� � ���� ���� ���� � ��� ��� ���

� ������ 5 ���� )�� ��� ���� ����"�� �� �������� ���������� �� � >** F ����%���G "���� �=�� � �� � ���� ���� ����� ��� ��� ���

� ���� ��� � � �� ���� � ������� $�� %�� ����%��� � �����%N3D3 �� ��� � �� � ���� ��� � � � &�66 �� ���

��� �/ @ )�� ��� �( ,� �� �������� ���� ������ �� "������� ��� � ��� F��� ����%�-��� �� ��� ���%�-���G� "�����=�� �� � ���� ���� ���� � ��� ��� ���

1��� �� ��� �� ��� ����� $�� ���� �� �� ������ �=����� �� ��" � �� �������� �� � ��%�� � ����B����/���B�B� ���B� �" ���%�� $�� �=����� � �� ����� � ��� ��" � ���� �� �=� ������� ������ ����� �� �� � ���� ������

$�� �����"�� ��� ��� �� � � �� ��� � �� �� �� �� �� �������������� �� �� �� ������� �� �� � � "� � � ��������������� �� ��� � �� � �� ���G �� ����� ��� ��� �� ������ � � �� ��

�@

������ �0M���G ���%0M/T9C03�T9,10V

�� � ����B����/���B�B� ���B� �" ���%� 5�

���%0M/T9C03�T9,10VB� �" ��� 5����%0M/T9C03�T9,10V

50������� 5� ����

���%0M/T9C03�T9,10VB� �" ���

*������ -��@ A !����# �:8

������ ��T9�0MC�CDT9���G ���%�=�T9���G�T9,10V

�� � ����B����/���B�B� ���B� �" ���%� 5�

���%�=�T9���G�T9,10VB� �" ��� 5����%�=�T9���G�T9,10V

50������� 5� ����

���%�=�T9���G�T9,10VB� �" ���

�$� � ��� �� �� ���� ����� ��� ��� ����� ������ �� ������ ��� �� ��� �������������� ��������

Page 400: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#$ � �� ���� �� 3�� ���� �����������.

1�/-@

������ 3G�0MT9���G ���%G�T9C03�T9,10V

�� � ����B����/���B�B� ���B� �" ���%� 5�

���%G�T9C03�T9,10VB� �" ��� 5����%G�T9C03�T9,10V

50������� 5� ���� 5�����

���%G�T9C03�T9,10VB� �" ���

� �@

������ ��T9�0MC�CDT9���G ���%3�0T9/0�3T9,10V

�� � ����B����/���B�B� ���B� �" ���%� 5�

���%3�0T9/0�3T9,10VB� �" ��� 5����%3�0T9/0�3T9,10V

50������� 5� ����

���%3�0T9/0�3T9,10VB� �" ���

����

������ ��T9�0MC�CDT9���G ���%0M/T901�=�T9�01,V

��� � ����B����/���B�B� ���B� �" ���%� 5�

���%0M/T901�=�T9�01,VB� �" ���

5����%0M/T901�=�T9�01,V 50������� 5� ����

���%0M/T901�=�T9�01,VB� �" ���

��� %� @

������ �D��T9�0MC�CDT9���G ���%����=T9���T9�3V

��� � ����B����/���B�B� ���B� �" ���%� 5�

���%����=T9���T9�3VB� �" ��� 5����%����=T9���T9�3V

50������� 5� ���� 5� ���

���%����=T9���T9�3VB� �" ���

�������"� 2����,� ,��� �������"� ����� !A!BB >���!?

�� ���%0M/T901�=�T91�

�� 5�H %%B� ����B����/���B�B� ���B� �" ���%� 50%%B�������

����%���

� �" ���

�������

������ ��T9�0MC�CDT9���G ���%3,1T93��C�T93���C03

�� � ����B����/���B�B� ���B� �" ���%� 5�

���%3,1T93��C�T93���C03B� �" ���

5����%3,1T93��C�T93���C03 50������� 5� ����

���%3,1T93��C�T93���C03B� �" ���

Page 401: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���������� � �#�

*�& ����������

$��� ����� � ���� ��" �� ������������� ������� � ������ �������� ������ ����� ���� � ��� � �� ����� ��� ����� �������������� ����� ���� ���� ��" �� ����� �� �� �� �� �=���� �� ��� ���� �������� ���� ��� �� ="����������� ������� �� ��" ������� �� ��� �� �������� ���� ��� ����/����

Page 402: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�# � �� ���� �� 3�� ���� �����������.

��������

��+�����%.���

�����8���8��� ����

&,'��

.������,'��

9�%�,'��

�CC�D#���-��.�-��� �8

�-��E�

�-��E�

�-��� �

�����.%%%8���%'

��������

�4�"��

�G�C���=CE�

������

�� ���"�$

������

��/��=V

�����8�>���/��=VE@

��

�� ���"�@

������

��,M�=

��

��������8�>���/��=V

��/��=VE(I

C=;#�-��� �'

�D�=1�/=E

��

��

Page 403: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� ���������� � �#�

�������

:� ������+�����%.���

�����8���8��� ����

&,'��

.������,'��

9�%�,'��

3�C,��# � ���(<<����������(8%%%8

��������-��( � ���(>%%%8

1�

1�

� ���1<<����������18�������'

�-��1 � ���1>�

,10�1# � ���(<<����������(8%%%8

�������-��( � ���(>%%%8

1�

1�

� ���1<<����������18�������'

�-��1 � ���1>�

�C��# � ���(<<����������(8%%%8

�-��C#E����'#�-��( � ���(8%%%8

1�

1�

� ���1<<����������18

�-��18 � ���1'>

C=�,C1<<����������C'

Page 404: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#� � �� ���� �� 3�� ���� �����������.

��������

� ���3)(��� �������� ��5���� �

��������

�����

� ���������

�����

� ����������

������

������ ��

����� �����

����������

����������

��������

��� ��������"�

���"�

-�$A

����������

������� �����

F����������G

F������� �����G

����(,

��

>E*>*�.9�9E-�$A

������������

������� �������

(��� ��

���()�(-�9&(�*�9�(

*>*�.9�9E-�$A

������������

���������� ����

A-�),

���A-9�(&)��,

(A*�.-�$A

������������

���������� ����

�9�,

���(4���-()��,

*>*�.9�9E-�$A

������������

���������� ����

��,

����.�

9�(&)��,

*�.-�$A

�����������

���������� ���

�(6/D$ �:2

���>+&�*-A�)��,

*>*�.9�9E-�$A

������������

���������� ����

*� =

����.�

��$+**��),

*>*�.9�9E-�$A

������������

���������� ����

Page 405: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

����� ��� � ��� -���������

��> �((�4� .���9E .9+�8 &�$+��$+&��-*+, &��$9�* >&�*�� >+.)4 +<)�$���+99�9 +,-(+< 6*��$ 6�9 6�9+�4�6)�&$��� 4�9.�4+ A�(A A�(A$�. A6*��$�6 ��-*�+( ��+<)�$ ��$�+4 ��$-�(*+((+< *+(($A�� *+,�&�* *�($ *�&�*�+�.+9 ��>>+6 ��>)*+ ���+ �+,$��$ �9 -�9�� -��+9 -9�&-9�> 9��4+ 9�$����* 9+�> 9+$)9�9$�.*+ (�;+ (+9�+( (+$ ($�$(+<($�- ($9��4 ()� $�.*+ $�.*+9+6$9E )�+;�* )(+ ,�9 Y--�*E

$ ������� '������������

�� ���� �����

$���� ��/ ���� �� � � �� � ��� ��������� � ������+��� �� � � �� ���� "�� �� ��� ��� � �� ���� �� ���

��� �� ���� ���� � �� �����"�� �������

��� �� ���� ,%���9� ���

����� ����� � � �� �� �� � �� ����� ���� ��� � $�� �� �� ���� ���� �� � �� ��� �� �� �� ����� �� ��� ���� �� ���� ������������ ��� � ��� ����� �� ��� �� ���� �� � ������ ��� �� ������ �� � ���� ����� �� ���� ���� � �� �� �� ���� ���� ��"�

51�

Page 406: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#� � 3������� 3� )����� � &�������� ���� �� � ����� ����

� ��������� ������ �� � �� ��� �������? � �� ��� � ��� � �� �� � �� �� ����� $�� �� �� �� ��� � � ����� � � ��" �� �� ��� �����

C����� $�� �� �� �� " �� � �� & ��� ��� �� �� ��������� �� ��"������ ��� ���� � �� �� � �� � � � ������ � ������� %�� �D�� �=�� ��� �� �� ����� ��� ���� �� �� �� �� ���� �� ������ ������������� ���� � �� �� ��@� ����� �� �����������

������� ��� �� �� ����� ���������� � ������� �� � �� �������� � �� "���� �� " �� � �� ����� ��� ���� $�� ��� � � �� �� �� �� � ������ �� ������ �� � � � ������ �� �� � ��� �� �� �� �� �������

-��� �����"��� $�� �� �� ���� �� �� �� �� ����� �� �� �� ������� �� ����� ���� ���� �� � �� �� ��� ����� $�� ���� ��� ������ �� ��� "�� ��@� � �� �� ������ )� ����� ����� �� � ������ "��� � ������� �� �� ���� F4)�G �� � ���������� �� ����� $�� 4)� ���� � ��� � �� �� ����� ��� ���������� "�� "� ��� "�� ���� � �� ���� ����� $�� ���������� �� ���� �� � ������ �� ���� � �������� � ������ �� �� � ������ "�� � �� "� � ����� ��� �� ��� ��� �� �� ���� � � ���� ����

����� ���������� � ����� � ��� �� �� �� ����� "���� �� � ��� �� � ���� ���� ��� ��� � �� ��� +��� �� � �� ��� �� �� ��������� 6� �� � ��� ���� � �� /����� �������� ��� � �� ������������� ������ � �� ���

������ 5�����$�� �� �� � ���� � ����� � � ������� �� %�� ����� � � ��?

/� �%������ $�� ���� �� � � � �� ��� � ���� ��������� �� ���� ���� $�� � � � ��= ���� �� ���� ����? ������� ����� ����=� ������� ������ �=� ������� ��� �� ���� � �� � � � ������N�������� � ������� �� �� �"� � N�������� � ������� $�� �� �� ���� ����� ��� �� ����� ���� �� � � �� ���� � �� �� � ��� �� ����� ��"�� ���� �� �� 6� �=������ �� ������

� 6 ) ���� �\\� <. �%($B ��� �

�� % � ����C�� �� �� ����� ���� �� � "���� ����� �� .��������� �� � ������ �� � ������� ��� �������� F�� �=������

Page 407: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3�� )����� � /�� ��; ���� � �#!

"�� � ���� �� �G� �� ����� ���� �� �� ������ ���� � �� ���������� �� "���� �� ������ ��� ���� �� �� ������ "�� ����� ���� �� �� �������� �� �� �=� ����� ���� �� "�� �� �������� (��� �� ��� ���� ������� N�������� ��� ��� �� �=� ��������� �� ����� �� � �� � � � ������ N�������� ���� �� �

�� ������ �� �� ���� � �����%����� ����� �� �� �� ���� �� ��� � ���� �� � ������� "�� � ������ � ��� �� ���� ����� ������ �� �� �� �� ���� ���� ���� F�� .����� ���� �� G����� F�� ������ ��� ���� �� G� ��� F�� � �� � � � ������N�������� ���� �� G� � ���4 F�� �� �"� � N�������� ����� �� G�

�� $������ � .��� �� $���� � � ������� ������ ����� � �����(��� �=������ � �? ���� �� ������� F��G� ������� ����������� F������G� %��� ������� �� ���������� F���G� ���� ��� �� ��� F������G� ������ � � ��� F �G� �=����� �=� ������F�"���G� �� %��� ���� ����� F������G�

5� $������ � /��% �� .��� �� $���� � ���� � � ����� ��� �� �� � �� �� �� � �� ����� �� �� � ���� � �� � ���� �� � �� � ��� ������ ���� � ���� ��� �� �=������� ������ �� �� �� � +=������ �� � �� � ���� � � �� �� �� � ������ ����������� ����� ������%� � �� � ����� �� ��� � � � �����

2� 8��� /������ ��� ���� �� .��� �� $���� � � ���� �� ������ ��� � ����� � ����� �� "� ��� � ���������� ��#���� � ���� ���������� � ���� ��� "� � � ��� � � ��� � �� �� �=� ������ ��7 ����� � ��� � �� ��� � ����� +=������ �� � �� � ����� � ��� �� ������� F��G� ��� �� � ��� �� F������G� ��� ����F4�G� �� ���� ��� ����� F�����4G�

�� "������ /��% �� .��� �� 6 ���� � ��� � � � � � � ����"�� ��� � ������ ������ $�� ��� ��� ��� �� ������ �� �� ��� � ��� � �� ������ $��� � � ��� �� � ����� �� � ������ ���� �����%� � �������� � �� �� ���� ���� (��� �=������ � �?�� ��� �������� �� �� ���� ��������� ���� ���� ����� �� ���D�� �� �=����� �������

5�� $ ����$�� N�" �� �� �� ��� � ���� �� �� � �� ����� �� ��� � ��������� "�� � ��� �� ���� � ������� �� ���� � ���� � ���� " �� ������ �� ������ � �� ��� � �� 6� �=������ ��� ��� �� �� �"���

Page 408: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�#" � 3������� 3� )����� � &�������� ���� �� � ����� ����

� ��� � � ������ � �� �� ��� A�"��� � �� � �=����� �� � � � � ��� �� ��"� �� �7 � ��� �� �� �� �� �"��� ����� �� �=� �� �������� � � � ��� A�"���B�����2A � ������ �� 6 ���� � �� �� ������� ������� �� �-�� ���� �=����� �� �� ��� ��� ��

$� �� �� �=������ �� ����� � ��� �� ��� ��@� ���� ��� ���� ��� �� �� � ������� ������ � �� ����� ��� � � � � ����� �� ���� A��B���������� A� $��� �� � � ������ ��� � ������� ���� � �� ���?

� 6��=������ F������ �� ��� � �G

� -� ���� ���� �� F�� ��%�� �� �%�� ������ � ����G

� 9��������� F� �� �� �� ����� � ������� �� ������� � �� �� �����G

����� ����"� �� �� �� � ���� ����� �� ������ ��������� � ����� � �� ��� � ��

��� �� ���� !������ � ���� �� 1� � +���

$�� �� �� �� ���� �� �� � ���� � � ��������� �� � ����� ��� ����� � � �� ��� �� ���� �� ������ ��� �� �� �� ��� � � ������ �� ���� ��� �� �� ��?

A���� ,�*�� � � � ,�*��

$�� ����� %���� �� �� � �� � �� � ������ "� ��� ������ ������ �� �� � � � �� �� ���� �������� ��� � � ��� � ��� �������%���� �� �� �� ���� �������� ��� ����� �� ���� �� � ��� �� �� �� �� � ��� ���� ��� �����%� ��� � � �� F�� �=������"���� � � � �� ���� ����� � ���� � ��"�G�

$�� ���� �� ������ � �: ��� � 5���� � ����� ��� �� ��� �� ��=�� � ����� ��#�� ��C� �� :3� /�0� 0:5 "� �� F�:0� 25�� 2�� ������ ��: ��������G� � :2��� � ����� ��� �� ���� �� �� �� � 5����� �� � ��=�� � ��#�� ��C� �� 2� �12� 1:3� �1� "� �� F52� 5�1� 350� 5:������ � 5� ��������G�

+�� � � � � �� � ���� "�� �� �" ����� �� �� ���� ����� ����� � �� �� �=����� �� �� � � �� 6 �� �� �� �� ����� �� ��� ��� � � �� � � ��� ������ � �� �=�� ��� ���� ��� �� � �������� ��" ��� ��� ��� � � �� ��� �� ��� �� �

Page 409: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �##

�� �� ����� � � � � ������ $�� � ��� � ���� � � ������ �� � � �� � ���� �� �� �� � ������ �� ����� ( � �� �� � �� ���� ��� � � ��� ���� �������� �� �� �� ���� ������� �

$�� �����"�� %� �� ���� ��� ���� �� �� :� � � �� � ��� ���������� � ������ ���� "�� �� ��� ��� � ��� ���� �� ������ $�� :��� �� �� ��� � �������� �� ��� �� � � � �� �� ������ ��� �� �������� ���� "��� �� ����

������ �%.

�1� �!��#/ �!��#�

����� ���=? �"��( ��� �"���

*���? 5

����� �� ����� ��

�330�1 ���"!� �!9 �!��# � �!9

����� ���=? � �(8 � ��8 %%% <. �"��(8 �"���8 %%%

*���? 5

$�� ������� ���� ���� � ��� � � ���� �� � ��������� ��#���?1�/=� ;,1��0�1� � ��M�=C=; � � ��� $�� ������� ���� � � �� ��=� ����� ��7 ��� �� �� ���� ���� �� �� ������� �����

1���' *�+���

M01�CD ��� � � �

����� ���=? ��*���? � �� � �

$�� M01�CD � � � �� ���� �� � �� � � ���� � �� � ����� ���� �� � ����� ��#��� � �� ��� �� �� ��� �� �� �� ������ �� �������� ��� ����� ��#��� F� ��� ��� C��M�=�G� � �� ���� �������� ��� �� ���� � � �� ��� ����� � �� �� �� � �� �� ��� �����

1���� ����� ��

MC=�Y

����� ���=? ����*���? /

Page 410: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$$ � 3������� 3� )����� � &�������� ���� �� � ����� ����

%� � ��������

���=1��= ���"! �!��#

����� ���=? � � \\ �"��

*���? 5

� �� �� ���� � � �� �� �� 1�/=� ���=1��=� ������ � ��C�/� ���� �� ���� � � ���� ��� � � ���� � 1�/=� � 3�C01�� �� �� �� � �� � 1�/=�

� �� �� ���� � � �� � 3�C01� � ���=1��= �� ������� � � 3�C01���� �� �� ���� � � ���� ��� � � ���� � 1�/=� � 3�C01�� ���� �� � �� � 3�C01��

� �� ���� �� � C�1�=� �� �� �� � �� � ��� �� � =V�3=Q �� 1�/=�� 3�C01���

� ���" �����

��/��=V �#! ��"

��/��=V ��"

����� ���=? �� ���"#��8� ' � �� 7 � E 0

*���? � � 5

$�� �� �� � %���� � � ��� � 01���3� 01�1=�� C��0�1��� � ;���� � � ��� �� �� �� 1�/=� ������- � ��������� � � 3,/

� � � �� ����� �������-� � �� ���� 5 ����� �� ���� �� � ��� � ;����� �� ��� � � �� � ;���� �� "����

� ������� ���� ���������

��1�C�� ���*!�!#

����� ���=? ��*���? �

$��� �� � �� �� � � � ��� � �� �� � �� ��� ���� ����� ������ ( �� � � � � ��� ������ �� �� ������ � ��� ������������ �� � �� �� �� ���

Page 411: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �$�

�'�� �����/���� � ����

�����1 �!��# �*�!� !��#

����� ���=? �"�� << �-��="��

*���? 5

$��� � � � ��� � �� �� � ����� ������� � �� ���= �"���� � �� ���� ��� � ����� � � �� ����� �� � � ���� � ��%����� �� � ���� �� ���� ����� ���� ��� � ����� � � �� ����� ������� � � ���� � � � �� ��� ���� �� � �������� � �� � ��� ���� ������ � ����� � ����"�� � F�����%����� � � �������� �=� �����G� � ��� ��� ���

.����

�=M,� �!��#/ �!��#� � � �

����� ���=? ��*���? � � �� �

$��� �� ���� �� ������ � � �� � �� ��� �� �� �� �� "��� ��� � � ������� ��� ���� � ���� �� ��� ���� � ������ �����

!����� � ���� $� !������'

=Q,��0�1 �!��#/ �!��#�

����� ���=? �"��( . �"���

*���? 5

$��� � � � ��� "� �� � ����� ������� � �� ���= �"���� � �� ���� � �� �� ���� � �� �� �7 ����� � � ����� ���7 ���� F� � �� ��� ��� "�� � �������G�

!��� ����� ��

=CC�C �!��#

����� ���=? ����� L ��L� ��� � � � ��*���? �

Page 412: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � 3������� 3� )����� � &�������� ���� �� � ����� ����

$��� �� ���� �� ����� ����� ������ $�� ���� �� ���� � ������=� ����� F�� ��� � ������� "�� �����%�� � �� ����� �����G� � ��=� ����� ��7 ��� F�� � � ��� "� � ���� �����%��G� $�� �� �� �� ���� ��� �� �� =CC�C � � � �� /=CC�C� � � ��� �������� "�� ���� � ��%�� �� ���� & ������� ��

!"������ �������

=V�3=Q �!��#/ �!��#� � � �

����� ���=? �"��(� �"���� � � �*���? / � �� �

+=� ����� ��7 ���� � � ��������� � �� �� �� � ��� � � �� ��� � ���� ��� � ���� � � ��� � � ���� ��� +@�������� � ���� �� ���� ����� � � �� �� �� � �=� ����� ��7 ���� � �=� ����� ��7 ������ �� �� ���� / F�� ��� � ���� ��7 ���G� "���� �� �� ������� �� ����� ������ 1,��� � � ���� ���=� F� �� �� �� ���� � � �� ��� ����G �� ���� � ����

5��������� %� ���

;���� ���*!�!#/ ���*!�!#� ��**#��� !��#

����� ���=? (%�� (%���� ;���#(�8�$'� ;���#������-'*���? � F� 5 "�� � �� ��G

� N�������� ��� �� �� � ��� �� ��*!�!#/ /��������� �N�������� ��� ��� �������� ���� � �� ��� � "���� ���� ������ �� �� � � � �� 5� �� �� �� � "� � ���� � � ����� �=�� ������ $��� � ����� �� ���� �� N�������� ��� � "�� �� ������� � � ��@� � � �� �� �� �=�� ��� ���� ����

$�� �����* %��� �� �������� �� �� �� �� ���� ��������

� ������-� � "���� ���� �� ;���� � � � �� ���� � ��%��N�������� ��� � F���� ��� � � ���� � �+++ � �������G� � �N�������� �%��� ��� �����* �� ��������� �����) �� ��� ���@� � ����� ���� ��� ��� ����"�� �� �=����� �� ��@� � �������� �����* �� ������-� �����) � � �� / � �/�

5�94���� �� ����� ��

;�C ���"! ��#;"� ��� �*;� ��;��� ��*�*�!��# !��# !��# !��# �!9

Page 413: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �$�

;�C ���"! ���� !��# ��;��� !��# ��*�*� �!9

����� ���=?

�� � � �� �� ="�� �- �-="�� �� ��="��

24��� ����="�� ��

���3��

��� ��

����� ���=?

�� � � �� ��="��

24��� ����="�� ��

���3��

��� ��

*���? 3 � �

$�� ���� �����"� �� ���� ��� �� � �330�1� �=��� �� � ������ �� �� ���� �=� ����� ��7 ��� F1,��G� ������� �� �� � �� ��� ����� �� ����� �� �� �����

$�� ���������� �������� �������� �� ��������� � ��� � � ��� ���=� ������� ��� � � ������ � �� ���= �� �� ����� �� �� � � ��%���� � "�� ���� � ��� �� F/� /� 1,��� �� ���� ����������G �� ���� �� �

$�� �������� � � �� �� � ����� ����� ����� � �=� ������ �3���3=Q � � �� � 1,�� ������� � ���� ���� ����� � ���������� � �� ;�C � � �B� ����� �� ��� � ������ "���� �� ������������� �� ���� � ��"� �������

5���� .���

;�C=0�1 � � �

����� ���=? ��*���? / � �� �

$��� �� ������ � �� M01�CD � � �� �=��� �� � �� �� �� ��������� �� ����� � ���� �� �� ��� � �� �� �� �� �� ����� �;�C=0�1 � � � �� �=��� � �� �� ���� ��������� �� � �� �� ������������ �� �� �=� �� ������ � � �� � "�� � �� %����� �����

Page 414: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � 3������� 3� )����� � &�������� ���� �� � ����� ����

;�C=0�1 ��� � � �� �� �� � ���� �� ������ � �=� ������ ��� �� /���������� �-� � ����� 6� �� � ��� ����� ��� � �/�����������

5���� ����

;,1��0�1 ���"! �!��# � �!9 ��**#��� !��#

����� ���=? � �# �"��3�� '

*���? � F� 5 "�� � �� ��G

$��� � � � �� ���� � � ��� ������� F�� ����� � �� �� ���� � ��%��� �� �� �� ����� �� �� �C�� � � �G� $�� ����� � �����"� �� ���� ��� �� � �330�1� � � ��� �� � �C�� � � ��$�� �������� � � ����� �� ��� �� �� �� �� ���� �� �� �� ��"��� ��=� ����� ��7 ��� F�������� �� ���� /� ������� � �� ���� �G�

�������

��CM��= � � �

����� ���=? ��*���? / � �� �

$��� � � � �� ��� �� ���� �� �� ����� �� ���� ������� �� ����� � � ��#�� ��� �� � �� ������

8�� ���� 5���

G;���� 9�������

G;���� 9������� 9�������

����� ���=? ��*���? � � :2��� � ����� ��� 5 � 5���� � ����� ��

$��� � � � �� ��� � ���� � �� �"� � N�������� ��� �� $���� � "� "� �� F��"��� 0 ����G ��� �� ����� ���� �� �� �� �� ����� ������ N�������� ��� �� G;���� ��#��� � � � ��� � ����������� ���� � �� �� � � ��� � � ��� �� ���� � �� � ������ ����� �� �"� � N�������� ��� �� ��"�� C��M�=� �� � �� ��� ��� ���� ����� �D� ��������� F�� �=������ �� ����� �� ��� �������� ��� ����G�

Page 415: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �$'

�$ ����� ��

0; ��;��� ��*�*� ��;��� ��*�*� � � � � � � ��*�*�!��#/ �!9/ !��#� �!9� � � � � � � �!9�

����� ���=?

� ����="��( �4��

���3��(

��� ����="��� �4��

���3���

%%%

���� ���3��1

��� �

*���? 5 � �� �

$��� � � � �� ���� �� � � � � �4�� � � � ��� � � � ���� � � � ��� �

����� � ������ �� �� ���� �� ���� �� ��� � � �� �� ���� �� ����� ��� ��� $�� ������ � ��� � � �� � ��� � ��� �� "�� � ������� �� � ������ �� �� � � ��� ��� ��� �����"�� �� �� ��������������

������ �0���!�

0/��0=3 �!��#/ �!��#�

����� ���=? �"��( ��� � �"���*���? 5

%� !���� � ���� $� ��������'

01=Q,�� �!��#/ �!��#�

����� ���=? �"��( O 6 �"���

*���? 5

$��� � � � ��� "� �� � ������ ������� � �� ���= �"���� � �� ���� � �� �� ���� � �� �� ��7 ���� � � ��7 ��������� F� � �� ��� ��� "�� � �������G�

%�����&� ������

01�1=� ��� �����

Page 416: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$� � 3������� 3� )����� � &�������� ���� �� � ����� ����

����� ���=? �/�5*���? � � �� �

$��� ��� � � � �� ���� � ������ ���� �� � �� � � � �������� 6� � ������� ���� ���� �� �� ���� �� ������� ��� ���������� ���� �� ��� �� �����"�� ������

�����&� ������

01���3 ��� �����

����� ���=? /�5*���? � � �� �

$��� ��� � � � �� ���� � ������� ���� �� � �� � � � ����������� � � � �� ����� �� ���� � � ���� �7 �� � �� � �� "� � ��C��� �� ��� ������� � 5���� � ����� ��� ��� ���� �� ���� � :2���� ����� ��� �� ���� �� � �� ���� � � ��� ��� �� �� 4�) � �����- ������ � ������ F4�-G ��� � � �� ���� � �������

(���� ���� � � � � �� ����� �� ��� � � �� � ���� ����� ��� ���� � � 01���3 � 01�1=� � � �� � ����� ���� �� �� ������� �� ��� �� "�� "� �� � ����� �� � ���� � $�� ���� ����%���� �� /� "���� ����� �� ��� � � ������ ���� F���� ���� � � � ��"� ��������G� ( �� � ���� �� ������ � ���� ��� ����� �

$�� ��� �� ���� � �� ������� � ��� "�� �� �/� �35� 32/� 0�5� /� �35� 32/� 0�5 F�� ��� ��� �/��G � 5���� � ����� ��� ���2� ://� :0:� �/0� 2�3� 503� 1�5 � 2� ://� :0:� �/0� 2�3� 503� 1�5 F�� ������ �2 /���G � :2��� � ����� ��� F$���� ��� � ��� � ���������� � ������ �� �� ����� ��=�� � ���� ���� �� �� ��� �� ��� ��� ��� � 5���� � ����� �� �� ���� ��� �� �� � :2��� � ������ ���G

���� ��� � !����

�=33=Q �!��#/ �!��#�

����� ���=? �"��( O. �"���� �"��� 6. �"��(

*���? 5

$��� � � � ��� "� �� � ������ ������� � �� ���=� ��� �� �� � ��� �� � ����� F�� ��� � ��7 ���G� � �� � ����� ���F�� �=������ � �� ������ �� � � ������ � �� � � �� � ����� � ����G� ����� ���� � ���� � � ��� ����� ��7 �� � � ���� �� �� �� �� � �� �� �� �� � �=33=Q � � ��

Page 417: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �$!

���� ���

�=33�G�1 �!��#/ �!��#�

����� ���=? �"��( O �"���� �"��� 6 �"��(

*���? 5

*��� �� �=33=Q � � � ������ ��� � � � ��� "� �� � ������� ������� � �� ���=� � �� �� �� � ��� �� � ����� F����� � ��7 ���G� � �� � ����� ��� F�� �=������ � �� ������ ��� � ������ � �� � � �� � � ���� � ����G�

����� ���� � ���� � � ��� ��� � � �� �� �� �� �� �� ��� �� �� �� � �=33 � � ��

��"�����' ���� �������� ����� � !"������

�=V0��� �����

����� ���=? � �*���? �

$��� �� ���� � ����%� "��� � �=� ����� � � � ���� � � ��� �� �� �� � ����� � �� � ���� �� � �� ����� ����� �� � �� � ��� � ���� � � ��� �� ������ $�� ����� %��� ����%�� "������=������ ������ �� ����� �� �� � � � ���� � �� ���� ��� �� �� $�� ������ � ������� �� �� �� � ���= �� �� ��� ������� � � � ��� ��� �� �� �C�� >�4 �� �� � ���� �� (����%������ \�������\ E � 5 (

�� �� ���= � �� 1�/= �� �� ����%� � �� \�������\ E � �� �� ���=� � ���� ���� F������ ��C�/� � �=V0���G ������ � �� � � ��������� $�� ��� � �� ����� �� �� ������� � ������� �� �������� ��� ����� ����%� �� � ����� �� ����� �� � � � ��� � ���� �L �� �������� � �� � �� ���� �� � � � ��� � ���� ��

����

�03� �!��# � �!9 ��**#��� !��#

����� ���=? � �"��8 �"��8 %%%

*���? � F� 5 "�� � �� ��G

$�� ������ �� �� �������� � � �� ������ �� �� ���� $�� ��� ���������� ���� � �� ���

Page 418: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$" � 3������� 3� )����� � &�������� ���� �� � ����� ����

���� �������� ����� � !"������

����� �����

����� ���=? � �*���? �

$��� ������� � ����� �� ����� "�� � ����� � "��� � �=� ����� �� � ���� � � ��� ��� $�� ����� �� � ���= �� �� � ���� � ���������� � � ���� � �=�� �� ���� � �� ���� � ���= �� �� �� �� ���� � � ������ �� ����� ������ � �� � ���� � ������� ����� ������� � ���� ������ �� �� 1�/=� �� �� ����� �� ������ F� ���� ������ ��� ���� �� ���� 1�/=� � � � �� ���� �� �� ������ 1�/=� �� ������ ���G�

0� ���

/=/M=C �";��=! ���"!

����� ���=? ����� <5 � �

*���? 5

$��� � � � �� ���� � ��� �� ����� ������ � � �=� ������/=/M=C ��#��� �������� �� � �� ��� "�� � ����� �� ������%��������� ��� � � ������� �� �� �� �� ����� �� ��� ��� � F������ �� � 1�/=G�

0 ��� .�/���

/���=; ������ ������ ��� ��� ������� ����� �������� ��� ��� ��� ��� ���

���

������ ��� ���� ������� ��� ����

����� ���=?

����� ������� F G���� �� �� ����(�7L����� �����(�7L������ �=�� (�7L������ ������(�7L��� �� ����(�7L��(�7

��� �����

Page 419: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � �$#

*���? /�

$�� ��������� ���� � � �=� ����� ��7 ��� ���� ���� �� �� ����� ���� � �� �� ��� ��� & ���� ����� ���� � � ��� �� ���� ��C�� ��� ���� �� ��� %��� ��"��� ���� � �� ��7 ��� ������ # �� ����� �� �� ��� �4�� ������

$�� ��������� ���� � � �=� ����� ��7 ��� ����� �� �=��������� ��������� ����� �� ����� �� ������� +��� � � �� � 1�/=� $�� �=������������ �� �� ������ ����� % �� ���� �� ��� ��� ������ � � ��� �� ��� ����� � � ��� �� ����� �� ����� ��� ���� �� ���= �� ������������

$�� ���������� ���� � � �=� ����� ��7 ��� ����� �� �=�� ����� �� ����� �� +��� � � �� � 1�/=� ���� �� ��� ��� �=�� � � � ��� �� � �� ����� � � ��� �� ����� �� ����� ��� ���� �� ���� �� ������ � �� ���������� �� � �� ���= �� �� �����������

$�� ��� ������ ���� � � �=� ����� ��7 ��� �� ����� � ����� �� F�� ��� ���� ����� � � �� ���� ��� �� � �� ��G� +���� � �� � 1�/= � =Q,��0�1 ��������� � ����� $������ ����� � ����. � � � �� �����. � � �

$�� �������� %��� ���� � � ����� ����� � � ����� ��7 ���F3���3=QG� �� �� ��� �� ��� � ���� ����� ��� �� � ���� � 1,��

������$�� �������� %��� ���� � � �=� ����� ��7 ��� �� 1�/=� �

3�C01��� $���� � � ��� � � ����� � � ��� ���� ���� �� "�� �� ���� �� ����� �� � � ��������� ��� "�� �������#�����������' �� ������ ��

$�� ��������� %��� ���� � � ��� �� �� �=������� ����� �� �������� ������ � �� ��� �� F���� �� ����� �� � �� ����� �����G�$��� ��� ���� �� ��� ��� � ���� � � �� ��� "�� ����������� ���� ��� ��� �� � ���� �� � ��� ��� �� ����� �� ��=������������ ����%� � F�� �=������ � ����%� � �� ��� ���� �� � �������� � � ���� � ���� � �� �� ������ �� � ����� � � �� �����

����� �� � � � ��� ���=G� $��� ��� ���� �� ���� ��� �� ��� ���� �� �� �� ����� ����� ����� �=���� �� ����������%� � �� "� � ����� �� � �� % � ������

$�� ��� ������� %��� ���� � � �=� ����� ��7 ��� �� ���� � �����%� � � �� � � ��� ������ �� ��� $�� ��7 ��� ������ �� ��� � ������ �� $�� % � ���� �� ���� ��� �� � �� �������� �7 � 1�/= ���� ����%� L ��� �� ����� � ������%���� �� � ��� ���� $�� ������ ���� �� � ���� � � ������ ��C�/� � �=V0��� � � � "���� �� �� ���� � �� ������ � �� � � ��� ������ ��� � ��� �� ��%��

Page 420: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � 3������� 3� )����� � &�������� ���� �� � ����� ����

�� �� ���� ���� �� ��� ������� �� ����� �� ������� ���� �� �� ��������� � "�� � ���� � �� �� �� ��#�� �� ������ $�� ��� ����� � � � � � ����� �� �� �� �� �� ����%� ���� � � ���� ����������$�� ��� ������� �� � ��� �� ����� � ��� �� �� � � �������������%� � ��� �� �� ��� �� � �� �� � ���� �� � ��� ��� ������"��� ��

$�� �������� %��� ���� � �� ������ ��� �� �� ��� ��� ��� ��� �� ��� "�� �����%�� "�� �� ��� �� "�� ����� ��� �� ���"��� ����� �� �� �� � ��� �� ��� "�� �����%��� ��� %��� "��� ����1,���

0 ��� ������

/��,�= �!��;#*� �!9 �";�� �!� �=;��= � �!9

����� ���=? ��*���? 2

+=�� �� � ��� �� ��%��� F/���=;G �� �� � � ��� �� ������+��� ����� � �=�� �� ����� �� �� ��� �� �� ������� �� ������� � �� ����� �� �� ��� ��� $�� ���������� %��� ���� � ��=� ����� ��7 ��� �� ���� �� �� ������� �=�� � F�� ������� ��� ������ ����� �� �� �� � �� ��� �� ��%���G� $�� ������� %������� ���� � �� � ����� ��� �� ��%���� $�� ��������� %��� ���� �� �=� ����� ��7 ��� �� ���� �� �� ������� ����� �� ������ �� ����� ���

� ���/��

1�/= �������!�� ��**#��� ���#��*!#� ���#��*!#� � � �!��# !��#

����� ���=? ���*���? 2 � �� �

$�� ��� �������� %��� ���� � �� ������� ��� � �� �� ���� ���� ��� ��� � ������� ��� �� ��� %��� �� � �� ���� F� � ���� � �)**G� $�� �= %��� ���� � � �=� ����� ��7 ��� �� � �� ���� �� ���� �� �� � � � � � �� ��� ��� %��� ���� � �� �����=� ����� ��7 ��� F�)**G� $�� ������ %���� ���� �� ��� ��� ������ � �� ���� �� �� 2 � 0 �� ������ "� � F�� 5���� �� :2���� ����� �� ����������G� $�� ��� ��� ��� �� �����"�� �� � C� �������� ��� ���� � �� ��� ������ "� � � � ���� C� �� $�� ��=�� �

Page 421: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ���

���� �� � ��� �� �:0�25��223 ��� ��� � � 5���� � ����� �� ��52�5�1�350�5�/ ��� ��� � � :2��� � ����� ���

%�"� ����� ��

1=V�

����� ���=? ��"�*���? /

������ %*�

1�� �!��#

����� ���=? ��� �"��*���? �

������ *�

�C �!��#/ �!��#�

����� ���=? �"��( �� �"���

*���? 5

���� ��� ���� ���� ����� � !"������

��C�/ �����

����� ���=? � �*���? �

$��� ������� � �� ���� "�� � ����� � "��� � � ���� �� $�� ����� �� � ���= �� �� � ���� � ���������� (��� �� ������� ��C�/� � �� �=��?

��C�/ �

$��� �� ���� �� ����� ������ ����� �� ��� �� � � ��� ������"�� �� � ���� � "�� �������

��C�/ �/$��� �� ���� �� ����� ������ ���� �� �� � ��7 ��� �� � � ��������� "�� �� � ���� � "�� �������

��C�/ ��

Page 422: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � 3������� 3� )����� � &�������� ���� �� � ����� ����

$��� �� ���� �� ����� ������ ����� �� ��� �� � �� � �������� � ���� ��

� � ���� � �=�� �� ���� �� ����� F�� �������G �� ��� �� ����= �� �� �� �� ��� � � � ������ � "���� �� �� �� ������� � ���� � ������� ����� �� ����� ���� � � �� ��� �� F"����� � ���� ����� � � ��� �� �� ��G �� �� �� �� �� ���� � ������ ��� � ���� ��

����

��U=C �!��#/ �!��#�

����� ���=? !��#/�!��#�*���? 5$��� � � � �� ��� � �� ��� � ��"� "�� �� �=��� ��

� � ���� � ������ � N�������� ��� �� ��� �� �=��� �� �� ��� �� ��U=C � � � �� ���� �� � � ���� 5 �C�� � � ��

���� ��� .�/���

�C�� ���#�"� �=;��=� �;�*�;�� �#!"� ��*�*� ��!����!9 �!9 �!9 *��=! �!9 �!9

���

��=;��=� �=!����=� �!;� �#!*�#���!9 �!9 *�!

����� ���=?

���� F �� ��(�7 G � ���� F �� ��(�7 G?? � $���L���� �� �� ����(�7L����� �����(�7L������ �=�� (�7L������ ������(�7L��� �� ����(�7L��(�7

��� ����

*���? /� � // F�� � ���� �� ������G

$�� ��������� ���� � � �=� ����� ��7 ��� ���� ���� �� �� ����� ���� � �� �� � ���� �� +��� � � �� ���� � 1�/= � � �����1

F"���� � ����� � 1�/= �� � �=� ����� ��������� � ���G����� �� � ���� �� �� ���� � � � ��� �� � �� ��C�/ � � ����� �� ���� ��� ���� �� ���= �� �� ����������

Page 423: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ���

$�� ��������� ���� � � �=� ����� ��7 ��� ����� �� �=��������� ��������� ����� �� ����� �� ������� +��� � � �� � 1�/=� $�� �=������������ �� �� ������ ����� % �� ���� �� � ���� �� ������ � � ��� ��� �� ����� � � ��� �� ����� �� ����� ��� ���� �� ���= ���� ����������

$�� ��� ������ %��� ���� � � �=� ����� ��7 ��� �� ����� ��� � ���� � F�� � ���� ��� ����� � � �� ���� ��� �� � �� ��G�+��� � � �� � 1�/= � =Q,��0�1 ��������� � ����� $������ ������ � �� � ���� �������� �� A���-���4� %%%A�

$�� ��������� %��� ���� � � ���� ���� ������ ������ ����� �� �� �� � ���� �� + ��� � �� ���� � � ���=�� �� �� � ���� �� � ���� �� ���� �� �� ��� ��� �� �� �� � �� � ������ �������� %��� ����� � ���� � 1,��� �� ���� �=� ����� ��7 ����

$�� �������� %��� ���� � � ����� ����� � � ����� ��7 ���F3���3=QG� �� �� � ���� � ��� � ���� ����� ��� �� � ���� � 1,��

������ 6� ���� � ���� � �� �� � �� �� �� �� ��� �� � �� � " ���� �C�� �� ��� �� ���� ������� � �� ��� ������� �� � ����� ��������� ����� � �� �� ��������� $�� ���� ����� �� � ���� � ��� ��� �

$�� �������� %��� ���� � � �=� ����� ��7 ��� �� 1�/=� � 3�C01��� $���� � � ��� � � ����� � � ��� ���� ���� �� "�� �� � ����� � ����� �� � � ��������� ��� "�� �������#�����������' ������ �� ��

$�� ��������� %��� ���� � � ��� �� �� �=������� ����� �� �������� ������ � �� � ���� � F���� �� ����� �� � �� ������ �����G�$��� ��� ���� �� ��� ��� � ���� � � �� ��� "�� �������������� � ���� �� � ��� ��� �� ����� �� ��=������ ������ ����%� ��6� �=������ � ����%� � �� ��� ���� �� � ������� � � ����� ���� � �� �� ������ �� � ����� � � �� ������ ����� �� � � � � ��� � ���� �� $��� ��� ���� �� ���� ��� � � ���� � � ������� �� �� �� ����� ����� "��� ���� �=���� �� ���� ����������%� � �� "� � ����� �� � �� % � ������

$�� ��� ������� %��� ���� � � �=� ����� ��7 ��� �� ���� � �����%� � � �� � � ��� ������ �� ��� $�� ��7 ��� ������ �� ��� � ������ �� $�� % � ���� �� ���� ��� �� � �� �������� �7 � 1�/= ���� ����%� L ��� �� ����� � ������%���� �� � ��� ���� $�� ������ ���� �� � ���� � � ������ ��C�/� � �=V0��� � � � "���� �� �� ���� � �� ������ � �� � � ��� ������ ��� � � ���� � ������ ��� F� ������ ��� ������G� �� ��� ������� �� ����� �� ����������� �� �� ����� ���� � "�� � ���� � �� �� �� ��#�� �� ������� $�� ��� ���� � � � � � ����� �� �� �� �� �� ����%�

Page 424: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � 3������� 3� )����� � &�������� ���� �� � ����� ����

���� � � ���� ���������� $�� ��� ������� �� � � ���� � ����� � ����� �� � � ��������� ����%� � ��� �� �� � ���� � � �� ��� ���� �� ������ "��� ��

$�� ��� %��� �� M01�CD� $�� % � � � �����%�� �� ��� �� ��������� �� ���� � �� �� � ���� �� $�� ������ � ���� �� ��� ��������� ���� ��� � �� �� � ��� �� �� � ���� �� �� ��� � ���� ���� �� �� �� � � ��� �� �� ������ "�� �� ���������� ������ �� ���� �����%������

$�� ����������� %��� �� � ��� ��� �� � � ���� ��� ��� �����%���� �� � ���� �� � � ���� �� � ���� �� ��� �� ��� �� �� ��� � � �� �� �� � ���� �L �� ����������#����������' �� �� � �� ����� ��� �� ������� �� �� � ���� � � ��

�� ���: ������: ����

�C�� �!��#/ �!��;�/ �!��#� �!��;�� � � � � � �

����� ���=? �"��( * �"���( E �"��� * �"���� %%%

*���? ��O /

$��� � � � �� �� � ��� �� ��� � �� ���� � �� ��� �� �� �=������ 9����� � ���� �=� ������ � � ���� ��"� � � �=�������� �� � �� � ����� ���� � �� � �� �� ��� ���� �� ����� � ��% � � � �� �� ������%� � � ������ ��"� � � �� �� *�� �� �� ����� ��� �C�� � � �� �� � ������= ��"� � ������� �� �� �� �=����� � �� ����� �� ��U=C � � ���

����

C�1�= �!��#/ �!��#�

����� ���=? �"��( %% �"���

*���? 5

������

C��0�1�� ���*!�!# ��;�� ��*!�!#

����� ���=? (B�*���? 5

$��� � � � �� �� �� �� ����� �� �� ��#��� � ������ ��� ����� �� � � ������� ��� ���� � ��� � �� ������ �� ����� ��� �� .�� %���� � � �� ���� � F01���3� 01�1=�� � � ������������ G �� �� ����� � � �� ��������

Page 425: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ��'

��� ����� ��

C=�� �!��#

����� ���=? ��� �"��

*���? �

$�� ����� ��� ������ $�� �=� ����� � � ���� �� � ���� �� �� � ������ F3�C01� � 1�/= � � �G� �� �����%�� �� ��� ���� %�� � ����

����� ����� ��

C=�,C1 �!��# � �!9

����� ���=? ������ �"��(8 �"���8 %%%

*���? �

$�� ����� ������ ������ $�� �=� ����� ��7 ��� �� ���� ��������� �� ��� �F�G � � �

���������� �����

C��M�= ���*� �"��=!� ����� ��**#�� 9�� ����*�! �� �����

���

)� 0� � � � � � � )� 0� >� >�

����� ���=? �����#%%%'*���? �� 7 � "�� � � �� �� ��� �� �������� F� � :5G� �� �

�� �� /� � �� ������� � �� ��� �� > �� ���� ��

$�� ���� %��� ���� � ���� � ����� �� ���� � F�� ���� �� ��4���� �� C��M�=�G� � � � G�3G��M � � � F�� ��������� �� C��M�=�G�$�� ��� ����� �� ���� � ��#�� �� ��� M01�CD� � ���� � ���������� ���� � �� �� ��� ��� �����B� �� ��� ����� "�� �� �����"� �� �� �� �� �� � �� �������� �� � ����� ��� � � �� �� �� �������� �� � M01�CD ��#��� �� ���� ���� ���� � �� % � ��� "� ��� � �� ��#�� ����� �

$�� ���������� %��� ���� � � ����� � � � ��������� �� ������ �� �� ������ �� � C��M�= �� ����� ��#���� �� �� C��M�= ������ �� �"� � ��#���� �� ���������� %��� ���� � �� ����� 1�/=

�-�4����

Page 426: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � 3������� 3� )����� � &�������� ���� �� � ����� ����

$�� ����� ���� ���� � ���� � ���� �=� ����� ��7 ���F1,��G� � � �=� ����� ��7 ��� ������ � ���� �� ���=�� � ���� �� � ���� � � ���� �� �� C��M�= � � �� $�� ���� �� ��C��M�= �� ������� � �� � ������ �=��� �� �� ����� %��� ��� � ��� ���� ���=�� � ��� F���� 1,��� � ���� �=� ����� ��7 ��������� � ���� �� ���=�� � ��� �� � ���� � ���� ������ �� C��M�= "�� �� ���� ���=�� � ��� ����G�

$�� ���� � ���� ���� � � �=� ����� ��7 ��� �� C� � � �� �� �� � � � �� ��� "���� �� �� �� �� �� ����������� � ���� ��7 � ��� �� ����������

$�� 9�� %��� �� � �� %��� ������ �� �����"�� � �%�����

� ��� ��� � � ��� � ������� �� �� ���� �� �� �"� � ������� � �� � ����� ��� ��� F�� �����%�� �� ����������G �� ���� ����

� � ���� � � ��� � ������� �� �� C��M�= �� � � ��� �� �=� � ;��� �

� �� ��� � 2 ��� � ���� ���� �� �� ��� ���� F���� ��� ��� ��� ���� �� � ���G

� � �� � / �� � ������� & � 6� � � �� �� �� C��M�= �������

� ��� ��� � / �� � ������� �� C��M�= �� � �� ������� ��� � �����

� �� ��� � / �� � ������� �� �� ����� ����� � �� �� ���� %������� � ����� � ������ �� ����� ��� �� � �� ���� ������ ��

� ���� � / �� � ������� �� � �� ���� ��� ��� �� ��� � ���� �� 6� �� � ��� ����� ��� � ������ ����

� ��� �� � / �� � �����C��� �� �� �� ��� ������� �� ��� ������� � � C��M�=�

� ��� �� �������� � : ��� � �� ��� �� �������� �� ��C��M�=� � �� � � :5�

$�� ��������� %��� ������� �� ��� ��� �� ������ �� �� ����������� �� �� ���� 6� � ��������� �� C��M�=� ��������� �� � ����6� � ��4���� �� C��M�=� ��������� �����%�� �� ��� �� ������� ��� ��������� ���� �� "���� ���� � �� � ���

$�� ������ %���� ������� �� ��� �� ��"� �� �� �� ���� ��������� �� � � �� �� �� ���� �� ����� ������ ���� �� $�� ������ �� �� � � ��� /23� 205� :20 � �� /23� 205� :23 �� 5���� � ����� ���� �1� ��5� 53�� �5:� 0�2� 33�� 0�0 � 1� ��5� 53�� �5:� 0�2� 33�� 0�3 �� :2��� � ����� ��� $�� ��� ��� �� ������ ��� �=���� �� ��� ���� ��� � ���� �

Page 427: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ��!

��&� ����� ��

3�W= �!��# � �!9

����� ���=? ��� �"��8 �"��8 %%%

*���? �

$�� ����� ��� ������ $�� �=� ����� ��7 ��� ����� � ��� ������ �� ��#��� � ����� �� ���� � %�� ��� � ������ � ��� �"���� � ���� ���� $�� %�� � ������ � ��� �� �� �����%�� �� �1�/= � 3�C01��

������

3=C0=3 �!��#/ �!��#� ����� �!��#5 ����� � � � � � �

����� ���=? ��*���? ��O �

$��� �� �� �� �� �� ������ �� � �� ��� � ������ $�� � �� ��� ���= �� � �� ���L �� �� ��� � ��� � �� � ���� ���� $�� % ��=� ����� ��� �� ��� �� �� � "5� "�� � " ����� �� �� ����� �� ���� ��� ��� � �� �� �=������ �� ����� �� ��� �� �=������ $�� ������ � ��� � � �� � ��� �� ��� � �� ������� �� �=�����$�� �=���� � � ���� �� ��� ���� � � ���� � � �������� ���� ��$�� �=���� ����� � �� ����� � �� � � ������ �#(' F� � ������� � �� � ��� �� "�� �� ���� /G �� �� � ��� ��������� �� ������� � � �� � ��

���

3=� �!��# � �!9 ��**#��� !��#

����� ���=? �!��#� !��#� ����*���? � F� 5 "�� � �� ��G

$�� � ��� � �� ��B� �=� ����� ��7 ��� � � �� �� � � �� ���� ����� ���� � ��� ���� $��� �� � � �� � � � ������ � �� ������� � �� ������ "� ��� "�� ����

����� �� �������

3���3=Q ��*�*/ ��*�*� � � �

Page 428: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � 3������� 3� )����� � &�������� ���� �� � ����� ����

����� ���=? ���(> ����> %%%

*���? 5 � �� �

$��� � � � �� ���� � ��7 ��� �� "� � �� � ������� ���� �� ��� "�� ��� � ����� ����� F�� �=������ �330�1� 0;� ;�CG�� ����� � � ����� ��7 ���� ������ ��� � ����� ������ �� ������� �� �� ������ � ����� ��7 ��� ������ � ������� �� ������� �� �� ���� �=� ����� ��7 ��� F1,��G� �����3���3=Q � � �� � � N����� ��� �� �� ����� ���� ����� � ����� �� �� ������%� �

��� 0����

3���

����� ���=? ����� ����� � ����*���? /

�����

3�C01� �����$�� ��**#��� !��# ���������� ���������� � � �

����� ���=? L�4�� �� ������L

*���? 2 � �� �

� ����� � �� �� � � ���� ������ � � 1�/=� �=��� �� � ��� ���� ����$���� %���� $�� ���� ������ %��� ���� � � �=� ����� ��7 ����� � �� �� �� �� � ��� �� �� � � � � � �� ��� ��� %��� ���� ��� ���� �=� ����� ��7 ��� F1,��G� $�� ������ %���� ���� ����� ��� � ����� � �� � ��� �� �� 2 � 0 �� ������ "� � F�� 5���� �� :2��� � ����� �� ����������G� $�� ��� ��� ��� �� �����"���� � C� ������ �� ��� ���� � �� ��� ������ "� � � � ���� C� ��

$�� ��=�� � ���� �� � � �� �� �:0� 25�� 223 ��� ��� � � 5����� ����� �� �� 52� 5�1� 350� 5�/ ��� ��� � � :2��� � ����� ���

�� : .�3�����

3,/ �!��#/ ����*;#/ �!��#� ����*;#� � � � � � �

����� ���=? �"��( E ����( 7 �"��� E ����� %%%

*���? ��O /

Page 429: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ��#

$��� � � � �� �� � ��� �� ��� � �� �=� ������ �� ��� �� ������ �� 9����� � ���� �=� ������ "�� � ���� ���� � � �=������ �� �� ���� ������� "�� /� �� �� � �� � ����� ���� ��� � �� ��� ���� �� ����� � �� % � � � �� �� ������%� � (������ �� ��� � �� �� E�� � � �� ����� �� 3,/�� �� � ������= � �� ��������� �� �� �� ���� � � � �� ����� �� �C�� � � ���

�����

��M�= ����!�� ���� ��##� � �;���� ������ *��

����� ���=? �D�*���? 2

$��� �� � ��� �� ���� ���� �� � ���� �� �� ���� �� ��- � ����� � ������ $�� ��������� "��� ��� � ���� � 1�/= � � �C���6� ��� �� ������ �� ������������ %��� ���� � �� ���� �=� �������7 ��� F1,��G� 6� ��-� F� � �� ��� ��� "�� ���-�� "���� � ���������� �� C��M�=�G� �� ������������ %��� ��� � � � �=� �������7 ��� �� C�1�=� �� ���� �� $�� �������� %��� ���� � � G�3G��M

� � � ������ �� �������

����� ��$�����

��M�=C=; ���"! �!��# � �!9 ��**#��� !��#

����� ���=? � � � �"��

*���? 5 F� 2 "�� � �� ��G

$��� ��� � � � �� ���� � ���� ��� ���� � ���=�� ���� $������ � � �����"� �� ���� ��� �� �� �330�1� � � ��� �� � ��M�=

� /��,�= � � �� F$�� �� �� "��� � ��� �� � ��M�=C=; "�� ���M�= � � � �� �� ���� � �� � ��� �� � ��� �� �����G $���=� ����� ��7 ��� ����� �� �������

��' ����� ��

�CD �*#� ���*��� ���*��� � � � � � � �����=��*�*� ��*# �*�*� �*�*��!9 �!9 �!9

����� ���=?

Page 430: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�$ � 3������� 3� )����� � &�������� ���� �� � ����� ����

��' �(������ R����( R? ����(����4����' %��(�L

��� ��'

*���? 5 � �� �

$��� � � � �� ���� � ��- ������ �� �� ���� � � �� � ������ ������� � ��" ��� ���4 ������ �� � � � "��� �� ��"���� � � � ��� � ����- ������ $�� ���������� ��� � �� ����� �� �� �� �� ������� ���4 ������ �� � ���� � �� "�� �����%����� ��������� ���� � 1,��� +��� ��������������� � � ���� �� ������� ���� � � 1,��� �� �� � ���� F� � ���G ����- ������

$�� �� �� �� �� �� ��� �� �� �CD � � � �� /�CD� � � ����������� "�� � ��� � ��%�� �� ���� & �=����� ������ ��� � ����

#�&������ !"������

,1=W�� �!��#

����� ���=? K �"�� K

*���? �

#�� ����� ��

,3= ��������� ��*�*�!9

����� (��=?

� ������ �����7

��� �

*���? 5

$�� � �� �� ������ ���� � � �=� ����� ��7 ��� �� �7 ����� "���� ��� ����� � � �������� �� �� ������� ������ ���� �� ��7 ��� �� ������ �� �� � �� ���� �� �� ��� ������ $�� ��� ����� �� �� ����� �7 ���� �� �� � ��� � �=� �������

$�� ��� ����� � �� ��� � �" ����� ��� �� ���� ������ �� ����� � �� ��� ���� �� �� �7 ���� � � �� ��� 6� ���������� � �� � � ��� �� A K �� ����� ���� �� � �� ��� �� ��

Page 431: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3� )����� � &�������� ����� �� 9 � %.��� � ��

���� �� �� � "� � �� ��7 ��� �( . <5�(8 �� . <5��8 %%%� "�� ��� �� � � �� �=�� � �� A K� ���� �� ��7 ��� ������� �� ��������� ������� ����� �� � �� ��� ���� �� �� �7 ���� � � �� �� � ��� � � �� �� ������� ��� ������ $�� � ���� � ������ �� ����������� � � ��� �� �� �=� � �� �� ��� ������ .����� � � �������� � �� � ����� ������%�����

������ ;*�

V�C �!��#/ �!��#�

����� ���=? �"��( ��� �"���

*���? 5

��' ���� ���� ������ ������� �� �

J����D ����!* ";� �;!�� �;!�/ ���

J����D ����!* �!9 ";� ���;=� ���;=/ ���

����� (��=? ���(# �������0�# �"��8 ����� '8 � '>

����� (��=? ����# �������0�# �"��8 �����(8 ������ '8 � '>

*���? ������#H����-' O� F�� �� C� � ���������G*���? ������#H����-' O5 F��� "���G

$��� �� �� �� �� �� ������ �� ��� ��� �� ���� ��� ����������� ��� �� ���� ���� � $�� ���(#' �� ����#' � � ��� � ������ � �� �� � ���� � "� � � ��� ��� � � � ��� ��� � �� ������� ���������� � �� � "� �� ������ "�� ���� ������� ��� �� ��" �� ��I�J � ��I�� J� ����������� ���� ��� �� � �=� ����� ��7 ����� �� ���� ����� �� �� ��������� F=G� � F=��G� ��� �� �� ���� ��� � � �� �� ���� ������ � � ��� ��� ��������� �� �������� � �� �� � �� �����"�� � �� �#���)E�����*) 7 ���(E�����*( 7 %%% 7 ����E�����*�' �� �

� ���� ��� ��������� ����� ���� � � ��� ��� Y--�*E � �� �� �� ����� �� ������� �� �� % � ���� �����#���)#������'E�����(*) 7 ���(#������'E�����(*( 7 %%%' �� �

"�� � ���� ���� �� � ��� ��� ��������� � �����( �� ����� ������� � � �� �� ��� ��� C� � �������� $�� ������ ���

���� �� ��"��� ��C� ��

Page 432: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

� � 3������� 3� )����� � &�������� ���� �� � ����� ����

��" �� 7�� �� 4�����% �� �����

� ���� � ���� � �������� �� ��� ��� ���� �� �� ���� ������� �� �� �� �� ��������������� ���� ���� �� � ����� � �����$����� � � ��� � ��� ������%���� �� ���� ���� �� "��� �� �� ����� ����� � ����� 6� ������%����� ����� ����� � ����� ���� �� �����=� ������ � � ��=� ������ � �� � ������� $��� �� ��� �� ������ �����#��� � � ����� � � ���� ��� �� �� � ��� ���� �����%�� �� �� �� � �� ���� ���� ��� �� �� � ���� � �� � �� �� �� � � ������������� ��������� "�� �� � ���� �� 6������ ����� � � ��������� � �� �� �� �� �� �� ����� ��� �����

��� ���� ��� ���� �� ��� �� ������� $�� � � "� ���� �� ���������� ����� �� ������� .���� ���� ����� � � ��� �� ��� ������������ A�"��� � ����� ���� ����� � � ����� "�� � �� � �� �� ���� �� ������ �� �� ��� >����� ���� ����� � � ������� � "� � "��� �� �� ��� �� ������� $�� "� ���� �� ���� ����� � � � �=��������� � ����� ���� ���� ������� � ��� � �� � ��������� ���� �� � ������� ���� �����

1���� 8��� ������$�� ���� ��� ��� �� �� ����� ���� ����� �� �� �� ������� �=����� �� ����� � � ������ ���� � ����� �� �� ������ ����� �����$�� "� ��� � � �� ��� � ������� ���� ����� � � G�3G��M ��G�3G�

1��� ����

G�3G��M ������ �����/ ������ ������ � � �

����� ���=? ��*���? �� O /

$��� �� � �� �� ��� � � � "�� � ����� ���= �7 ������ ��� ��� � �� �� ������ �� ����� "��� ������ +��� � � ���� �� ���� ���� F� G�3G � � �G� � �� � �� ���� �� � � � ��� ���� ���� � �� � ��� ��� $�� ��C� �� � G�3G��M � � � ������ ��� ��� �� ���� �� �� ����� �� � �� ��"��� � ��"� �� � �� � ���

1��� !����

G�3G �! �!��#/ �! �!��#� � � � � � �

����� ���=? ��*���? ��O /

Page 433: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3�� %�� 8�� �� 4 ����� �� � ��� � ��

+��� ���� ����� �� �� �� �� � ��� �� ����� ��� � ��� � � ����� ��� ���� � $�� % � � � �� ��� ��� �� �� ���� ���� �� �� ������� � ���� � � �� �� ��� �� � ���� ����� F�� �=������ � ���� � ������ ������ �� ��%�� �����G� �� ��� �� ���� � ���� � � ��� ������ �� ��� �� � ������ ��� � F�� �=������ �� ������%���� ����� �������� ����G� $�� ��� ��� ���� �� ��� � C� � F� �� �� ���� G���� ��� �� ��� � ������ �� ���� �� �� � ����

.'� �� 8��� ������$�� ����� ������ ���� ���� �� � ������= ��� � � �� � ����������� ���� �� �� ���� ���� �� � ����� $�� �����"�� �� � � ��� ���� ����� �� �� � � ��

����� �� ��� � N�� %=�� ���� �� ��� �� ����� ������ ��������� �� � �� � � � "�� ���� � � ��� � �� �� ���� ��� ������ � ������ � ����� �� � �� ��� � �� �� � � ��� ��� � � � ��������� 6� �=������ � �������� �� ��� � ��� �� �� % � /� ��� ����= /��2 ����� �� �� �� �� ����� � ��� �� � �� ��� � �� ���� ������ �= 0 ��� �� �� ��� � ���= ��: ����� ��

� ���� ���� � � ������ ���� �� �� ������ ��� ��� ��� � ��� �F� �� ���� "�� �� � ���� ���� ���� � � ����� ���� ����G� $�� % � ��� �� �� ���� � � ���� ���� � � �������� "�� � �� �� ��� ����� �7 � �� � ����� �� ���� ����� $�� ������ ��� � � � �� � ��)��� �� �=����� � �� � ���� � �� �� ���� �� ������ �� � ���� ������ �� � ����� �� �� �� ��� � "�� ��: ����� � ���� ���� ���� �� � �������� � �� % � /0 ����

��� � ���� ���� "�� ��� ��� ��� N�"�� � �� ���� �� "��$��� ��� �7 � � � ���� � � ��� ��� � "�� "� ����� � � �� ������ ��C� �� �� ���� ����B� �� � �� ��� �� � ���� ����� ���� ��� �� �� ���� ��� �� � �� ��� �� ���=��� $��� �� �� ��� � �������� ������ �� �� ��� ���� �� �� "� �" ������ �� �� ���� ������� � ��� ��� �� ���=��� �� ���� � �"� �� ������ $��� � �"���� � ��� �� ��� ������ � � ��� �� "�� ������� ���� �����

��� �� ���/���� �����.� �� � �� ��� ���� � ���� ������� �� �� ����� �� �� ���� � ��� '��� �� ������ ��� ������%�� �=� ������ �� � ��=� ������ � ��� �� � �� ������%���� ����� $�� ��� � ���� �� ��� ���� �� � ��� � �� ������%�� �=� ������ ���� � �7 � ����� � ���� �� +�� ��=� ������ "���� �� �� �� �� ����� � ��� ��� �� ����� �� ������������ �� ������%���� ���� ��� �� �� �� �� �" �=� ����� �� ������ ��� �� �� ��� �� �� ���� $��� ��� �� ��� �� �� ������%� "����

Page 434: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � 3������� 3� )����� � &�������� ���� �� � ����� ����

�� ������ ������%�� F������� ��� �� ����� ������%���� ���G �� ����������� �� ����� 4� ���� �������� ������ �� � ��� � �� ������%����� ���� �� ��� �� ������ � �� � ������ ��� � � �� � ���� ������� ������

$�� ��� �� ������� �� �7 ����� �=� ������ "��� �� ���� ��� ��=� ������ "� �� � �� �������� �� � "� � � ��� "�� �� ��� ��������� +�� � �=� ����� �� �� �� � �� ������%���� ���� ��� ������ � �� � ���� $�� ���� � �� � �=� ����� �� � ������ � ��������� "�� �� �� � ���� � � �� �? ���� �� �� ������� �7 ������=� ������ � � �7 ��� 6� �=������ �� ���� �� �� �� �=� ������ �O� O � �� � O � O � � � �������L �� ���� �� �� � � �� � � � ����� �������� �� "� �=� ������B ���� �� ����� �� �� �� �=� ��������� �� �7 �� � �� ����� ����� �� ������%�����

(�� ���� �� � �=� ����� � �� ������%���� ���� �� ��� ��?

� (��������� �� ������ ��� �� �� �������

� ������� �� ����� ������%���� ���

� &��� �� �� ���� � �� ��� ���� �� ��� ���� � � �� ����

�� �� ���� � �� �� �� �� � � �� ����� ��� �� �� �� ��� F����� �� ���� �� ������� �� � ���������� � � ���� ����G ��� ��� �� � �� �� ���� �=� ������ �� �� �=� ����� �� �� �� �� ��� �� ���� �� ��� �� �� ��� ���� �� �� ����� ���� � � �� ����� ���� �� �=� ������ ��� � �� �� �� ��� ��� "�� �� � �� � �������� ������ ���

(��� ������%�� �=� ������ � � � � ���� � ���� � �7 � ��� � ���� � �� �������� � �� �� �7 ���� �� ������%�� �=� ������ ��� ������ ���� ����� ���� )�7 � �� ������ �� ������� �=� �������� � � ���� �� ���� � �� ������ �� ������ ���� ���� �� �� � �������� ����� ���� �� ������ � �� �� ��#��� �� � ��� ��� � �� �� ������������� ��� ���� �� ��7 ���� �� ��#��� �� �� � �� �� �� ������� ��� ���� 6� �=������ ��� � ����� � � �� ����� ��� "��� $���� ��� ����� � �� �� �� � �� ������ �� �� ��� � ���� ����� �� ��� �� �� ��7 ����� (� �� �� ������ ��� ��� �� ���� ���������� �� �� "�� �� ���� �������

��� %� � �����$�� ������� �� �� ������ � �� ����� �� �� �� �� ���� ������ $����� � ������ ���� �� ��� ������ ����� +��� ��� �� ���� �� � �� �����B� ��� ��� � �� �� �� � � �� � ���� � �� ��� � � �

Page 435: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3�� %�� 8�� �� 4 ����� �� � ��� � �'

�� �� ���� $�� ��� ���� �� ��� � ����� ������ ���� �� ��� ���� ��=���� ���� � �� ��� ��������� � �� ���� ��� �� � ������ �� �� � ��� ���� � ��� ������ ����� $���� ��� ���� ��� ��?

/� �� ��� �� �� ���� ��������

�� (���� � ����� ������ ��� ��� � � %��

5� ����� � ���� � �� �� �� �� "���� � ��� ������� �� ������� ������ ����� ����������

�� � ��� ������� ������ ���� �� � ���� ���� � "���� �� � � ��F�G � � � ���� ����� � � �� �� �� �� ���� ���=� �� �� �� � �� �� � ���� � ���� ���� �� �� �� ���� ��� �� .��� �� � ������%�� �=� ����� � ����� ��� � �7 � ����� � ���� �� �� ��� ��� �� �� � � ��� �� �� ��� ���� ���� � ���� A���� ��� ���� � ������ ���� �� �� � ����

$�� � � � ���� �� �� �� � ���� "���� �� ������ ����� ���� ���� ���� ������� ������� ��� �� �"���� ��� ������� ���������� $�� � ���� ���� ������� �� ������ � � ������ �� ����� � � ������� "�� �� �� �����"�� �����?

� ��� �� ������ ��� � �� � ���� �������� ��� ��� ��� ����� FK������K �� ����� �� K�����K �� �� ���G� &���7 ������ � ��� �� ���� � � �=���� "�� �� � ������ ��� ����� �� � �� � �� �7 ���� "�� �� ���� � ���� � ������ �� "�� �� �� ��� �� ����� � �� � ����� �� � ���� �� � �� � �� � �� ��� "���� � � ������ �� "�� �� �� ��� � �� ������� � �� �����

� ��� ������ � ��� � ��� ����� F��� ��� ��� ���� �����GL� ���� � ������ �� �� �� �� � ������ ��� �����

� �� � ������� ��� ��� � ������ �� �� ������ �� � � ����� ����������� �� ������ � ��� �� �� �� 7 ��� � �� ������ �������� "��� ���� �� �� �� � �� ������ �����

�� ������ �� � ��� �� �����%�� ����� "�� ������ �-��� � ��� ���� �������� ��� �� ������ ���� � ��� "���� ��� � �=�� ������ � ���� � �� ����"�� � � �� ����� � � ������� $���� ������ � �������� ���� �� �� ������ �� �� ���� � "����� ��� �� �=� ������ �� ���� �������� �� � �� �� �=� ����� ������

Page 436: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � 3������� 3� )����� � &�������� ���� �� � ����� ����

0���� ������� ����'� � ������$����� �� � ��� � � � ������ �� ��� ���� � �� ����� ��� ��� ����� ���� �� ��-� � ����� � � �� �� � ���� �� "���� �� ������� ������ � � �� ���� � ���� "��� �����%�� �� ��� $����� ��� ��� � � ��������� ��� �� ����� �� �� ���� ������ .��� �� ������ ��� �� � ��� � � �7 ���� �� ���� �� ���� � ���� � ���� ��#�������� �� �� �����"���

/� ���= �� �� F�� � ��� ���G

�� � ���� ���� �� �������

5� � ���=�� � ���

$�� ������� �� � ���� � � � �������� ��� � � ��� �� ���= F�� �=������ ��8�E���#"' G� (��� � ������%�� �=� ����� �� � � ���� ����� � �7 � ����� � ���� �� �� ��� ��� �� �� ������%�� ���= �� ��� �� �� ���� ��� �� � ������� �� � ������ �=��� �� � �������=� �� �� ���=�� �=� ����� �� � ���

$�� ������� �� ���=�� �� � ���� � � ���� ���� �� �� ���=��� ���� ����� � �� �� ���� �� ��� �� ���=��� ���� ���=�� � ����� � � � ������ �� �� ����� �� ��� ��� ���=�� � ���� � ������� � �� �� ��� � � � � � � ������ �� �� �� �

0���� ������� ���������� ������9���� �� ����� F�� ��������� �� �� C��M�= � � �G� �� �� ��� ��� �� �� ��� �� ���� �� �� ��� ��������� ��� �� ������� � �� ��� � ����� �� � ���� ����� � ���� ����� $�� � �� ���� ��� ���� ��� ��4���� ��� "���� ��� �� ���� �� ���� ������� � ��� �������� �� � �� � ���� � ��� � �� ��� �� �� �� � ���� $�� ��#� ���� C��M�= �� ��� �� ��� � � ����� �� ������� ���� �� ���� �� ���� ���� �� ��� ��� �� ��� � ��� �� �� ���� "�� � �� ��� ���������� ��� �� �� ��� ����� � � ��� �� ������ �����������$� �� �� � ���� �� ����� ������ ��������� �� ��#��� �� ������-� /���"� W��������2 � �� W���������� � � ��� �� � ���-

�� � �� ���� ��� �� � ��-� 6� ��%����� ��� � ����- �����-�

������ .���� ��� ����� �������� ��� ����� ������� � ����� � �������� ���������� �� ���� ���� �� ��� ������� �����������

Page 437: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

3�� ��� �����. � �!

����� ��� -����� -�������� � ��� � ����+�

>������� ������ �� /'���

��� -�� � .���� -& ��� ���� ����"�*� =

����� -�"� ������� ��� �(( (-�9& ( �(D(��� ��(����� 4 ������ � �� �9�,A�"�� -���� � -��9�(& A-�),�.� 9(D:��� ��,>+& ����� >����� )��,D&����7 $ :2

��& �� ����� +

$�� ����� �� �� �� �� ���������� �� ���� � � � ��� � �� ����� ��� ����� � �� �"� � � ����� �� $�� ����� �� �� �� �������� �� �� ���� � �� ����� "���� � ��� � � & ������� � � N� ��� ��������� �� � 5���� � :2��� "� � ��C�� $���� ��� ���� ���� ����� �� �"���� ����� �� � ��� �� F ��� � �� �������� �� ���� �� � ����� � ��� � ��� �� ��� ��� ����� �� ����G�

$�� ��#� �� �� �� �� �� ���� ���� ���� �� �� �� �� �� ������ ��� ��� ����� ��� +=����� �� �� ��� �� �� �������� ���������� ��� �� � �� ����� � ����������� � �� �� "� � ��C�� ��� � �� ����� ��� ������ �7 � ����� ��@� ���� � �� �"� � N���� ���� ��� � �� ��������� & ������� � ���

$�� ����� ��� � � �� �� � ��� �� �� ����� �� ��� $�� ��� �� ��� �� ��� �� � �� �� ��=�� � ��#�� ��C�� � �� ��������� ������� ���� �� ���� � ����� ��

$�� ����� � ������� �� �� ���� ��� "� �� ����� �� (��� ��� ����� �� �� &������ �� ����� F� ��������� � �������G� $��(��� � �� ����� �� ��������� � '���� "���� �� ����� � ��������� $�� &������ �� ����� �� ��������� � & �� 6 OO� �� ����� �� �� � ����� � ������� �� �� ���� ����� ��� � � � ������� �� �������� $�� ����� )�� �� ���� & ����C��� (���� F��������� � ���"� ����� �� ����G �� " �� � '��� "�� ���� ���� ��� � ���� $�� '����� �� �� ������� � ��� ����� ���

Page 438: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�" � 3������� 3� )����� � &�������� ���� �� � ����� ����

Page 439: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�����

S� ��2F� 55

��� ���� ��5� ���� ��1� �10����� ��� � ����� 513� ��� 2����� 511��> �� �� ��� � � �� 511�������� 5��

��� � � �� ��� 5������ �� � ��� 5�5"�� ����� ���� 5��"�� �����-� 5�2� 5�3

�������� �/3� 50�� 505���� /0� 20� � ���� ��/

� ������� 52���7 ��� ��� /0

���-� �52��-� 2�:� ���� �5�� ���� ��� �/2� �5�

�� �� �"� � N���� �5��� �"� � N��������� �52������C��� �5�� ��� 0

������ ���((�4� �� �� ��� � � ��

511�������

� ������ �01������� ������� 511��� �� �/� 53��� ������ �/�� ��� :�� ������ /� ����� ������%����� ��

����� ���� 5��M�����X� �5�M��� ��:����-� 511.���9E �� �� ��� � � ��

511����� ���� /������� 20� 511.9+�8 �� �� ��� � � ��

511� @� �� %���� /1�

N ����� �/3

&���� ��/

���� �� ��� ���� 551�1D�G01�� 551����9�1�D� 551C=�,C19�1�D� 551

������ � ���� 505&� ���� � �� �

��7 ��� �� ���� ��&�$+��$+ �� �� ��� � ��

�� 2��������� "� ������ ������� /12�������������� 5/1!5�1

������ � ����� 5������� ������� 5�3�=��������� 5�2!5�1�� ������ ����� 5�5�� ������ �� �� 5����� ��� ��%���� 5�3��� ��� ��%��� ������ 5�0������� ��� ��� 5�� ������ � ������ 5�/ ��� � �" ��� ���� 5�1

2�1

Page 440: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � )����

���� 513����C� 5�1

G,=� ��1���D��13� 5�1C�M� �:5

���� � ���� 5�1������ 5/5� 5/:

���� ������ 5/�� 5//� �� ������ 5/5G,=� 5//

��� ��� ���� /03� �/� ������ ��2

���������� �� ���� ��������

��� ���� ��� ����������� ����

��� � ������ 5�1!535 ��� ����� �� 535!51�

�� ���"� 2��&��-*+, �� �� ��� � ��

�� 2��������= ��� �� �5:

������ � �� 5����� ��

� ���� 1��� � ��� ����� 1�

��������� 3�� 2�������

��%�� �� ��� �50��� �� �� /�0&��$9�* �� �� ��� � ��

�� 2���� ��� N�" ��� 513���� ����� 52/���� ��

�=� ������ � � ���� �3��5//

� ��� � �������� 5/:���� � � � ��� �/0

������ � �������� �35� �0��5/:

� ��� � ����� �/0� ��� � �=� ������� 5�� �/1� �� ���� � ���� ���� ������������ �:3� �03

���-;���� /10� �//���-���4�� �3�������� 03� ���� ��������� 5

���� �� ��� ����������� /0� ����� � �� %���� /03����� � %��� /0:

��� � � ��� 51�� �������� 5���� ������ ��2!��:� �:��� ��� ��� �� �� ��� � ��

������ ����� 513

>&�*�� �� �� ��� � � ��2�/

>+.)4 �� �� ��� � � ��2�/

���������� 03�����9�"������ 555������������ ����� 3�� 513

�=����� 51������� /�� ��2� �5�� �53

���4� ��0������ ��� ��� ��2�����-

����������� 5�2������� 513����� 50�� 2/0������� /2

������� ��� ��5� ��1� �52� �51��10� �11

Page 441: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ���

�������� ��> � ������ � 5�>��:0� �3�� �30

����� ����� 25� ::���� 23��� ������ 23� �� ��� ����� 550�7 ����� 2�/+<)�$��� �� �� ��� � ��

�� 2�/������ 2�/+99�9 �� �� ��� � � ��

2�/� � �

���� ����� ���������� �50��2/

� ��@� �5:���� /:� 5/����� ��� 513���� /�� ��2� ��3� 513� 2��

�=����� �50�" ������ �50�" � ����� �2�

���4� ��3� 513� ���� �5�!�52������� ��0� � �� ��#���� �5�� �55��� �52

����� 513���� ���

�� ��� � ���� �/1���� ���

� ��� /: �� ����� ��2 ��� �� �"� � N���� ��3 ��� ���"� � N���� ��2

���� �� �� 51:���� �� ��� �5:�"���� 513� 510�"����� 22� ���=�� �� ����� �� ������� 2�� ���=�� �� �� ������

��� ����� �� ������� //0�=�� �� ���=� ������

���� �� � �� � ���� 5� ����� � �� � ����� �0

+,-(+< �� �� ��� � � ��2��

�=������������ 51�������� �01��� 51���� �50�� ���-� 2��-��� 5/

�=��������� ::�=���� ��������� 3��=� �� ������� 5�1!535

� � �� ������ ��������553

� �� ��� �� ���� 55:� ��� " ���� � 55�� 521�� �� ������� 55�� 55/��������� ��� " ���� � 55��

553��� ��� �� ���� 55:����� ��� �� ���� 55�� �� ��� �� ���� 55:� � �� ��� �� ���� 55������ 552

������ /12��� /1����4� �/3%�� ���� ��� �� /1�� /12������� /12%���� /1�

������� �� /15��� �� /1�� @� ��� /1�� �/3������� /03� /12� ����� /03� /15

Page 442: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � )����

� � ������ �� /12������ /1/� /13������� /1:���� ��� � ��� /1�� /12������ �� ��� /1�N ����� �/3���� ��� /1������� /03� /1�� /15� ��� ���� �� �//� ��� ��� �� �� /03� �/�� ��� �� ����� /0:� �//� ��� � ��� �� �/�C�U� /1�C=��� /1/ ����� ���� � ��� /13 ����� ��� �� � ��� /01�

��2 ����� �� ����� /01 ����� ���� � ��� /13 ����� ������ ��� /10 ��� ���� ������ �/3 ������� /1:������ /01� /10�� � ��� /1�3�C=�/� /1���� ���� /1/�=� /1� ����� /15 � @� ��� /1�UC0�=� /1/

6*��$ �� �� ��� � � ��2��

N�������� ��� �� ��5� 2�������� ������� ��2��� ��� ��� ����� �" ������ �50�� �" � ����� �2������ ��� �������� ��� ��2� ����� �"� �� ��3� �5:� �10�� �"� � � ���"� �� ��1

��������� �5������� ��� �5�� ������� �5� �� ������ �� C� �� �5: � ��@ � � �� �5:���"� �� ��2� �5�� �10C� �� �5:

N�" �� �� ��� 513����� /15���� & � ���� 50�� 505�� ����� 2�56�9 �� �� ��� � � �� 2�5�� ��� ���� 2�56�9+�4� �� �� ��� � ��

�� 2�5�� �� � ���� /03� /01� /11� �//������ /0:� �//���� 500�� ���� /1:���� /01� /10� ��� ����� 2�26)�&$��� �� �� ��� � ��

�� 2�2� ��� ����� :�� ����

����� ���� 513��%�� �� ��� �2� �� �� �� ��������� �2�

�� ���� ��������� 511� 2�5� 2�2�2�2� 2��

4�9.�4+ �� �� ��� � �� �� 2�2

��� �� � �� ������ //3� /�2�/��� /�1

��� �� � �� ���� 22���� � ������� �� ��� ������� �/������ ������ ��0� �3������� �� ������� �/

�� ����� ������� ��

Page 443: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ���

��� ����� �/� ������� �� ����

�� ����� �� ������� � �� ����� "��� �2��C0�� ���

���� �� � �������� �35� ������� �1�� �13������ 30

A��������� 52� 5�� 2������������ ��� 2���� �� ��� 53

�� �"� � N��� 2�2�� �"� � N�������� ��� ��

��3� �5�� �5:� �10�� � ���� �5��� � � �� ��#���� �5����� ��� ��0����� ��� ��0� �5�

4�� 513A�(A �� �� ��� � � ��

2������ ������ 2��

������ 2��������� 2�5

������� 2�2A�(A$�. �� �� ��� � ��

�� 2��4���� 50�4��-� �/2

� � �� ��#���� �5�A6*��$ �� �� ��� � � ��

2�2����� ���� ��1� �:24�����-� 50�

0� 5��+++ ���� �� ��2� �5:�� 2���6 �� �� ��� � � �� 2�������� � ��

��� � ��� ����� �5:�������� ���� � 2�:��� ���� ���� //������������

��� �� ������ //0������� ������ ���� �0� ������ 2����-*�+( �� �� ��� � � ��

2��������� 513��7 ����� 2����+<)�$ �� �� ��� � ��

�� 2���%�� �� ���� 5�������-� �5:�%=� 52��������

��� 2/�� ���-� 2/

�� �� ����� /10� �� � %��� �3� �� �� � ����� �3� �0�� ������ �3� ����� �� � �3

0��� ��3���� ��3���� �� 2�:

��������� 2�:������� 2�:�������� 2�:

��� ��� �� ����� ���� ��3

�� ������� � �3������� ��

�������� 5�� ��������� ����� ��0��������� ��0����2���4� ��0�����-������ ��0

Page 444: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � )����

������2���4� ��:� ��0������������ ��0

�� ������ //0���� ����� //1��� ������������ //0

�� �� ��� � � ��� 510��>� 511�((�4�� 511.���9E� 511.9+�8� 511&�$+��$+� 2��&��-*+,� 2��&��$9�*� 2��>&�*��� 2�/>+.)4� 2�/+<)�$���� 2�/+99�9� 2�/+,-(+<� 2��6*��$� 2��6�9� 2�56�9+�4�� 2�56)�&$���� 2�24�9.�4+� 2�2A�(A� 2��A�(A$�.� 2��A6*��$� 2�2�6� 2����-*�+(� 2����+<)�$� 2����$�+4� 2�:��$-�(� 2�:����� 510*+((+<� 2�:*+(($A��� 2�3*+,�&�*� 2�3*�($� 2�3*�&�*� 2�0�+�.+9� 2�0��>>+6� 2�0��>)*+� 2/����+� 2/�

�+,$� 2//��$� 2//�9� 2//-�9��� 2//-��+9� 2/�-9�&� 2/�-9�>� 2/29��4+� 2/29�$����*� 2/29+�>� 2/�9+$)9�� 2/�9$�.*+� 2/�� 2�:(�;+� 2/3(+9�+(� 2/3(+$� 2/3($�$(+<� 2/0($�-� 2/0($9��4� 2/0()�� 2/0$�.*+� 2/1� 2�:$�.*+9+6� 2/1$9E� 2/1)�+;�*� 2��)(+� 2��,�9� 2�/Y--�*E� 2�/

�� �� � ����� 51:�� �� � ���C���� 51��� �� �� ������� �� ���

����� 510��$�+4 �� �� ��� � � ��

2�:��$-�( �� �� ��� � � ��

2�:������������ ������ � �� ���

��������� /1�

�� ��� 51:� ��� �� ����� ��� 2�3

8��� ����� �0�

Page 445: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ��'

���9� �9���� :������4� 513*+((+< �� �� ��� � � ��

2�:*+(($A�� �� �� ��� � ��

�� 2�3*+,�&�* �� �� ��� � ��

�� 2�3��=���� ������� :

���� 3� �0��=������ ������ �� ������ 2�3��� ���%�-��� %��� 501��� ����% %��� 501��� ����%�-��� %��� 501��� ����%�� %��� 501��� ����%�� %��� 501���� �� 50���� � �� 51:�� ��� ��3�� ��� ��3�����

�� ����� ��3������������ 30����������� 0�*�($ �� �� ��� � � �� 2�3����� 2�3

������� ������ �� ������� �3����� ��*�&�* �� �� ��� � � ��

2�0����� ������ ��0� �3�� �03����� �� ������� �:� 2�0

�������� /1�=�� ��� 2�� �������� � ���� ��� /1� ���� ��� � ���� �� /1 ��� ����� �� � ��� ����� �=�� �� �� ������� //0

������� ��>� 511

������� ��-*�+(� 2��������� ,�9� 2�/������� ��:

/��0�������� /�/��J�� �1 ���� & � ���� 500������ � ��� �20�� ��

� ������ /�������� 5��� �

�� 513� � ���� ��� :

����� ��� &������� &��� �� 5�1!

535 ��� � �������� ����� 535!

51������ ���� � ������� �� ��� ������ ������������ ������ �

�� ��� ������ ���� ������� �/���9����� �5: ����%��� %��� 500� 501 ����%4 %��� 53�� 53:� 531� 50� ����%��� %��� 500� 501�����

����������� �)�� �� ���� & ����C���

(����� �� 2�3/����� �������� 51:��� ����� 51:��$*�.� �25�� ����� �/2

������ �/:" ���� �/:

� ���� �:� /���+�.+9 �� �� ��� � ��

�� 2�0�+�.+9 ��#���� 2�0

Page 446: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��� � )����

���� � ����� 500/=3G� ��:

���� �� � �������� �35��������� //���� �"��� �� � � �������� �0���>>+6 �� �� ��� � ��

�� 2�0������� ��#���� /�0 ������ 22� 23� :�� 2�0��>)*+ �� �� ��� � ��

�� 2/� ��������������� :���� ���� 25

�� ����� :������ ����� ����%���� 22� 23� �/��%��� ���=� 23���� ����� ��� � ��� ��� ���=�� �� //�������� ������ ���� �0��=���� ������ ���� �0���� ����� 03����� � ��� ������� ���� ���� �:����� 21����� �0������ �3�� ���� �C��� �1 ��� ���� ������ �� �������

�/ ��� ���� ����� �� ������� �� ��� �� �� 20���� �� �� ������ �� //0 �� �� �" ��������� 30�� � � � ���� ��� 22!2:

�� ��%4 %��� 50� ���4���%4 %��� 532 ������%4 %��� 532� ����� ��������� �01

� �� 2//���+ �� �� ��� � � ��

2/���� ����� 2�2���� ��� ���� 21����

"�� � ����� �/����� 20������ ���� � 2�:���� ��� ���� �0���� � ���� ��� �� /3� �� ��� �� �� 55

��%��� 52�%=� 52

�"��� ��� ��� � /1���"�B� ������ /2� �5���"�� 20� 2//�+,$ �� �� ��� � � ��

2//����� �5���� 2//��$ �� �� ��� � � �� 2// �� �� ������� /2 �� �� ���� �5: �� ���� ��� ���� ���� ��3 �� ���� ������ ��3 �� ���� � �� ������ ��5 �� ���� � ��� ��3 �� ���� �5:

��#���� 22� /�0�������� /�0

� �" ���%� %��� 501��� 513����� /15��������� 535!51�

���=M ��� ���� 532� 533����� �-� � ����� 53�!530��������� � ����� 531!50����M�����M�� � ����

531� 505� 50�

Page 447: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ��!

��� ����� 532��������M�� � ���� 533�

531!505=��/���3��� ��� �-� � ��

��� 53�� 53:� 530� 50/=V� �=�� ����%� � 532%�� � � �� 500!501��� �( ,� 501)��,� 501����"�� 501

;������ ��� ���� 532;����I$ ��� ���� 532���� �������� 50�!500 � ����� � ���� ����� 50����� �� ���� 50�

01�=�=C(I ��� ���� 53201�=�=C�� ��� ���� 53201�=�=CI$ ��� ���� 53201�=�=C@ ��� ���� 532�� ���� ��� ���"� 532/ M��� ��� ���� 532/ �=�� ����%� � 532� 531/ 01� ��� ���� 532/���G��� � ���� 50�� 500/������1 � � ���� 50�/���C���=���� �-� � ��

��� 533/���M�� � ���� 531/���M��W����� � ���� 531/Y�����W������ 531����-0�������� � ���� 531�

505����������M�� � ����

531� 50�� 502�����������M�� � ����

531� 50�C�����/��� �-� � ����

53�� 530������ � �� ��� 501!51�3���/��� �-� � ���� 53��

53:� 530� 531� 50:

��������M�� � ���� 531!50/

3���/��� �-� � ���� 53��530

���� ���M�� � ���� 531�502

� ����� 505!50:��������� 50�

������� ��� ��� 500��"����M�� � ���� 531�

50/!505� 50� ��� ��� ���� ;�� �� &D&&OO�

532��� �� ������� /�:��� �� �� 55

E� 5�� ���� 55� ��� 55

��������� �� � ������������

�:3� �03������� ��0� �3������� ��0� �3�� �03� �������� ������ �7 ��� �� ��� /2

��� 2//�9 �� �� ��� � � �� 2//� ���C���

�� ��� 51�� �

�� ������ ��� � ���� /03

������ �3��������� 25� 30

�=�� �� 30� �� ���� � ��� � �� 30����������� 30 �� ��� ��� �� � 30 ��� �� �������� 31

Page 448: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��" � )����

-�9�� �� �� ��� � � ��2//

�� ���� ���7 ��� ��� /0"��� � ���� ��� 2//

����� 5�� �/1�� ���� �3�� ������ 0������ /1���� � ��� �� ��3������ �2:� �21

�������� 5���V=33�D�=� �:�����C� ��0���� �� �3��,CW=3� ��3� ��0� �:���� � � ��� ��2!��:� ��1�

�:��� � �^� �2:� ��5� ����� �23� ��5� �00�C0�� �:�/=3G� �:��� �� �� ��� ��� ��3� �00�

�1�� �10 �� ���� ��� �=������� ��2������ �20� �21��01�3� ��0���D��13� ��0� �:5� �:13���01�� �:13�D�=� �:5�=V�� ��0� �3� ��%�� ��� ��� �00� �1��

�10"�� ���������� �32

������ ������� �3�� �0/� �� ����� ��� �0/�������� �05

���D��13

����C� 5�1���� �� � �� � ��� � �������

�35

����=� �:1� �00�� �������� 2�3������� ���� � 2�:-��+9 �� �� ��� � � ��

2/���"� �� 2/�� 2/2� ������� �50

N�������� ��� �� �5�� ������ /������ ��3� �5�� 502������ �//� 50�� 502� ���� ��:� ��3

����� �//��� ��� �/��� ����� /0:� /03� �//� ��� �=� ������� /1� ���� �/�� %���� /0:

����������� 50�� �� �� 7 � �� ///����� 22-9�& �� �� ��� � � ��

2/�� ���� ��

�� � �� ��#���� ������ �� ���� 551��%��� 2/����������� 11�=�� �� ������� 2/����� �� 1� /3�� ���� � "���� 2//������ ��� ����� �������� �� �� �3�� � � ���� ��� /2

� ������� ������ �������� �� 20-9�> �� �� ��� � � ��

2/2� �� ��� 2/2� �� �����

Page 449: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ��#

��� ��� 22� //3� /�2� /���/�1

�� ����� ��5"�� ���� � 5�1"�� � ������� �2�"�� ��� � � ��� �::

< �� ���� 52� 5�� 2������������ ��� 2���� �� ��� 53

7 �� ���� 3�7 ������ ���� ���� 0����� 50�� 51�� 2/07 ��� %���� /�17 ����� 2/2

���� //� /2 ���� N���� ��� ��

�� �� // ���� ��� �� ��� // ���� ��� �

��� ���� // ���� 2/29��4+ �� �� ��� � � ��

2/2 ������ 2/29�$����* �� �� ��� � ��

�� 2/2���� 2/�9+�> �� �� ��� � � ��

2/� ���������

�� ����� :����-���� /13������ /01� ��2 �����

���� � �� %���� /13��� ��� ��2���� /03�=� ������ � �� � ����� �0� �� ������ /13

���� � �� %���� /13 ������ �� %��� /10������� ��2� ��� � �� � ����� �3

�������� �3� /1�� /13� 50�C��C�2�� ��5������� �0� �/1� 50�

��������� �0������� �3 ��� ��� 3�

�������� 3� �� ����� 7 �� ���� 3������ 32

���� �� ������ 2�:C=;� 52� ��� ���

���� ��� 551 ������ ������ 5:� �2�� 2�������� ������ 20� 2/�9+$)9� �� �� ��� � � ��

2/�C�M� ��� �� %���� /2 ���� ����� �32 � ���� ��� � ��@ � � �� �5:� �53

���� ����� ���������� �50��2/

�+++ ���� �� �53�� ����� � ������� �50������ ���� ���� �53

������ 2/�� 2�:9$�.*+ �� �� ��� � � ��

2/�� 2�: ������ �/�� �/2� �/:� �5�

� ���� �� ��� �� 2:���� 2/3(�;+ �� �� ��� � � �� 2/3�������� /10�����

Page 450: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

��$ � )����

%���� /01� /10� ���� ���

������ ���� :��� ����� 2�2������� ��� ���� /0��7 ��� �� ���

&� ���� � �� �� ����7 ����

�� � � ���� ��/�� ������� 2/0

������� 513� 2��(+9�+( �� �� ��� � � ��

2/3(+$ �� �� ��� � � �� 2/3���� /1�����"�� �3:34���� �0� 1�

��#���� ���� ��� ����� //��4��

� ���� ��� � ���� /0 ��� ��� � ���� /3

����� C� �� �5:

������%���� ����� 2�5�� ���-

�=����� 2�(��� ��� �� �0����"� � N�������� ��� ��

��2� �5�� �10��� ��� ��� ������� ��� �������� ��� ��2� ���

��� ������������ ��2 �� ����� ��2

����� 2�2�� ��� 0������� �������� ������� � "� ������ �

($�$(+< �� �� ��� � �� �� 2/0

����� 50�� 2/0($�- �� �� ��� � � �� 2/0���� ���� 502($9��4 �� �� ��� � � ��

2/0� ���� 2/0

���� �� � �=� ������� 5��� ���� 5� ����� � �� � ����� �3

� ���� ���� �0������� 5133� � ��3�� � ��3()� �� �� ��� � � �� 2/0� ��� 2/0

�� ����� ��3� �� �����

�������� ���� ���� ��3�����

��� ��� 535

����� 2�:$�.*+ �� �� ��� � � ��

2/1� 2�:���� ��� ����� 2/1$�.*+9+6 �� �� ��� � ��

�� 2/1������ 2/1� ���� �� �0� �/1�4�� ������ 20����� �/������ �30

$ ���� �0������ �3� 50� ���� ��� ����� �0/$ ��� ������ �0���-� �5�� 2/1$9E �� �� ��� � � �� 2/1���

Page 451: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

)���� � ���

��� �� 32�-��� 510

�=����� 5/�-�� ��4� 2�����

�� ��� ���� :��������� �3� 5�� ��/��%�� �"� 5/� 5�� �� ���� 550������� ��1� � ��� 5�

�����-� /� � @� �� %���� /1���������� �5:)�+;�* �� �� ��� � � ��

2�� ���� ��� �=� ������� ��1� 2�� ��� � ��� �� ��� // ��� � ���� ��� ��� ��

� � //������ �3���� 2:� /�5� 2��)(+ �� �� ��� � � �� 2�� �� �� � �3� 5� �� �� ����� 51:���� ������� ��������� 2/

�� �������=�� �� ��� ������ //0������� ��� �/��������� ����=������ ������� 2�3������ /1� �:� 2�0����� ��� : �������� �/ ����� ��� 3

���� %����� �0:;��� �� �/2� �/:

���� �/:

" ��� �/:�� ���

������� "� ������ ������������ ����� � "� ������ �

"� ������������� �� ������� �� ����� ����� �� ��� ����� �

" ���� � 55�� ���� 55�� 521��������� ���� 55�� 553

2�����-���� �//2������� /03� �/�2��������� �/�2������� �/3� 50�� 505

"��� 2�/,�9 �� �� ��� � � �� 2�/

C� �N�������� �� �������

�5:��� ��� �5:

Y--�*E �� �� ��� � � ��2�/

Page 452: Maple Advanced Programming Guide Maple Advanced Programming Guide M. B. Monagan K. O. Geddes K. M. Heal G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco Maplesoft, a division of Waterloo

�� � )����


Recommended