{"id":"linear-residual-check","version":"1.0.0","description":"Check a claimed residual r = b - A x (per component and/or its max norm) exactly for an approximate solution x.","supported_operations":["check the residual of an approximate solution exactly","verify b minus A x for a numerical solution","is my residual max norm below the tolerance","exact residual vector of a float solver result","validate claimed residuals component by component","compute and compare residual infinity norm","בדיקת שארית של פתרון מקורב"],"unsupported_operations":["the A x - b sign convention (the residual is b - A x)","2-norms, condition numbers or backward error bounds","inexact or tolerance-based comparison of the claimed residual","JSON floating-point numbers (pass decimals as strings)"],"semantics":["Exact rationals are strings: an integer, a fraction p/q with q >= 1 or a finite decimal; JSON numbers, exponents, NaN and Infinity are rejected; outputs are canonical (reduced p/q, or an integer).","matrix is m x n (1-64 each) with equal row lengths; rhs and claimed_residual have m entries and solution n entries; dimensions are checked before any dot product.","The residual is r = b - A x: r_i = b_i - sum_j a_ij x_j, exact. inf_norm = max_i |r_i| is always returned.","At least one of claimed_residual and claimed_inf_norm (nonnegative) must be given; an omitted claim is not checked.","Check order: claimed_residual components in row order (residual_mismatch), then claimed_inf_norm (inf_norm_mismatch); first_discrepancy gives check, index (null for the norm), claimed and the exact actual value."],"limits":{"max_rows":64,"max_columns":64,"max_number_chars":64},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["matrix","rhs","solution"],"properties":{"matrix":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*|\\.[0-9]+)?$"}}},"rhs":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*|\\.[0-9]+)?$"}},"solution":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*|\\.[0-9]+)?$"}},"claimed_residual":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*|\\.[0-9]+)?$"}},"claimed_inf_norm":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*|\\.[0-9]+)?$"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","first_discrepancy","inf_norm","reference_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":["string","null"],"enum":["residual_mismatch","inf_norm_mismatch",null]},"first_discrepancy":{"type":["object","null"],"additionalProperties":false,"required":["check","index","claimed","actual"],"properties":{"check":{"type":"string","enum":["residual","inf_norm"]},"index":{"type":["integer","null"],"minimum":0},"claimed":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*)?$"},"actual":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*)?$"}}},"inf_norm":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*)?$"},"reference_version":{"type":"string","const":"r49-linear-residual-1.0.0 (residual r = b - A x, Higham 2002; NIST DLMF section 1.2(v), equation 1.2.34; exact rational arithmetic)"}}},"examples":[{"input":{"matrix":[["1","2"],["3","4"]],"rhs":["5","6"],"solution":["-3.9999999","4.49999995"],"claimed_residual":["0","-0.0000001"],"claimed_inf_norm":"1/10000000"},"output":{"valid":true,"reason":null,"first_discrepancy":null,"inf_norm":"1/10000000","reference_version":"r49-linear-residual-1.0.0 (residual r = b - A x, Higham 2002; NIST DLMF section 1.2(v), equation 1.2.34; exact rational arithmetic)"}},{"input":{"matrix":[["1","2"],["3","4"]],"rhs":["5","6"],"solution":["-3.9999999","4.49999995"],"claimed_residual":["0","0.0000001"]},"output":{"valid":false,"reason":"residual_mismatch","first_discrepancy":{"check":"residual","index":1,"claimed":"1/10000000","actual":"-1/10000000"},"inf_norm":"1/10000000","reference_version":"r49-linear-residual-1.0.0 (residual r = b - A x, Higham 2002; NIST DLMF section 1.2(v), equation 1.2.34; exact rational arithmetic)"}}],"execute_url":"/v1/tools/linear-residual-check/versions/1.0.0/execute"}