Domain, Range and Codomain

doman and range graph

In its simplest form the domain is all the values that go into a function, and the range is all the values that come out.

But in fact they are very important in defining a function. Read on!

Please read What is a Function? first.


A function relates an input to an output:


Example: this tree grows 20 cm every year, so the height of the tree is related to its age using the function h:

h(age) = age × 20

So, if the age is 10 years, the height is h(10) = 200 cm

Saying "h(10) = 200" is like saying 10 is related to 200. Or 10 → 200

Input and Output

But not all values may work!

So we need to say all the values that can go into and come out of a function.

This is best done using Sets ...

A set is a collection of things, such as numbers.

Here are some examples:

various real numbers

Set of even numbers: {..., -4, -2, 0, 2, 4, ...}
Set of odd numbers: {..., -3, -1, 1, 3, ...}
Set of prime numbers: {2, 3, 5, 7, 11, 13, 17, ...}
Positive multiples of 3 that are less than 10: {3, 6, 9}

This is best done using Sets ...

In fact, a function is defined in terms of sets:

Formal Definition of a Function

A function relates each element of a set
with exactly one element of another set
(possibly the same set).

function sets X to Y

Domain, Codomain and Range

There are special names for what can go into, and what can come out of a function:

yes What can go into a function is called the Domain
yes What may possibly come out of a function is called the Codomain
yes What actually comes out of a function is called the Range

Domain, Range and Codomain for x to 2x+1


• The set "A" is the Domain,

• The set "B" is the Codomain,

• And the set of elements that get pointed to in B (the actual values produced by the function) are the Range, also called the Image.

And we have:

  • Domain: {1, 2, 3, 4}
  • Codomain: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
  • Range: {3, 5, 7, 9}

Part of the Function

Now, what comes out (the Range) depends on what we put in (the Domain) ...

... but WE can define the Domain!

In fact the Domain is an essential part of the function. Change the Domain and we have a different function.

Example: a simple function like f(x) = x2 can have the domain (what goes in) of just the counting numbers {1,2,3,...}, and the range will then be the set {1,4,9,...}

Domain to Range f(x) = x^2

And another function g(x) = x2 can have the domain of integers {...,-3,-2,-1,0,1,2,3,...}, in which case the range is the set {0,1,4,9,...}

Domain to Range g(x) = x^2


Even though both functions take the input and square it, they have a different set of inputs, and so give a different set of outputs.

In this case the range of g(x) also includes 0.

pencil paper

Also they will have different properties.

For example f(x) always gives a unique answer, but g(x) can give the same answer with two different inputs (such as g(-2)=4, and also g(2)=4)

So, the domain is an essential part of the function.

Does Every Function Have a Domain?

Yes, but in simpler mathematics we never notice this, because the domain is assumed:

But in more advanced work we need to be more careful!

Codomain vs Range

The Codomain and Range are both on the output side, but are subtly different.

The Codomain is the set of values that could possibly come out. The Codomain is actually part of the definition of the function.

And The Range is the set of values that actually do come out.

Example: we can define a function f(x)=2x with a domain and codomain of integers (because we say so).

But by thinking about it we can see that the range (actual output values) is just the even integers.

So the codomain is integers (we defined it that way), but the range is even integers.

The Range is a subset of the Codomain.

Why both? Well, sometimes we don't know the exact range (because the function may be complicated or not fully known), but we know the set it lies in (such as integers or reals). So we define the codomain and continue on.

The Importance of Codomain

Let me ask you a question: Is square root a function?

If we say the codomain (the possible outputs) is the set of real numbers, then square root is not a function! ... is that a surprise?

The reason is that there could be two answers for one input, for example f(9) = 3 or -3

A function must be single valued. It cannot give back 2 or more results for the same input. So "f(9) = 3 or -3" is not right!

But it can be fixed by simply limiting the codomain to non-negative real numbers.

In fact, the radical symbol (like √x) always means the principal (positive) square root, so √x is a function because its codomain is correct.

So, what we choose for the codomain can actually affect whether something is a function or not.



Mathematicians don't like writing lots of words when a few symbols will do. So there are ways of saying "the domain is", "the codomain is", etc.

This is the neatest way I know:

f : N to N

this says that the function "f" has a domain of "N" (the natural numbers), and a codomain of "N" also.

f : x to x^2

and either of these say that the function "f" takes in "x" and returns "x2"

There is also:

Dom(f) or Dom f meaning "the domain of the function f"

Ran(f) or Ran f meaning "the range of the function f"

How to Specify Domains and Ranges

Learn how to specify Domains and Ranges at Set Builder Notation.


536, 537, 538, 539, 1174, 1175, 1176, 2341, 2342, 2343