Visual Tools
Calculators
Tables
Mathematical Keyboard
Converters
Other Tools


Range of a Function


Quadraticg(x) = (x)²
×
880 × 460
Rangex ≥ 0
-10-8-6-4-20246810
Test point
x = 1
✓ achievablesome x gives g(x) = 1
Applieda=1k=0b=1h=0a, k affect range







Getting Started with the Visualizer

Open the page and three panels appear. On the left is the function picker with eleven base functions grouped by the shape of their range — all real numbers, bounded below, bounded between 1-1 and 11, or all reals with one excluded value. In the center is the plot panel with the function g(x)g(x) in blue and a colored band drawn directly on the y-axis showing the range. On the right is the info panel with two tabs.

Below the plot sits the range card — a colored block displaying the range in interval notation, the same range drawn on a horizontal 1D number line, and a draggable test point slider that lets you check whether a specific y-value is achievable as an output of gg.

The page launches with the quadratic family. Its range is y0y \geq 0 — the parabola never produces negative values. The y-axis band starts at y=0y = 0 and extends upward; the test point at y=1y = 1 shows a green "achievable" badge.

Picking a Function

The picker groups eleven base functions by the shape of their range rather than by algebraic type — a deliberate choice that makes the visualizer act as a reference for range classification:

Unrestricted (R\mathbb{R}) — Identity, Linear (2x), Cubic, Logarithmic. All reach every real number as an output.
Bounded belowQuadratic, Absolute, Square root (range [0,)[0, \infty)), Exponential (range (0,)(0, \infty)). Their outputs have a floor.
Bounded [1,1][-1, 1]Sine, Cosine. Periodic functions with a hard ceiling and floor.
Excluded pointReciprocal. Reaches every real number except 00 — its horizontal asymptote.

Notice that logarithmic appears here under "Unrestricted" even though its *domain* is restricted to positive numbers. Domain and range are independent: a function can have a restricted domain and still produce every real number as output.

Click any entry to switch. Transformation parameters reset to defaults on every switch.

Why Only aa and kk Change the Range

Below the family list, four sliders apply the standard affine transformations:

aavertical scale. Multiplies every output by aa.
kkvertical shift. Adds kk to every output.
bbhorizontal scale. Multiplies the input by bb.
hhhorizontal shift. Subtracts hh from the input.

A small "affects range" badge appears on the labels for aa and kk but not on bb or hh. The reason is structural. The transformed function is g(x)=af(b(xh))+kg(x) = a \cdot f(b(x - h)) + k. Reading right to left along the formula: bb and hh act on the input *before* ff runs, so they change *which* x produces each output — but the set of outputs ff can produce stays the same. Then aa scales those outputs and kk shifts them.

Drag bb or hh as wildly as you want — the y-axis band does not move. Drag aa or kk and the band immediately rescales and shifts. The visualizer makes this asymmetry visible in real time.

Reading the Y-Axis Highlight and Range Bar

The range is shown in two coordinated places:

On the y-axis of the main plot — a colored band traces the interval of achievable outputs directly on the axis, in the same coordinate system as the function. You can see which heights the blue curve actually reaches and which it skips. Open and closed endpoints render as hollow and filled circles, respectively; infinite extents render as arrows.

On a horizontal number line below the plot — the same range interval is drawn flat, like a one-dimensional version of the y-axis. This rotates the y-axis 90 degrees so it sits in the more familiar number-line orientation and gives it more room for tick marks and labels.

The two views always agree. The number-line version is easier to read at a glance and easier to compare across screenshots; the y-axis version makes the geometric relationship between the function and its range unmistakable.

For excluded ranges like the reciprocal, both views mark the excluded value with a red ×, showing the hole in the range visually.

Probing with the Test Point Slider

Inside the range card sits a test point slider labeled "x = ..." (despite the label, it represents a y-value being tested as a potential output). Drag it from 10-10 to +10+10 along the range bar. As you move:

• The slider's thumb on the number line jumps to that position, with a vertical marker and a filled circle.
• A horizontal dashed reference line appears in the main plot at the corresponding yy value, drawn in the highlight color when the value is achievable and in red when it is not.
• Below the slider, an "achievable" or "not achievable" badge updates with the result: green for in-range, red for out-of-range.

