Clifford algebras have broad applications in science and engineering. The use of Clifford algebras can be further promoted in these fields by availability of computational tools that automate tedious routine calculations. We offer an extensive demonstration of the applications of Clifford algebras in electromagnetism using the geometric algebra G 3 ≡ Cℓ3,0 as a computational model in the Maxima computer algebra system. We compare the geometric algebra-based approach with conventional symbolic tensor calculations supported by Maxima, based on the itensor package. The Clifford algebra functionality of Maxima is distributed as two new packages called clifford -for basic simplification of Clifford products, outer products, scalar products and inverses; and cliffordan -for applications of geometric calculus. 1 2 DIMITER PRODANOV 1 AND VIKTOR T. TOTH 2for Computer Science during the years 1969-1972. Maxima is written entirely in Lisp and is distributed under open source license 1 . Maxima has its own programming language, which is particularly well-suited for handling symbolical mathematical expressions or mixed numerical-symbolical expressions. In addition, the system supports 64-bit precision floating point and arbitrary precision arithmetics. Maxima programs can be automatically translated and compiled to Lisp within the program environment itself. Third-party Lisp programs can be also loaded and accessed from within the system. The system also offers the possibility of running batch unit tests.Maxima supports several primitive data types [11]: numbers (rational, float and arbitrary precision); strings and symbols. In addition there are compound data types, such as lists, arrays, matrices and structs. There are also special symbolic constants, such as the Boolean constants true and false or the complex imaginary unit %i.Several types of operators can be defined in Maxima. An operator is a defined symbol that may be unary prefix, unary postfix, binary infix, n-ary matchfix, or nofix types. For example, the inner and outer products defined in clifford are of the binary infix type. The scripting language allows for defining new operators with specified precedence or redefining the precedence of existing operators. Maxima distinguishes between two forms of applications of operators -forms which are nouns and forms which are verbs. The difference is that the verb form of an operator evaluates its arguments and produces an output result, while the noun form appears as an inert symbol in an expression, without being executed. A verb form can be mutated into a noun form and vice-versa. This allows for context-dependent evaluation, which is especially suited for symbolic processing.Listing 1: Dot products and exponent simplification rules in clifford.if get('clifford,'version)=false then ( tellsimp(aa[kk].