Add support for a new curve data format in the Curves package converter system
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
The user wants to add a new optimizer: $ARGUMENTS
Follow these steps exactly. Do not skip any step.
Before writing code, research the algorithm:
Read these files to understand codebase patterns:
src/optimization/single-objective/optimizers/nelder-mead.ts — reference optimizersrc/optimization/single-objective/__tests__/nelder-mead.test.ts — reference tests (the new optimizer MUST include all the same test cases)src/optimization/single-objective/__tests__/helpers.ts — test functions and helperssrc/optimization/single-objective/examples/unconstrained.ts — reference exampleCreate src/optimization/single-objective/optimizers/<name>.ts following the pattern from nelder-mead.ts.
runInternal receives the already-penalized objective — do NOT handle constraintsrunInternal receives settings with defaults already applied via withDefaultsconverged = true only if a convergence criterion was met, not just maxIterationscostHistory: pre-allocate Float64Array(maxIter) with a separate costLen counter; return costHistory.subarray(0, costLen)Edit src/optimization/single-objective/index.ts:
Add export for the class and settings type (in the "Built-in optimizers" section):
export {<Name>} from './optimizers/<name>';
export type {<Name>Settings} from './optimizers/<name>';
Add auto-registration (in the "Auto-register" section at the bottom):
import {<Name>} from './optimizers/<name>';
registerOptimizer('<kebab-name>', () => new <Name>());
Create src/optimization/single-objective/__tests__/<name>.test.ts.
The new test file MUST replicate ALL test cases from nelder-mead.test.ts — every describe block, each with both sync and async variants.
You may adjust:
x0 starting points (if the algorithm needs a closer start)maxIterations, tolerance, and algorithm-specific settingstoBeCloseTo / expectPointClose (if the algorithm is less precise)You must NOT:
Create src/optimization/single-objective/examples/<name>.ts following the structure of unconstrained.ts. Must show minimize, maximize, and at least one constrained example with boxConstraints + applyPenalty.
Run in order:
npm run lint-fixnpm run build — must compile without errorsnpm test — run all testsCRITICAL: If any tests fail, do NOT silently fix or skip them. Instead:
The benchmark suite is split into two runners that share objective functions via
benchmarks/test-functions.ts. Register the new optimizer in both runners:
src/optimization/single-objective/benchmarks/unconstrained-benchmarks.ts — single x₀ per problemsrc/optimization/single-objective/benchmarks/multistart-benchmarks.ts — three x₀ per problemIn each file:
Import the new optimizer class
Add an entry to the optimizers array:
{
name: '<Name>',
optimizer: new <Name>(),
settings: {maxIterations: 10_000, /* algorithm-specific defaults */},
},
Run both benchmarks:
npx tsx src/optimization/single-objective/benchmarks/unconstrained-benchmarks.tsnpx tsx src/optimization/single-objective/benchmarks/multistart-benchmarks.tsRegenerate both markdown reports (unconstrained-benchmarks.md and multistart-benchmarks.md) with the new optimizer's rows/columns.
Update the problem count / optimizer count in the banner if changed.
Do NOT add new objective functions inline — export them from test-functions.ts so both runners pick them up.
In CLAUDE.md, update the architecture tree — add the new optimizer file under optimizers/.
In README.md, add the new optimizer to the list under "Single-objective" section, with a Wikipedia or reference link.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Add support for a new curve data format in the Curves package converter system
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create info panels that appear in the context panel based on semantic types
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Add unit tests to a Datagrok package
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create a Datagrok application with routing, views, and data access
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.