The achievability check answers the question that defines the range itself: *does there exist any input xx such that g(x)g(x) equals this yy?* When the test point sits inside the colored band, the answer is yes — and the dashed line will cross the curve somewhere. Drag it outside the band, and the dashed line never touches the curve.

The Range Card and Applied Chips

At the top of the range card, the range in interval notation is displayed as a monospace string — e.g., y0y \geq 0, 1y1-1 \leq y \leq 1, y0y \neq 0. This is the same string you would write on a homework assignment.

Below the plot, an Applied strip shows the four transformation parameter chips with their current values. The four chips are deliberately dimmed compared to other visualizers in the series; a separator and an "a, k affect range" callout to the right reinforce which parameters actually matter for this tool's question. Even though bb and hh are shown, they are visually de-emphasized — a visual reminder that they could be at any value and the range would still be the same.

The card's border color, header text, and accent badges all derive from the chosen highlight color, so the entire range UI reads as one coordinated block.

Customizing the Highlight Color

Under the family picker and parameter sliders, an Appearance section contains a single color swatch labeled "Range color". Click it to open a native color picker and choose any color you want for the range highlight, the range card chrome, the number-line band, and the dashed reference line.

The color cascades through several visual elements simultaneously:

• Y-axis highlight band in the plot
• Number-line fill below the plot
• Dashed horizontal reference line when the test point is achievable
• Range card border, header text, and "achievable" badge
• "Affects range" badges on the relevant parameter sliders

Changing the color is useful for matching the visualizer to a presentation slide deck or a printed worksheet, or simply for personal preference. The Reset button next to the section header returns the color to the default blue.

What Is the Range of a Function?

The range of a function is the set of all outputs it can produce — equivalently, the image of the domain under the function. If yy is in the range, then there exists at least one xx such that f(x)=yf(x) = y. If yy is not in the range, no input produces it.

Different function families have qualitatively different ranges:

x2x^2 — always non-negative; the range is [0,)[0, \infty)
exe^x — always strictly positive; the range is (0,)(0, \infty)
sin(x)\sin(x) and cos(x)\cos(x) — always between 1-1 and 11 inclusive
1/x1/x — reaches every real number except 00
x3x^3, lnx\ln x, identity — reach every real number

Range is independent of domain. A function can have a tiny domain and reach every real number, or have an enormous domain and stay confined to a small interval. The natural logarithm illustrates both points at once: domain restricted to x>0x > 0, range equal to all of R\mathbb{R}.

The range together with the domain fully characterizes the input-output behavior of a function. Together they answer "what goes in" and "what can come out."

Open vs Closed Endpoints and Excluded Values

Three subtle distinctions show up in the visualizer's range bar:

Closed endpoint (filled circle) — the boundary value is *reached*. Square root has range y0y \geq 0 with a closed endpoint at 00, because 0=0\sqrt{0} = 0 exactly. The range bar shows a filled dot.

Open endpoint (hollow circle) — the boundary value is *approached* but never reached. Exponential has range y>0y > 0 with an open endpoint at 00, because exe^x gets arbitrarily close to 00 as xx \to -\infty but never equals 00. The range bar shows a hollow dot.

Excluded value (red ×) — the function reaches every value except one. Reciprocal has range y0y \neq 0 — every nonzero real number is hit somewhere on the curve, but 00 is the horizontal asymptote, never touched. The range bar shows a full fill broken by a small red × at the excluded value.

The distinction between open and closed endpoints is genuinely important in calculus and analysis: it determines whether the function attains its extreme values, whether continuity holds at the boundary, and whether a maximum or minimum exists.

Ranges Covering All of the Reals

Four functions in the picker produce every real number as an output: the identity, the scaled linear, the cubic, and — the surprise of the group — the logarithm. Their range bar is one unbroken green band up the whole y-axis.

The logarithm's membership is the teaching moment: a function with a heavily *restricted domain* can still have a *complete range*. Domain and range restrictions are independent, and this group proves it in one glance.

The Identity Function

