In mathematics, the **domain** of a function is the set of inputs accepted by the function. It is sometimes denoted by or , where *f* is the function. In layman's terms, the domain of a function can generally be thought of as "what x can be".^{[1]}

More precisely, given a function , the domain of *f* is *X*. In modern mathematical language, the domain is part of the definition of a function rather than a property of it.

In the special case that *X* and *Y* are both subsets of , the function *f* can be graphed in the Cartesian coordinate system. In this case, the domain is represented on the *x*-axis of the graph, as the projection of the graph of the function onto the *x*-axis.

For a function , the set *Y* is called the *codomain*, and the set of values attained by the function (which is a subset of *Y*) is called its *range* or *image*.

Any function can be restricted to a subset of its domain. The restriction of to , where , is written as .

If a real function f is given by a formula, it may be not defined for some values of the variable. In this case, it is a *partial function*, and the set of real numbers on which the formula can be evaluated to a real number is called the *natural domain* or *domain of definition* of f. In many contexts, a partial function is called simply a *function*, and its natural domain is called simply its *domain*.

- The function defined by cannot be evaluated at 0. Therefore the natural domain of is the set of real numbers excluding 0, which can be denoted by or .
- The piecewise function defined by has as its natural domain the set of real numbers.
- The square root function has as its natural domain the set of non-negative real numbers, which can be denoted by , the interval , or .
- The tangent function, denoted , has as its natural domain the set of all real numbers which are not of the form for some integer , which can be written as .

The term *domain* is also commonly used in a different sense in mathematical analysis: a *domain* is a non-empty connected open set in a topological space. In particular, in real and complex analysis, a *domain* is a non-empty connected open subset of the real coordinate space or the complex coordinate space

Sometimes such a domain is used as the domain of a function, although functions may be defined on more general sets. The two concepts are sometimes conflated as in, for example, the study of partial differential equations: in that case, a *domain* is the open connected subset of where a problem is posed, making it both an analysis-style domain and also the domain of the unknown function(s) sought.

For example, it is sometimes convenient in set theory to permit the domain of a function to be a proper class X, in which case there is formally no such thing as a triple (*X*, *Y*, *G*). With such a definition, functions do not have a domain, although some authors still use it informally after introducing a function in the form *f*: *X* → *Y*.^{[2]}