is an option for Simplify and other functions which gives a function to rank the complexity of different forms of an expression.


  • With the default setting ComplexityFunction->Automatic, forms are ranked primarily according to their LeafCount, with corrections to treat integers with more digits as more complex.
  • Simplify[expr,ComplexityFunction->f] applies f to each intermediate expression generated by Simplify, treating the one which yields the smallest numerical value as simplest.


open allclose all

Basic Examples  (2)

The default ComplexityFunction counts the subexpressions and digits of integers:

LeafCount counts only the number of subexpressions:

By default this expression is not simplified:

This complexity function makes ChebyshevT more expensive than other functions:

Scope  (1)

With the default ComplexityFunction, Abs[x] is simpler than the FullForm of -x:

This complexity function counts characters in the InputForm of the expression:

Now -x is simpler than Abs[x]:

Properties & Relations  (1)

The automatic complexity function:

Wolfram Research (1996), ComplexityFunction, Wolfram Language function,


Wolfram Research (1996), ComplexityFunction, Wolfram Language function,


Wolfram Language. 1996. "ComplexityFunction." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (1996). ComplexityFunction. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_complexityfunction, author="Wolfram Research", title="{ComplexityFunction}", year="1996", howpublished="\url{}", note=[Accessed: 24-June-2024 ]}


@online{reference.wolfram_2024_complexityfunction, organization={Wolfram Research}, title={ComplexityFunction}, year={1996}, url={}, note=[Accessed: 24-June-2024 ]}