Like most computer algebra systems, Maxima supports a variety of ways of reorganizing symbolic algebraic expressions, such as
polynomial factorization,
polynomial greatest common divisor calculation, expansion, separation into real and imaginary parts, and transformation of trigonometric functions to exponential and vice versa. It has a variety of techniques for simplifying algebraic expressions involving trigonometric functions, roots, and exponential functions. It can calculate symbolic
antiderivatives ("indefinite integrals"),
definite integrals, and
limits. It can derive closed-form
series expansions as well as terms of
Taylor-Maclaurin-
Laurent series. It can perform matrix manipulations with symbolic entries. Maxima is a general-purpose system, and special-case calculations such as
factorization of large numbers, manipulation of extremely large
polynomials, etc. are sometimes better done in specialized systems.
Numeric calculations Maxima specializes in
symbolic operations, but it also offers numerical capabilities such as
arbitrary-precision integer,
rational number, and
floating-point numbers, limited only by space and time constraints.
Programming Maxima includes a complete programming language with
ALGOL-like syntax but
Lisp-like
semantics. It is written in
Common Lisp and can be accessed programmatically and extended, as the underlying Lisp can be called from Maxima. It uses
gnuplot for drawing. For calculations using floating point and arrays heavily, Maxima has translators from the Maxima language to other programming languages (notably
Fortran), which may execute more efficiently. ==Interfaces==