File SHARE;QUAL > contains MACSYMA functions for qualitative analysis of an expression, file QUAL DEMO contains a demonstration, and file QUAL OUT contains the output from executing the demo. Written by David R. Stoutemyer, login name STOUTE. Suggestions, together with successful or unsuccessful examples of its use will be gratefully acknowledged. To use the functions do ALLOC(2); BATCH(QUAL,>,SHARE); Top-level usage is of the form QUAL(, ); is any given expression. is a given indeterminate or list of indeterminates. If omitted, this argument defaults to all of the indeterminates in the first argument. QUAL returns a list of E-labels of displayed equations, each of the form = , where is one of the second-level function names below, and is the value returned by that function. These second-level functions may also be used directly. Usage is of the form REVELATION(, , ); BOUNDS(); SLOPES(, ); CURVATURE(, ); SYMMETRY(, ); PERIODS(, ); ZEROSANDPOLES(, ); STATIONARYPOINTS(, ); LIMITS(, ); , , and their defaults are as for QUAL. REVELATION automatically prints successive levels of the structure of its first argument. No printout occurs if exceeds the number of print characters of , and printout ceases when the output of a level exceeds print characters. Omitted trailing arguments have defaults: 200 for and 300 for . BOUNDS returns a list of two expressions which are respectively a lower bound and upper bound for the expression, computed by symbolic interval analysis with indeterminates treated as real variables. BOUNDS makes use of global bounds previously established for indeterminates by statements of the form ASSUME( ); where is an indeterminate; is one of <, <=, >=, or >; and is any expression, including MINF or INF for minus and plus infinity respectively. As a convenience, previously unestablished indeterminate bounds are globally set to MINF and INF respectively, when first needed, with a warning message. In practice, bounds other than numbers, MINF, and INF usually lead to messy results, especially for indeterminates that occur in products, quotients, or exponentiations. Note also that although interval analysis is relatively fast, it often does not give tight bounds when any indeterminate occurs more than once in an expression. SLOPES returns a list of items of the form (), one for each in . is DECREASING, NONINCREASING, CONSTANT, NONDECREASING, INCREASING, or UNKNOWN, according to how is determined to vary with . The method is symbolic interval analysis on the first derivatives; so as with BOUNDS, the result depends upon global bounds established by ASSUME, and the result may be weaker than necessary. CURVATURE returns STRICTLYCONCAVE, CONCAVE, CONCAVEANDCONVEX, CONVEX, STRICTLYCONVEX, NEITHERCONCAVENORCONVEX, or UNKNOWN, according to how expression> is determined to behave in the domain implied by previously ASSUMEd global bounds on the indeterminates. Interval analysis is used to test for definiteness or semidefiniteness of the Hessian matrix of second derivatives; so the result may be weaker than necessary. SYMMETRY returns a list of items of the form (), one for each in . is ODD, NONEVEN, NONODD, EVEN, NEITHER, or UNKNOWN, according to the determined symmetry of with respect to , with other variables arbitrary. PERIODS return a list of equations of the form PERIOD() = , according to the determined periodicity with respect to , while other variables are arbitrary. A risghthand side 0 means the first argument of PERIODS is independent of the corresponding variable; a righthand side INF means nonperiodic; and a righthand side UNKNOWN means periodicity could not be determined. ZEROSANDPOLES returns a list of the E-labels of two equations, of respective forms ZEROS = , POLES = , where the solutions of each equation in a list are where zeros or poles occur respectively. STATIONARYPOINTS returns a list of the E-labels of three equations, of respective forms STATIONARYPOINTS = , CORRESPONDING EXPRESSION VALUES = , CORRESPONDING TYPES = , Each list of equations gives the values of the variables for one stationary point, the corresponding expression gives the value of the first argument to STATIONARYPOINTS evaluated at the stationary point, and the corresponding type is one of MAXIMUM, NONMINIMUM, UNKNOWN, NONMAXIMUM, MINIMUM, SADDLE, or UNKNOWN. LIMITS returns a list of E-labels of equations of the form LIMITAS(,) = , where is an upper or lower bound established by ASSUME.