module trigsimp; % User controlled simplification
% of trigonometric expressions.
% Authors: Wolfram Koepf, Andreas Bernig, Herbert Melenk
% Version 1.0 April 1995
% Bugfix Dependent arguments 6.6.96 Harald Boeing
% Revised by Francis J. Wright <F.J.Wright@Maths.QMW.ac.uk>
% Version 2.0, 29 June 1998
% My primariy motivation was for use with the ODESolve package. I
% have not made any changes to the main algorithms, but I have
% re-implemented the code making greater use of symbolic mode, and I
% have made changes to some of the sub-algorithms. The revised
% version runs the test file (which I have not changed) almost 25%
% faster in my tests, for which I used the CSL development system
% (under Windows 95). I have also fixed a few minor bugs (one of
% which was visible in the test file). I hope that the result is a
% little more robust and will be easier to maintain.
% I have changed the definitions of a number of internal procedures,
% and removed others. Fewer internal procedures now have
% algebraic-mode interfaces. TrigSimp appears not to be used in any
% other package, but until I am sure that my revisions are correct and
% do not upset any other packages I am preserving the previous version
% in files whose names begin with `o' (for old).
% Version 2.1, 17 January 1999
% Tidied the TrigSimp code. Fixed bug in handling of trig arguments.
% Added option to specify additional trig arguments, which are treated
% as if they appeared as arguments in the trig expression to be
% simplified. Added options tan and tanh, to convert output to these
% forms as far as possible; the remaining trig functions will be as
% specified by the other optional arguments.
% Revised trigfactorize to support the new factorizer interface. It
% now respects the switch nopowers, and uses the power form
% internally, which should be more efficient.
!#if (memq 'psl lispsystem!*)
flag('(trigsmp1),'lap);
!#endif
create!-package('(trigsimp trigsmp1 trigsmp2), nil);
endmodule;
end;