Domain And Range Calculator

What inputs does your function accept and what outputs can it produce?

Enter a mathematical function and get its domain and range in interval notation, set notation, and plain English. Works with polynomials, rational functions, radicals, logarithms, and trigonometric functions.

Updated July 2026 · How this works

Example calculation — edit any field to use your own numbers

Worth knowing
How It Works
The formula, explained simply

Think of a function as a machine with an input slot and an output chute. The domain is the list of items the machine will accept without breaking. Drop in a negative number under a square root? The machine jams. Divide by zero? The machine catches fire. Domain analysis is nothing more than a systematic search for inputs that break the machine.

Range works the other direction: given only the items the machine accepts, what outputs can it actually produce? A square root machine always outputs a non-negative number, no matter what valid input you feed it. So even though the machine accepts any non-negative number, its output is also restricted to non-negative numbers. These two restrictions are independent and must be analyzed separately.

The notation system codifies these restrictions precisely. Interval notation like [3, +∞) communicates two things at once: the direction of the restriction and whether the boundary point is itself included. Practitioners prefer interval notation over inequality notation because it renders clearly in typeset mathematics and stacks well when unions are needed, such as (-∞, 2) ∪ (2, +∞) for a rational function with a hole at x = 2.

When To Use This
Right tool, right situation

Use domain and range analysis whenever you need to know whether a specific input is valid before computing. This comes up in software validation (checking that a user-entered value will not cause a division by zero or a square root of a negative number), in physics (identifying singularities or boundary conditions in a model), and in statistics (checking that a probability or log-likelihood function is defined at a proposed parameter value).

Domain and range analysis is also the right tool when you need to know the full set of possible outputs from a function before you run it. If you are designing a control system and need to guarantee the output stays within a safe range, the mathematical range of the transfer function tells you exactly what that envelope looks like without having to simulate every input.

This tool is not appropriate when your function involves piecewise definitions, implicit functions (where y appears on both sides of the equation), or parametric curves. Those require case-by-case analysis that depends on specific domain intervals and cannot be summarized by the coefficient-based approach used here. For multivariate functions, domain analysis requires checking all variable combinations, which is also outside the scope of this tool.

Common Mistakes
Why results sometimes look wrong

Confusing the domain restriction with the exclusion point direction. For a logarithm log(ax + b) with a negative leading coefficient, the argument ax + b must be positive, which means x must be less than -b/a, not greater. Students often automatically write x > boundary without checking whether a is positive or negative. The sign of a determines which side of the boundary is valid.

Assuming the range of a square root always starts at zero. The vertical shift c changes where the range begins. √(2x - 6) + 4 has domain [3, +∞) but range [4, +∞) because the output of the radical itself is always at least zero, and then 4 is added. Ignoring c produces a correct domain but a wrong range, which is the half-correct answer that costs points on exams.

Missing the horizontal asymptote exclusion from the range of rational functions. Students find the vertical asymptote (domain exclusion) correctly, then write the range as all real numbers. But the horizontal asymptote k is never reached by the function output, so k must also be excluded from the range. The range of a/(bx + c) + k is always (-∞, k) ∪ (k, +∞), not all of the real numbers.

The Math
Worked examples and deeper derivation

For a square root function f(x) = √(ax + b) + c, the domain condition is ax + b ≥ 0. Solving for x: if a > 0, then x ≥ -b/a, giving domain [-b/a, +∞). If a < 0, then dividing by a flips the inequality, giving x ≤ -b/a and domain (-∞, -b/a]. The range always starts at c because √(0) = 0, so the minimum output is 0 + c = c.

For a rational function f(x) = a/(bx + c) + k, the domain excludes x = -c/b (where the denominator is zero). As x approaches -c/b from either side, the function grows without bound, creating a vertical asymptote. The horizontal asymptote k is approached as x approaches ±∞, so k is excluded from the range. This gives range (-∞, k) ∪ (k, +∞).

For an even-degree polynomial f(x) = ax² + bx + c with a > 0, the vertex is at x = -b/(2a) and the minimum y value is c - b²/(4a). This formula comes from completing the square: rewriting ax² + bx + c as a(x + b/(2a))² + (c - b²/(4a)) shows the vertex form directly. The range is then [c - b²/(4a), +∞). For a < 0, the parabola flips and the range is (-∞, c - b²/(4a)].

Student checking a homework problem on a radical function
Function type: Square Root, A = 3, B = -9, C = 2
The critical point where the radicand equals zero is x = 3, so the domain is [3, +∞). The square root is always non-negative, and the vertical shift pushes the minimum output to 2, giving a range of [2, +∞). This tells you that values like x = 1 or x = 2 produce undefined (non-real) outputs, which is the kind of check homework problems are testing.
Engineer validating input bounds for a physical model using a rational function
Function type: Rational, A = 1, B = -5, C = 0
The denominator is zero at x = 5, so the domain excludes that single point: (-∞, 5) ∪ (5, +∞). If this function models a physical quantity, it means the system is undefined at exactly x = 5 (perhaps a resonance point or a singularity). The engineer now knows to avoid inputs near that boundary and can set a safe operating range accordingly.
Teacher preparing examples of downward-opening parabolas for a class
Function type: Polynomial, Degree = 2, A = -2, B = 4, C = 6
The vertex y-value is 6 - (16 / (-8)) = 6 + 2 = 8, so the range is (-∞, 8]. The domain is all real numbers because any x can be squared. The surprising part for most students is that even though you can square any number, the downward parabola imposes a strict ceiling on output values. This example shows students why domain and range are independent questions.
Expert Unlock
The thing most explanations skip

The standard analysis used here assumes the function is defined over the real numbers, which hides a structural limitation: functions defined on restricted natural domains (non-negative integers, closed intervals given by a physical constraint) may have domains that are subsets of what this tool reports. More precisely, the range computed for a polynomial is the range of the continuous extension, which may not match the range over an integer-only domain. When the input variable represents a count, a discrete quantity, or a time index, the continuous range is an upper bound on reachable outputs, not the exact set.

What do the domain and range intervals actually tell you?

What is the difference between domain and range?
The domain is the set of all x values (inputs) that produce a defined, real output. The range is the set of all y values (outputs) the function can actually produce. For example, a square root function with argument 2x - 6 has domain [3, +∞) because plugging in anything less than 3 gives a negative number under the radical, which has no real square root. The range then depends on what outputs those valid inputs produce.
Why does interval notation use brackets sometimes and parentheses other times?
Square brackets [ ] mean the endpoint is included in the domain or range. Parentheses ( ) mean the endpoint is excluded. A square root function like √(x - 3) includes x = 3 in the domain (because √0 = 0 is defined), so you write [3, +∞). A logarithm like log(x - 3) excludes x = 3 because log(0) is undefined, so you write (3, +∞). Infinity always uses a parenthesis because you cannot actually reach it.
How do I find the domain of a rational function?
Set the denominator equal to zero and solve for x. Those x values are excluded from the domain, and every other real number is allowed. For example, if the denominator is 2x - 6, setting 2x - 6 = 0 gives x = 3, so the domain is (-∞, 3) ∪ (3, +∞). The horizontal asymptote (the y value the function approaches but never reaches) is then excluded from the range.

Need something this doesn't cover?

Suggest a tool — we'll build it →