In mathematics, a **Weierstrass point** on a nonsingular algebraic curve defined over the complex numbers is a point such that there are more functions on , with their poles restricted to only, than would be predicted by the Riemann–Roch theorem.

The concept is named after Karl Weierstrass.

Consider the vector spaces

where is the space of meromorphic functions on whose order at is at least and with no other poles. We know three things: the dimension is at least 1, because of the constant functions on ; it is non-decreasing; and from the Riemann–Roch theorem the dimension eventually increments by exactly 1 as we move to the right. In fact if is the genus of , the dimension from the -th term is known to be

- for

Our knowledge of the sequence is therefore

What we know about the ? entries is that they can increment by at most 1 each time (this is a simple argument: has dimension as most 1 because if and have the same order of pole at , then will have a pole of lower order if the constant is chosen to cancel the leading term). There are question marks here, so the cases or need no further discussion and do not give rise to Weierstrass points.

Assume therefore . There will be steps up, and steps where there is no increment. A **non-Weierstrass point** of occurs whenever the increments are all as far to the right as possible: i.e. the sequence looks like

Any other case is a **Weierstrass point**. A **Weierstrass gap** for is a value of such that no function on has exactly a -fold pole at only. The gap sequence is

for a non-Weierstrass point. For a Weierstrass point it contains at least one higher number. (The **Weierstrass gap theorem** or **Lückensatz** is the statement that there must be gaps.)

For hyperelliptic curves, for example, we may have a function with a double pole at only. Its powers have poles of order and so on. Therefore, such a has the gap sequence

In general if the gap sequence is

the **weight** of the Weierstrass point is

This is introduced because of a counting theorem: on a Riemann surface the sum of the weights of the Weierstrass points is

For example, a hyperelliptic Weierstrass point, as above, has weight Therefore, there are (at most) of them. The ramification points of the ramified covering of degree two from a hyperelliptic curve to the projective line are all hyperelliptic Weierstrass points and these exhausts all the Weierstrass points on a hyperelliptic curve of genus .

Further information on the gaps comes from applying Clifford's theorem. Multiplication of functions gives the non-gaps a numerical semigroup structure, and an old question of Adolf Hurwitz asked for a characterization of the semigroups occurring. A new necessary condition was found by R.-O. Buchweitz in 1980 and he gave an example of a subsemigroup of the nonnegative integers with 16 gaps that does not occur as the semigroup of non-gaps at a point on a curve of genus 16 (see ^{[1]}). A definition of Weierstrass point for a nonsingular curve over a field of positive characteristic was given by F. K. Schmidt in 1939.

More generally, for a nonsingular algebraic curve defined over an algebraically closed field of characteristic , the gap numbers for all but finitely many points is a fixed sequence These points are called **non-Weierstrass points**.
All points of whose gap sequence is different are called **Weierstrass** points.

If then the curve is called a **classical curve**.
Otherwise, it is called **non-classical**. In characteristic zero, all curves are classical.

Hermitian curves are an example of non-classical curves. These are projective curves defined over finite field by equation , where is a prime power.