{"record":{"id":"c38130ae9d788e6e","repo":"ruvnet/ruflo","slug":"matrix-must-be-square","errorCode":null,"errorMessage":"Matrix must be square","messagePattern":"Matrix must be square","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/plugins/prime-radiant/src/engines/SpectralEngine.ts","lineNumber":87,"sourceCode":"      stabilityIndex\n    };\n  }\n\n  /**\n   * Compute eigenvalues of a matrix\n   *\n   * @param matrix - Square matrix (2D array or flattened Float32Array)\n   * @returns Sorted eigenvalues (descending)\n   */\n  async computeEigenvalues(matrix: number[][] | Float32Array): Promise<number[]> {\n    let flat: Float32Array;\n    let n: number;\n\n    if (matrix instanceof Float32Array) {\n      flat = matrix;\n      n = Math.sqrt(matrix.length);\n      if (n !== Math.floor(n)) {\n        throw new Error('Matrix must be square');\n      }\n    } else {\n      n = matrix.length;\n      flat = new Float32Array(n * n);\n      for (let i = 0; i < n; i++) {\n        const row = matrix[i];\n        if (!row) continue;\n        for (let j = 0; j < n; j++) {\n          flat[i * n + j] = row[j] ?? 0;\n        }\n      }\n    }\n\n    if (n === 0) return [];\n    if (n === 1) return [flat[0] ?? 0];\n\n    if (this.wasmModule) {\n      // Use WASM for eigenvalue computation","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/prime-radiant/src/engines/SpectralEngine.ts#L69-L105","documentation":"computeEigenvalues() was given a flattened Float32Array whose length is not a perfect square, so it cannot be reshaped into an n x n matrix. The squareness check runs before any eigenvalue computation; pass a square matrix or a correctly flattened one.","triggerScenarios":"Thrown at v3/plugins/prime-radiant/src/engines/SpectralEngine.ts:87 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a square matrix (equal row and column counts) as required by spectral operations.","Validate matrix dimensions before invoking the engine and reject non-square input early."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}