ForHosting KIT · Developer Utilities

Cubic inequality solver

This cubic inequality solver finds where a third-degree polynomial is positive, negative, nonnegative, or nonpositive.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter the coefficients of ax³ + bx² + cx + d and choose a comparison with zero. The result lists the distinct real roots, shows the sign on every interval cut by those roots, and returns the complete solution set in interval notation. It handles cubics with one, two, or three distinct real zeros without relying on graphing, random guesses, or an external service.

Enter the cubic in standard form

Rewrite the inequality so that one side is zero and the other is in the form ax³ + bx² + cx + d. Then enter each real coefficient, including zeros for any missing terms. The leading coefficient a cannot be zero because that would make the expression quadratic or lower degree. Choose < or > when roots must be excluded, and choose <= or >= when equality at a real root belongs to the answer. For example, x³ - 2x² - 5x + 6 >= 0 is entered with a = 1, b = -2, c = -5, d = 6, and operator >=. Keeping the comparison against zero matters: if your original right side is not zero, first subtract it from both sides and combine like terms. That produces the exact coefficients the solver needs and prevents a sign error caused by moving only part of an expression. Decimal coefficients are accepted as long as they are finite and stay within the published coefficient limit.

Read the roots and sign chart

A continuous polynomial can change sign only where it equals zero, so its real roots divide the number line into intervals. The solver obtains all distinct real roots with the depressed-cubic form of Cardano's method, sorts them, and chooses a test value strictly inside each resulting interval. It evaluates the original polynomial at that test value and labels the whole interval positive or negative. This is the same sign-chart method taught in algebra, made explicit so you can audit the conclusion instead of receiving only a final union. A repeated root appears once in the list because it creates one boundary on the number line. If its multiplicity is even, the signs on its neighboring intervals remain the same; if its multiplicity is odd, they switch. The displayed chart reveals that behavior directly. Roots are normalized to stable decimal values, so simple integer roots remain easy to recognize while irrational real roots receive a useful deterministic approximation.

Interpret the interval notation

The solution intervals are exactly the chart regions whose sign satisfies the selected comparison. Parentheses mean an endpoint is excluded, while square brackets mean a finite root is included because the operator permits equality. Infinity always uses a parenthesis because it is a direction rather than a reachable endpoint. When several disconnected regions work, the solver joins them with the union symbol. An empty-set symbol means no real number satisfies the requested comparison. Check the `solution_intervals` array when consuming the result in code; it provides each component separately, while `solution_set` gives the familiar human-readable notation. The method is deterministic and evaluates only the supplied coefficients, so it is suitable for worked exercises, automated answer keys, and validation inside a larger algebra workflow. As with any numeric cubic calculation, irrational roots are approximate; use the accompanying sign chart rather than treating a rounded displayed root as an exact symbolic radical expression.

Check algebra homework

Compare a hand-built root table and interval union with a deterministic sign chart.

Build answer keys

Generate consistent real-root boundaries and solution intervals for coefficient-based exercises.

Validate model constraints

Find where a cubic response, profit, or calibration polynomial remains above or below zero.

What does one request cost?

One API request costs $0.002; the browser version can run locally without a network call.

Can the leading coefficient be zero?

No. A zero leading coefficient does not define a cubic inequality and is rejected as invalid input.

Are repeated roots included?

Yes. Each distinct real root is listed once, and the signs on its adjacent intervals show whether the polynomial crosses the axis there.

Why are some roots decimals?

Many cubic roots are irrational. The solver returns stable numeric approximations rather than symbolic radical expressions.

When are roots included in the answer?

Finite roots are included for <= and >= because the polynomial equals zero there; they are excluded for < and >.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/algebra/cubic-inequality

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/algebra/cubic-inequality \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a":1,"b":-2,"c":-5,"d":6,"operator":">="}'
{
  "a": 1,
  "b": -2,
  "c": -5,
  "d": 6,
  "operator": ">="
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "algebra.cubic_inequality",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_abs_coefficient1000000000000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →