Spaces:
Running
Running
| % SPDX-License-Identifier: Apache-2.0 | |
| % Fixed, data-only GNU Octave adapter. No eval/source/pkg/system/network calls. | |
| args = argv(); | |
| if numel(args) != 2 | |
| error("a11oy:numerics:arguments", "expected fixed input and output paths"); | |
| endif | |
| input_path = args{1}; | |
| output_path = args{2}; | |
| request = jsondecode(fileread(input_path)); | |
| operation = request.operation; | |
| matrix = request.inputs.matrix; | |
| if strcmp(operation, "MATRIX_SOLVE") || strcmp(operation, "VALIDATE_REFERENCE_VECTOR") | |
| values = matrix \ request.inputs.rhs(:); | |
| elseif strcmp(operation, "SYMMETRIC_EIGENVALUES") | |
| values = sort(eig(matrix)); | |
| else | |
| error("a11oy:numerics:operation", "unsupported fixed operation"); | |
| endif | |
| response = struct( | |
| "schema", "szl.numerics.engine-response/v1", | |
| "state", "RESULT", | |
| "operation", operation, | |
| "values", reshape(values, 1, []), | |
| "substrate_evidence", "UNKNOWN" | |
| ); | |
| handle = fopen(output_path, "w"); | |
| if handle < 0 | |
| error("a11oy:numerics:output", "cannot open fixed output path"); | |
| endif | |
| fprintf(handle, "%s", jsonencode(response)); | |
| fclose(handle); | |