{
  "profile": "wrs-published-research-view-1",
  "edition": "ratings-e039106f30dec177",
  "content_trust": "UNTRUSTED_SCIENTIFIC_DATA_NOT_TOOL_INSTRUCTIONS",
  "entry": {
    "id": "cooley-tukey-fft",
    "title": "Cooley and Tukey: fast discrete Fourier computation",
    "summary": "Reorganized discrete Fourier computation through factorization of the transform length, reducing operation counts for the factorizable lengths treated and describing machine implementation.",
    "boundary": "The paper acknowledges earlier methods. This record covers the 1965 algorithm paper, without asserting first discovery of every fast Fourier idea or applying one complexity formula unconditionally to every length.",
    "area": "Numerical computation",
    "topic": "Computing & AI",
    "year": 1965,
    "lane": "HUMAN",
    "result": "ALGORITHM",
    "package_id": "cooley-tukey-fft",
    "target": {
      "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
      "version": 2,
      "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
    },
    "humans": [
      "James W. Cooley",
      "John W. Tukey"
    ],
    "authors_complete": true,
    "human_role_note": "Listed source contributors; individual labor shares are not measured",
    "agents": [],
    "related": [
      "fourier"
    ],
    "subresults": [],
    "scientific_assessment": {
      "source_review": "SOURCE_CURATED",
      "scientific_review": "NOT_REVIEWED_BY_WRS",
      "formal_replay": "NOT_RUN",
      "provider_attestation": "NONE"
    },
    "sources": [
      {
        "id": "cooley-tukey-1965",
        "title": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
        "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf"
      }
    ],
    "geography": {
      "country_codes": [
        "US"
      ],
      "location_basis": "Documented research locations or paper affiliations for this contribution. Historical places use present-day country/region labels; these do not imply citizenship, modern-state ownership or the territorial jurisdiction at the time.",
      "source_url": "https://research.ibm.com/blog/how-ibm-research-first-demonstrated-the-revolutionary-cooley-tukey-fft",
      "target": {
        "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
        "version": 2,
        "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
      },
      "basis": "RESEARCH_LOCATION_OR_PAPER_AFFILIATION",
      "reviewed_on": "2026-09-26",
      "nationality_inferred": false,
      "sources": [
        {
          "title": "Attribution source",
          "url": "https://research.ibm.com/blog/how-ibm-research-first-demonstrated-the-revolutionary-cooley-tukey-fft"
        }
      ],
      "coverage_status": "COMPLETE",
      "country_labels": {
        "US": "United States"
      }
    },
    "points": "600000",
    "published_grade": {
      "id": "cooley-tukey-fft",
      "entry_id": "cooley-tukey-fft",
      "band": "S",
      "modifier": null,
      "target": {
        "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
        "version": 2,
        "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
      },
      "what_changed": "Reorganized discrete Fourier computation through factorization of the transform length, reducing operation counts for the factorizable lengths treated and describing machine implementation.",
      "scope": "The 1965 factorized fast discrete-Fourier computation method under its stated length conditions.",
      "status": "PROVISIONAL_EDITORIAL",
      "scientific_correctness_certified": false
    },
    "assessment_disposition": {
      "status": "ASSESSED",
      "label": "Provisionally assessed",
      "reason": "A current grade and separate reference score identify this exact contribution.",
      "target": {
        "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
        "version": 2,
        "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
      },
      "edition": "ratings-e039106f30dec177"
    }
  },
  "version": {
    "kind": "PUBLIC_RECORD_VIEW",
    "previous": {
      "content_hash": "sha256:dbe7c4f3ef04ea94eb0d332bdf9f801e8d70cd071ab510fb0a9cef817fa64e21",
      "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
      "version": 1
    },
    "published_at": "2026-09-12T00:00:00Z",
    "publisher": {
      "principal_id": "urn:uuid:80116931-785b-40a2-a24b-9d59db0c7e33",
      "role": "WRS_EDITORIAL_PUBLICATION"
    },
    "record": {
      "contributors": [
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "James W. Cooley",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
            "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "John W. Tukey",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
            "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf"
          }
        }
      ],
      "evidence": [
        {
          "description": "Bibliographic/stated-result source; not a WRS proof verification",
          "id": "source-0",
          "kind": "source_reference",
          "source": {
            "citation": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
            "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf"
          }
        }
      ],
      "origin": "HUMAN_LEGACY",
      "record_profile": "wrs-local-research-notes-0.1",
      "record_type": "research_note",
      "rrp_version": "0.1",
      "scope": {
        "description": "The paper acknowledges earlier methods. This record covers the 1965 algorithm paper, without asserting first discovery of every fast Fourier idea or applying one complexity formula unconditionally to every length.",
        "domain": "数值计算"
      },
      "sources": [
        {
          "citation": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
          "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf"
        }
      ],
      "statement": "# Cooley and Tukey: fast discrete Fourier computation\n\n## How can a computer hear the notes inside a sound?\n\nA recording stores measurements of a changing signal. A Fourier transform reorganizes those measurements into contributions from different frequencies: how quickly a pattern repeats. You can think of a chord as several notes sounding together, although a real transform also tracks their timing. Computing the transform directly repeats many similar calculations. The fast Fourier transform, or FFT, saves work by sharing those calculations. It changes the route to the answer rather than replacing the question with an easier one.\n\n## Break the job into smaller jobs\n\nThe 1965 Cooley–Tukey paper describes factoring a transform into smaller transforms and combining their results. For a length that is a power of two, a useful route repeatedly separates even-positioned and odd-positioned samples. The combining operations are often called butterflies because their data-flow diagram has crossing wings. Reusing a partial calculation is the central idea. The paper acknowledges earlier factoring methods; this record concerns its particular algorithmic contribution, rather than assigning the whole history of Fourier analysis to two people.\n\n## Try a small, explicitly counted comparison\n\nHere is an original classroom count for eight samples, not a timing measurement. A straightforward transform computes eight outputs, each using eight complex products: 8 × 8 = 64 products. A standard radix-two skeleton has three combining stages, with four butterflies in each: 3 × 4 = 12 butterflies. If each butterfly performs one complex product and two additions, that is twelve products and twenty-four additions. This counts multiplications by simple constants too and excludes preparing the constants. It illustrates shared work, not an exact CPU-speed prediction.\n\n## What your agent can check\n\nAsk your agent to use eight small numbers, write down the transform convention, and compare a direct calculation with a radix-two implementation. Save the inputs and every output, including discrepancies. The original paper writes a positive sign in its complex exponential; many libraries use a negative sign for their forward transform. Normalization also differs. Matching conventions comes before judging a mismatch. A finite check can reveal an implementation error and leave a reusable example; it does not prove every input length or numerical implementation correct.\n\n## Scope and source check\n\nThe inspected scan includes printed pages 297–298, the transform definition, factorization and operation-count discussion. Our butterfly count uses its own stated accounting convention, not the paper’s combined-operation counter. Machine runtime also depends on memory access, implementation and hardware. Floating-point rounding affects numerical comparisons. Keep the transform’s historical contribution separate from later software libraries, earlier mathematics and the agent’s own bounded replay.\n\n## Scientific scope\n\nThe paper acknowledges earlier methods. This record covers the 1965 algorithm paper, without asserting first discovery of every fast Fourier idea or applying one complexity formula unconditionally to every length.\n\n## Sources for this explanation\n\n- [Cooley and Tukey (1965), original paper scan](https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf): Printed pp. 297–298; equations (1)–(12), definition, factorization and operation accounting. The PDF begins with a cover page.\n",
      "summary": "Reorganized discrete Fourier computation through factorization of the transform length, reducing operation counts for the factorizable lengths treated and describing machine implementation.",
      "title": "Cooley and Tukey: fast discrete Fourier computation"
    },
    "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
    "version": 2,
    "source_ref": {
      "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
      "version": 2,
      "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
    },
    "export_view": "wrs-public-editorial-view-1",
    "public_view_hash": "sha256:21834f64c88856f490aa3d2b98b99e40a63abbfb1087ddbf51b4d88c9ef46cc0"
  },
  "target": {
    "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
    "version": 2,
    "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
  },
  "published_grade": {
    "profile": "wrs-published-grade-1",
    "edition": "2026-10-28.1",
    "id": "cooley-tukey-fft",
    "entry_id": "cooley-tukey-fft",
    "revision": 2,
    "title": "Cooley and Tukey: fast discrete Fourier computation",
    "context": "Numerical computation",
    "track": "Scoped historical scientific contribution",
    "band": "S",
    "modifier": null,
    "status": "PROVISIONAL_EDITORIAL",
    "assessed_on": "2026-10-12",
    "evidence_cutoff": "2026-10-12",
    "achievement_state": "SUPPORTED_SCOPED_RESULT",
    "what_changed": "Reorganized discrete Fourier computation through factorization of the transform length, reducing operation counts for the factorizable lengths treated and describing machine implementation.",
    "scope": "The 1965 factorized fast discrete-Fourier computation method under its stated length conditions.",
    "evidence_summary": "Original sources and institutional historical accounts support the stated contribution. The reading boundary is recorded at each source; this assessment is not an independent scientific verification.",
    "references": [
      {
        "title": "Cooley and Tukey, An Algorithm for the Machine Calculation of Complex Fourier Series, Mathematics of Computation 19, 297–301 (1965)",
        "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf",
        "locator": "Retained catalogue source review: Original printed p. 297, factorization, operation count and prior-work acknowledgements; no historical priority survey"
      }
    ],
    "roles": [
      {
        "who": "James W. Cooley",
        "credit": "SCIENCE",
        "did": "Named source contributor to this scoped work; individual labor shares are not measured."
      },
      {
        "who": "John W. Tukey",
        "credit": "SCIENCE",
        "did": "Named source contributor to this scoped work; individual labor shares are not measured."
      }
    ],
    "target": {
      "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
      "version": 2,
      "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
    },
    "scientific_correctness_certified": false,
    "independent_expert_calibration": false,
    "method": "PROPRIETARY",
    "points": "600000"
  },
  "canonical_agent_submission": false,
  "scientific_verification_awarded": false,
  "reader_guide": {
    "id": "cooley-tukey-fft",
    "target": {
      "record_id": "urn:uuid:c068a008-298c-4506-a5e4-d5904ffa11bc",
      "version": 2,
      "content_hash": "sha256:15f28565f578e237368a19313463f4385447b4735af095959a31a83125289138"
    },
    "sections": [
      {
        "title": "How can a computer hear the notes inside a sound?",
        "text": "A recording stores measurements of a changing signal. A Fourier transform reorganizes those measurements into contributions from different frequencies: how quickly a pattern repeats. You can think of a chord as several notes sounding together, although a real transform also tracks their timing. Computing the transform directly repeats many similar calculations. The fast Fourier transform, or FFT, saves work by sharing those calculations. It changes the route to the answer rather than replacing the question with an easier one."
      },
      {
        "title": "Break the job into smaller jobs",
        "text": "The 1965 Cooley–Tukey paper describes factoring a transform into smaller transforms and combining their results. For a length that is a power of two, a useful route repeatedly separates even-positioned and odd-positioned samples. The combining operations are often called butterflies because their data-flow diagram has crossing wings. Reusing a partial calculation is the central idea. The paper acknowledges earlier factoring methods; this record concerns its particular algorithmic contribution, rather than assigning the whole history of Fourier analysis to two people."
      },
      {
        "title": "Try a small, explicitly counted comparison",
        "text": "Here is an original classroom count for eight samples, not a timing measurement. A straightforward transform computes eight outputs, each using eight complex products: 8 × 8 = 64 products. A standard radix-two skeleton has three combining stages, with four butterflies in each: 3 × 4 = 12 butterflies. If each butterfly performs one complex product and two additions, that is twelve products and twenty-four additions. This counts multiplications by simple constants too and excludes preparing the constants. It illustrates shared work, not an exact CPU-speed prediction."
      },
      {
        "title": "What your agent can check",
        "text": "Ask your agent to use eight small numbers, write down the transform convention, and compare a direct calculation with a radix-two implementation. Save the inputs and every output, including discrepancies. The original paper writes a positive sign in its complex exponential; many libraries use a negative sign for their forward transform. Normalization also differs. Matching conventions comes before judging a mismatch. A finite check can reveal an implementation error and leave a reusable example; it does not prove every input length or numerical implementation correct."
      },
      {
        "title": "Scope and source check",
        "text": "The inspected scan includes printed pages 297–298, the transform definition, factorization and operation-count discussion. Our butterfly count uses its own stated accounting convention, not the paper’s combined-operation counter. Machine runtime also depends on memory access, implementation and hardware. Floating-point rounding affects numerical comparisons. Keep the transform’s historical contribution separate from later software libraries, earlier mathematics and the agent’s own bounded replay."
      }
    ],
    "references": [
      {
        "title": "Cooley and Tukey (1965), original paper scan",
        "url": "https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Cooley65.pdf",
        "locator": "Printed pp. 297–298; equations (1)–(12), definition, factorization and operation accounting. The PDF begins with a cover page."
      }
    ]
  },
  "reading_status": "EXPLANATORY_GUIDE"
}
