A half circle (semicircle) is a function, but only when it’s split horizontally into a top half or bottom half. A full circle is not a function because it assigns two y-values to most x-values. Once you take just the upper or lower portion, that problem disappears, and the semicircle passes the standard test for being a function.
Why a Full Circle Fails
A function has one rule: every input (x-value) produces exactly one output (y-value). The equation of a unit circle is x² + y² = 1, and if you pick almost any x-value along it, two points share that same x-coordinate, one above the x-axis and one below. At x = 0, for example, the circle includes both (0, 1) and (0, −1). A function can’t do that.
The quick way to check is the vertical line test. Imagine dragging a vertical line across the graph. If it ever crosses the curve in more than one place, the curve is not a function. A full circle fails immediately because vertical lines through its interior hit the curve twice.
How a Semicircle Becomes a Function
Starting from x² + y² = r², you can solve for y to get y = ±√(r² − x²). That ± symbol is the problem: it gives two outputs. Choose just the positive square root, and you get the top semicircle. Choose just the negative, and you get the bottom. Either choice produces exactly one y-value for each x-value, which is all a function requires.
For a unit circle (radius 1), the upper semicircle is written as f(x) = √(1 − x²) and the lower as f(x) = −√(1 − x²). Both pass the vertical line test. No vertical line crosses either curve more than once.
Domain and Range of a Semicircle Function
For a semicircle with radius r centered at the origin, the domain is [−r, r]. The function only exists where the expression under the square root is zero or positive, which limits x to values between −r and r. Outside that interval, the square root of a negative number isn’t defined in real numbers.
The range depends on which half you choose. The upper semicircle has a range of [0, r], since y starts at 0 on the endpoints and reaches r at the top. The lower semicircle has a range of [−r, 0]. As a concrete example, f(x) = √(9 − x²) represents the top half of a circle with radius 3. Its domain is [−3, 3] and its range is [0, 3], because the graph traces the upper arc of the circle x² + y² = 9.
Left and Right Semicircles Are Different
Splitting a circle into top and bottom halves works because each half assigns one y-value per x-value. But if you split a circle into left and right halves along a vertical line, neither half is a function of x. A right semicircle, for instance, would have two y-values for every x-value except at the rightmost edge. It would fail the vertical line test for the same reason a full circle does.
You could describe a left or right semicircle as a function of y instead of x (solving for x in terms of y), but when people ask whether “a semicircle is a function,” they nearly always mean a function of x, with horizontal and vertical axes in their usual roles.
Relation vs. Function
The full circle equation x² + y² = 1 is a relation, not a function. A relation is any rule that connects x-values and y-values, with no restriction on how many y-values each x can have. A function is a stricter category: a relation where each x maps to one and only one y. Every function is a relation, but not every relation is a function.
This distinction matters in algebra and calculus because functions have properties (like slopes, derivatives, and inverses) that depend on each input producing a single output. The circle equation defines y implicitly, meaning y is tangled up with x in a single equation rather than isolated on one side. When you solve for y and pick one branch of the ± square root, you convert that implicit relation into an explicit function you can graph, differentiate, and integrate normally.
Shifted and Scaled Semicircles
A semicircle doesn’t have to sit at the origin. For a circle centered at (h, k) with radius r, the upper semicircle function is y = √(r² − (x − h)²) + k, and the lower is y = −√(r² − (x − h)²) + k. The domain shifts to [h − r, h + r], and the range shifts accordingly. The function status doesn’t change: as long as you’ve taken just one horizontal half, every x-value still maps to a single y-value.

