{
  "kind": "learning-example diagnostic",
  "measuredAt": "2026-09-06T18:28:34.830Z",
  "security": "No security rating; small learning parameters. Not comparable with production FHE parameter sets.",
  "source": {
    "poulpyRevision": "9361627e38c646ade386cf0a3b71abf6e605ed61",
    "example": "public/examples/poulpy-app/src/bin/client_evaluator.rs",
    "exampleSha256": "f792c87184ef5a3233471b2ea8ce18055e6119f651bfe944558344d634bdda46",
    "lockfileSha256": "3a79daa4a4f048b8a4f62330e18bb8414fbcdc26c32742a8dd83384e8a283534"
  },
  "reproduction": [
    "cargo build --locked --release --manifest-path public/examples/poulpy-app/Cargo.toml --bin client_evaluator",
    "node scripts/measure-example.mjs public/examples/poulpy-app/target/release/client_evaluator"
  ],
  "compiler": "rustc 1.97.0-nightly (ff9a9ea07 2026-05-13)\nbinary: rustc\ncommit-hash: ff9a9ea07bdc74e9555126464b02be8ff277f521\ncommit-date: 2026-05-13\nhost: x86_64-unknown-linux-gnu\nrelease: 1.97.0-nightly\nLLVM version: 22.1.4",
  "build": {
    "profile": "release",
    "targetFeatures": "default; portable reference",
    "backend": "NTT4x30Ref",
    "threads": 1
  },
  "hardware": {
    "cpu": "12th Gen Intel(R) Core(TM) i9-12900K",
    "logicalCpus": 24,
    "memoryBytes": 67184484352,
    "os": "linux",
    "arch": "x64",
    "kernel": "6.6.87.2-microsoft-standard-WSL2",
    "loadBefore": [
      0.62,
      0.49,
      0.38
    ],
    "loadAfter": [
      0.62,
      0.49,
      0.38
    ],
    "control": "Shared host; no affinity or power-policy control. Do not extrapolate these timings."
  },
  "workload": {
    "expression": "(a + b) * b",
    "slots": 512,
    "slotsKind": "complex with real inputs",
    "inputGenerator": "a[i]=i/512-0.5; b[i]=0.25+0.5*i/512",
    "randomness": "Fresh client secret and encryption streams at setup; same request reused for all repetitions"
  },
  "parameters": {
    "n": 1024,
    "rank": 1,
    "base2k": 52,
    "ciphertextK": 156,
    "logDelta": 45,
    "outputK": 111,
    "secret": "ternary weight 192",
    "sigma": 3.2,
    "evaluationKey": {
      "dnum": 3,
      "dsize": 1,
      "kAux": 52
    }
  },
  "timing": {
    "included": "ckks_add_assign and ckks_mul_assign; timer inside evaluator",
    "excluded": "process startup, parsing, allocation, key preparation, serialization, encryption and decryption",
    "warmupRuns": 3,
    "measuredRuns": 20,
    "statistic": "Median of 20 elapsed times; min/max describe observed range, not a confidence interval",
    "timerOutputResolutionMs": 0.001,
    "medianMs": 1.4685000000000001,
    "minMs": 1.405,
    "maxMs": 1.648
  },
  "sizes": {
    "serializedEvaluationKeyBytes": 196668,
    "ciphertextEnvelopeBytes": 49208,
    "scratchBytes": 786432,
    "preparedKeyBytes": "not measured",
    "peakProcessMemory": "not measured"
  },
  "correctness": {
    "absoluteTolerance": 1e-9,
    "allRealAndImaginarySlotsChecked": true,
    "allRunsPassed": true
  },
  "raw": [
    {
      "milliseconds": 1.648,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.578,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.457,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.405,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.43,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.622,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.417,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.507,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.454,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.428,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.437,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.484,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.48,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.578,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.502,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.431,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.495,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.481,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.416,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    },
    {
      "milliseconds": 1.414,
      "scratchBytes": 786432,
      "responseBytes": 49208,
      "maxAbsoluteError": 1.041e-11
    }
  ]
}