The identity outputs exactly what it receives, so its range is all of R\mathbb{R} — every height on the y-axis gets hit exactly once.
-10-5510-55f(x) = x
f(x) = x, range frozen

One unbroken green band up the y-axis: every height is an output, each hit exactly once.

The green band runs the whole axis with nothing to mark. As with the domain tool, the identity is the control case: switch here and every red stripe vanishes.

One nuance worth a look: the identity hits each output exactly once. The cubic also covers everything, but with a different rhythm — the comparison shows that "range = ℝ" says nothing about *how often* each value is reached.

The Scaled Linear Function

Doubling still reaches every height: f(x)=2xf(x) = 2x has range R\mathbb{R}, just traversed twice as fast.
-10-5510-55f(x) = 2x
f(x) = 2x, range frozen

Full green band: doubling covers every output, just twice as fast.

Every nonzero linear function is onto the reals — steepness changes the pace, never the coverage. Only the degenerate a=0a = 0 collapses the range to a single value, which you can watch happen by dragging the vertical-scale slider through zero.

That collapse is the range tool's most dramatic slider moment: an entire axis of outputs shrinking to one green dot at y=ky = k.

The Cubic Function

Odd powers are onto: x3x^3 produces every real output, from arbitrarily negative to arbitrarily positive.
-10-5510-55f(x) = x³
f(x) = x³, range frozen

Odd power, full coverage: from arbitrarily deep to arbitrarily high, nothing on the y-axis is missed.

The cubic pairs with the quadratic as the parity lesson of this page: an odd power covers the whole y-axis, an even power only half of it. One sign change in the exponent, half the range gone.

Full range plus full domain also makes the cubic invertible everywhere — the cube root needs no restriction, unlike the square root story on the domain page.

The Logarithmic Function

The logarithm climbs without bound and dives without bound: its range is all of R\mathbb{R}, despite a domain of only half the line.
-10-5510-55f(x) = ln(x)
f(x) = ln(x), range frozen

The curve lives only on the right half-plane, yet the green band covers the entire y-axis — restricted domain, complete range.

Slow growth is still unbounded growth — ln(x)\ln(x) eventually exceeds any height, and near zero it plunges below any depth. The green band covers the entire y-axis while the curve itself lives only on the right half-plane.

This is the mirror image of its inverse: the exponential has full domain and restricted range; the logarithm has restricted domain and full range. Inversion swaps the two restrictions — the cleanest statement of the domain-range duality this pair of tools is built around.

Ranges Bounded Below

Four functions never output anything below a floor: the quadratic, the absolute value, and the square root all bottom out at 00 and include it — while the exponential presses toward 00 forever without ever reaching it.

Same floor, two different relationships with it: three closed dots and one open circle. Whether the boundary output is *attained* is exactly the open-versus-closed distinction, now on the y-axis.

The Quadratic Function

Squares are never negative: the parabola's outputs fill [0,)[0, \infty), with the floor value 00 genuinely attained at the vertex.
-10-5510-55f(x) = x²
f(x) = x², range frozen

Green from zero upward with a filled dot at the floor: 0 is genuinely attained at the vertex; below it, red.

The filled green dot at y=0y = 0 records the attainment: f(0)=0f(0) = 0 is a real output, produced by a real input. Everything below the floor is red — no input, however clever, squares to a negative.

Every output above the floor is hit twice (xx and x-x), the vertex value once. That double-covering is why inverting the parabola requires choosing a branch.

Drag aa negative and the whole picture flips: range (,0](-\infty, 0], the floor becoming a ceiling — the range rule y=aL+ky = aL + k acting live.

The Absolute Value Function

The V outputs distances, and distances start at zero: range [0,)[0, \infty), floor attained at the corner.
-10-5510-55f(x) = |x|
f(x) = |x|, range frozen

The same range as the parabola — [0, ∞), floor attained at the corner — from a different shape.

Identical range to the quadratic — same closed floor, same double-covering of positive outputs — from a completely different shape. Range, like domain, is a coarse fingerprint: it cannot tell the parabola from the V.

What distinguishes them is *how* the floor is touched: the parabola kisses it smoothly, the V hits it at a corner. The range bar sees only the same green dot.

The Square Root Function

The square root returns the non-negative root only: range [0,)[0, \infty), starting from the attained output 0=0\sqrt{0} = 0.
-10-5510-55f(x) = √x
f(x) = √x, range frozen

Range [0, ∞), floor attained at the origin — and each output reached exactly once.

Here range and domain have the same shape — [0,)[0, \infty) both ways — a coincidence peculiar to this function among the picker's eleven. The curve starts at the origin and covers each output exactly once, making it invertible without any branch-picking.

The single-covering is the point of contrast with its siblings in the bounded-below group: same green half-axis, but reached once per value rather than twice.

The Exponential Function

The exponential outputs only positive values — and the boundary 00 is approached forever but never produced: range (0,)(0, \infty), open at the floor.
-10-5510-55f(x) = eˣ
f(x) = eˣ, range frozen

Green above zero with an OPEN circle at the floor: the curve presses toward y = 0 forever without producing it.

The open circle at y=0y = 0 is the range-side signature of a horizontal asymptote: the curve flattens toward the floor as xx \to -\infty, yet ex=0e^x = 0 has no solution. An asymptote is precisely an output the function approaches but never attains.

Compare the quadratic's filled dot: same-looking floor, opposite answer to "is the floor a real output?" — the whole open/closed lesson in two markers.

Shift kk upward and the excluded floor rides with it: range (k,)(k, \infty), the asymptote always exactly at the open circle.

Ranges Bounded on Both Sides

Sine and cosine are the picker's only two-sided prisoners: every output lands in [1,1][-1, 1], with both walls included. Green band from 1-1 to 11, closed dots at both ends, red everywhere else.

A bounded range is what makes amplitude a meaningful idea — and it is why these two functions model oscillation: outputs that can neither escape upward nor downward have nowhere to go but back and forth.

The Sine Function

Sine's outputs sweep [1,1][-1, 1] and touch both walls: sin(π/2)=1\sin(\pi/2) = 1 and sin(π/2)=1\sin(-\pi/2) = -1 are attained exactly, infinitely often.
-10-5510-55f(x) = sin(x)
f(x) = sin(x), range frozen

A green band from −1 to 1 with filled dots at both walls — the extremes are real outputs, hit once per period.

Both endpoint dots are filled — the extremes are genuine outputs, hit once per period — and every interior value is hit twice per period. Nothing outside the band is ever produced, however far xx travels.

Under the transformation asin(x)+ka \sin(x) + k the band becomes [ka,k+a][k - |a|, k + |a|]: amplitude is nothing more than the half-width of the range. Watching the green band stretch as you drag aa is the best definition of amplitude the tool can offer.

The Cosine Function

Cosine shares sine's prison exactly: range [1,1][-1, 1], both walls attained — only the *inputs* achieving each output differ.
-10-5510-55f(x) = cos(x)
f(x) = cos(x), range frozen

The identical band to sine : range cannot tell the two apart — the phase difference lives on the x-axis.

The range bar cannot distinguish sine from cosine at all — identical green band, identical closed dots. The phase shift between them lives entirely on the x-axis, invisible to any output-side measurement.

That invisibility is the deeper point: range collapses a function to the *set* of its outputs, forgetting when and how often each occurs. Two functions can be output-identical yet nowhere equal.

The Reciprocal and Its Missing Output

The reciprocal produces every real output except one: 1/x=01/x = 0 has no solution, so the range is R{0}\mathbb{R} \setminus \{0\} — a green axis with a single puncture.
-10-5510-55f(x) = 1/x
f(x) = 1/x, range frozen

Green in both directions with one puncture at y = 0: the single output no input can produce.

The open circle at y=0y = 0 is the output-side twin of the reciprocal's excluded input: this function misses exactly one value in each direction, and both misses trace back to the same fraction 1/x1/x never being zero and never accepting zero.

The missing output is again a horizontal asymptote wearing range clothing: both branches flatten toward y=0y = 0 without arriving, just like the exponential's floor — but here the asymptote is approached from *both* sides, puncturing the middle of the range rather than capping its end.

Shift kk and the puncture rides to y=ky = k: every transformed reciprocal misses exactly one output, always at its horizontal asymptote.