addedInput schema / additionalProperties
Added value: +false
addedInput schema / properties / a / description
Added value: +"Quadratic (x^2) coefficient for solve and evaluate. May be 0, in which case the equation is treated as linear or degenerate. Required for solve and evaluate."
changedInput schema / properties / a / type
Previous value: -"integer"New value: +[
+ "number",
+ "null"
+]
addedInput schema / properties / b / description
Added value: +"Linear (x) coefficient for solve and evaluate. Required for solve and evaluate."
changedInput schema / properties / b / type
Previous value: -"integer"New value: +[
+ "number",
+ "null"
+]
addedInput schema / properties / c / description
Added value: +"Constant term for solve and evaluate. Required for solve and evaluate."
changedInput schema / properties / c / type
Previous value: -"integer"New value: +[
+ "number",
+ "null"
+]
addedInput schema / properties / operation / description
Added value: +"Mode to run. solve needs a, b, c. evaluate needs a, b, c, x. fromRoots needs r1, r2."
addedInput schema / properties / operation / enum
Added value: +[
+ "solve",
+ "evaluate",
+ "fromRoots"
+]
addedInput schema / properties / r1
Added value: +{
+ "description": "First root of the quadratic to construct. Required for the fromRoots operation only.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
addedInput schema / properties / r2
Added value: +{
+ "description": "Second root of the quadratic to construct. Required for the fromRoots operation only.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
addedInput schema / properties / x
Added value: +{
+ "description": "Point at which to evaluate f(x) = ax^2 + bx + c. Required for the evaluate operation only.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
changedInput schema / required
Previous value: -[
- "operation",
- "a",
- "b",
- "c"
-]New value: +[
+ "operation"
+]
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "operation": {
+ "description": "The operation performed (solve, evaluate, or fromRoots).",
+ "type": "string"
+ },
+ "result": {
+ "description": "Operation output. solve fields listed here; evaluate returns a, b, c, x, y, vertex, axis; fromRoots returns a, b, c, equation.",
+ "properties": {
+ "a": {
+ "description": "Rounded x^2 coefficient echoed back.",
+ "type": "number"
+ },
+ "axisOfSymmetry": {
+ "description": "Axis of symmetry x = -b/(2a), or null when not a genuine quadratic.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "b": {
+ "description": "Rounded x coefficient echoed back.",
+ "type": "number"
+ },
+ "c": {
+ "description": "Rounded constant term echoed back.",
+ "type": "number"
+ },
+ "discriminant": {
+ "description": "b^2 - 4ac, rounded to 10 decimals.",
+ "type": "number"
+ },
+ "discriminantSign": {
+ "description": "Sign of the discriminant.",
+ "enum": [
+ "positive",
+ "zero",
+ "negative"
+ ],
+ "type": "string"
+ },
+ "equation": {
+ "description": "The cleaned equation string, for example x^2 - 3x + 2 = 0.",
+ "type": "string"
+ },
+ "factored": {
+ "description": "Factored form when both roots are rational, else null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "isDegenerate": {
+ "description": "True when a = 0 and b = 0 (no or infinite solutions).",
+ "type": "boolean"
+ },
+ "isLinear": {
+ "description": "True when a = 0 and b is non-zero (single linear root).",
+ "type": "boolean"
+ },
+ "productOfRoots": {
+ "description": "Vieta product c/a, or null when not a genuine quadratic.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "rootCount": {
+ "description": "Number of distinct roots, or the string infinite for the 0 = 0 case.",
+ "type": [
+ "integer",
+ "string"
+ ]
+ },
+ "roots": {
+ "description": "Roots as objects with real, imag, and a display repr. Empty when there are zero or infinite solutions.",
+ "items": {
+ "properties": {
+ "imag": {
+ "description": "Imaginary part of the root (0 for real roots).",
+ "type": "number"
+ },
+ "real": {
+ "description": "Real part of the root.",
+ "type": "number"
+ },
+ "repr": {
+ "description": "Display string for the root.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sumOfRoots": {
+ "description": "Vieta sum -b/a, or null when not a genuine quadratic.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "vertex": {
+ "description": "Parabola vertex with x and y, or null for linear/degenerate cases.",
+ "properties": {
+ "x": {
+ "description": "Vertex x-coordinate.",
+ "type": "number"
+ },
+ "y": {
+ "description": "Vertex y-coordinate.",
+ "type": "number"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "Whether the calculation succeeded.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+}