[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CT7M905SNZCWGG5AF7F2DZ":3,"skill-same:01M6CT7M905SNZCWGG5AF7F2DZ":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":72,"commitSha":73,"skillDirectory":74,"forksCount":75,"repositoryHtmlUrl":76,"repositoryHomepageUrl":6,"ownerHtmlUrl":77,"ownerBlogUrl":78,"ownerDescription":79,"updatedAt":80,"install":81,"resources":94},"01M6CT7M905SNZCWGG5AF7F2DZ","nufast-physics",null,"Work on nufast neutrino oscillation library — Rust\u002FZig, WASM, benchmarks, physics background.","bkataru\u002Fzeptoclaw","bkataru","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14833123?v=4","01M6CT4KVBYNZ90GN6AMQKJN65","Baalateja Kataru","01M6CT4KZT0YZ10C1BED1NVP87",2,"MIT","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fnufast_physics\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"nufast physics","wasm","rust","test","library","repository","work on","work","command","implementation","benchmarks","build","pattern","zig","2026-11-10 10:12:30",false,"---\nname: nufast-physics\nversion: 1.0.0\ndescription: Work on nufast neutrino oscillation library — Rust\u002FZig, WASM, benchmarks, physics background.\nauthor: Baala Kataru\ncategory: physics\ntriggers:\n  - type: mention\n    patterns:\n      - \"nufast\"\n      - \"neutrino\"\n      - \"oscillation\"\n      - \"physics\"\n  - type: command\n    commands:\n      - \"nufast-build\"\n      - \"nufast-test\"\n      - \"nufast-bench\"\n      - \"nufast-wasm\"\n  - type: pattern\n    patterns:\n      - \".*neutrino.*oscillation.*\"\n      - \".*pmns.*matrix.*\"\n      - \".*nufast.*\"\nconfig:\n  properties:\n    repo_path:\n      type: string\n      default: \"~\u002Fnufast\"\n      description: \"Path to nufast repository\"\n    zig_path:\n      type: string\n      default: \"~\u002Fnufast\u002Fbenchmarks\u002Fzig\"\n      description: \"Path to Zig implementation\"\n    wasm_output:\n      type: string\n      default: \"~\u002Fnufast\u002Fbenchmarks\u002Fzig\u002Fwasm\"\n      description: \"Path for WASM output\"\n  required: []\n---\n\n# NuFast Neutrino Physics\n\nnufast is a neutrino oscillation probability library. Port of Denton & Parke's NuFast algorithm.\n\n**Repo:** https:\u002F\u002Fgithub.com\u002Fplanckeon\u002Fnufast\n**crates.io:** https:\u002F\u002Fcrates.io\u002Fcrates\u002Fnufast\n**Live demo (ITN):** https:\u002F\u002Fplanckeon.github.io\u002Fitn\u002F\n\n## Project Structure\n\n```\nnufast\u002F\n├── src\u002F                    # Rust library\n│   ├── lib.rs\n│   ├── vacuum.rs           # Vacuum oscillations\n│   ├── matter.rs           # Matter effects\n│   └── types.rs\n├── benchmarks\u002Fzig\u002F         # Zig implementation (faster!)\n│   ├── build.zig\n│   ├── build.zig.zon\n│   ├── src\u002F\n│   │   ├── nufast.zig      # Main library\n│   │   ├── sterile.zig     # 4-flavor\n│   │   ├── nsi.zig         # Non-standard interactions\n│   │   ├── prem.zig        # Earth model\n│   │   ├── c_exports.zig   # C FFI\n│   │   └── wasm_exports.zig\n│   └── wasm\u002F               # WASM output\n├── bindings\u002Fpython\u002F        # Python ctypes wrapper\n├── paper\u002F                  # Typst benchmark paper\n├── Cargo.toml\n└── README.md\n```\n\n## Physics Background\n\n### What It Computes\n\nNeutrino oscillation probabilities: the chance that a neutrino of flavor α becomes flavor β after traveling distance L with energy E.\n\n**Flavors:** electron (e), muon (μ), tau (τ)\n\n**Key formula:** P(να → νβ) = f(θ₁₂, θ₁₃, θ₂₃, δ_CP, Δm²₂₁, Δm²₃₁, L, E, ρ)\n\n### PMNS Matrix Parameters\n\n| Parameter | Description | Typical Value |\n|-----------|-------------|---------------|\n| θ₁₂ | Solar angle | 33.4° |\n| θ₁₃ | Reactor angle | 8.6° |\n| θ₂₃ | Atmospheric angle | 49° |\n| δ_CP | CP phase | -90° to +90° |\n| Δm²₂₁ | Solar mass splitting | 7.5×10⁻⁵ eV² |\n| Δm²₃₁ | Atm mass splitting | 2.5×10⁻³ eV² |\n\n### Experiment Presets\n\nBuilt-in configurations for major experiments:\n\n| Experiment | Baseline | Energy | Channel |\n|------------|----------|--------|---------|\n| T2K | 295 km | ~0.6 GeV | νμ→νe |\n| NOvA | 810 km | ~2 GeV | νμ→νe |\n| DUNE | 1300 km | ~3 GeV | νμ→νe |\n| Hyper-K | 295 km | ~0.6 GeV | νμ→νe |\n| JUNO | 53 km | ~3 MeV | ν̄e→ν̄e |\n| Daya Bay | 1.6 km | ~3 MeV | ν̄e→ν̄e |\n| KamLAND | 180 km | ~3 MeV | ν̄e→ν̄e |\n\n## Commands\n\n### `nufast-build`\n\nBuild the nufast library (Rust and Zig).\n\n**Example:**\n```\nnufast-build\n```\n\n**Response:**\n```\nBuilding Rust library...\ncargo build --release\n   Compiling nufast v0.5.0\n    Finished release [optimized] target(s) in 2.3s\n\nBuilding Zig implementation...\ncd benchmarks\u002Fzig\nzig build -Doptimize=ReleaseFast\nBuild successful!\n```\n\n### `nufast-test`\n\nRun tests for nufast.\n\n**Example:**\n```\nnufast-test\n```\n\n**Response:**\n```\nRunning Rust tests...\ncargo test\ntest result: ok. 42 passed; 0 failed\n\nRunning Zig tests...\nzig build test\nAll 38 tests passed!\n```\n\n### `nufast-bench`\n\nRun benchmarks to measure performance.\n\n**Example:**\n```\nnufast-bench\n```\n\n**Response:**\n```\nRunning Rust benchmarks...\ncargo bench\n\nRunning Zig benchmarks...\nzig build bench\n.\u002Fzig-out\u002Fbin\u002Fbenchmark\n\nResults:\n| Implementation | Vacuum | Matter |\n|---------------|--------|--------|\n| Zig SIMD f64  | 25 ns  | 56 ns  |\n| Zig scalar    | 42 ns  | 108 ns |\n| Rust          | 61 ns  | 95 ns  |\n| Python        | 14,700 ns | 21,900 ns |\n```\n\n### `nufast-wasm`\n\nBuild WASM version for web deployment.\n\n**Example:**\n```\nnufast-wasm\n```\n\n**Response:**\n```\nBuilding WASM...\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\nOutput in wasm\u002F:\n- nufast.wasm (~10.5 KB)\n- nufast.js\n- nufast.d.ts\n\nReady to deploy to ITN!\n```\n\n## Working with Rust\n\n### Build & Test\n\n```bash\ncd nufast\ncargo build --release\ncargo test\ncargo bench\n```\n\n### API Usage\n\n```rust\nuse nufast::{OscParams, VacuumBatch, MatterBatch};\n\nlet params = OscParams::default();\n\n\u002F\u002F Vacuum\nlet prob = nufast::vacuum(params, 1.0, 295.0, 0, 1); \u002F\u002F νe→νμ\n\n\u002F\u002F Matter (with density)\nlet prob = nufast::matter(params, 1.0, 295.0, 0, 1, 2.6); \u002F\u002F ρ = 2.6 g\u002Fcm³\n\n\u002F\u002F Batch computation\nlet energies: Vec\u003Cf64> = (1..1000).map(|i| i as f64 * 0.01).collect();\nlet probs = VacuumBatch::new(&params, &energies, 295.0, 0, 1).compute();\n```\n\n### Publish to crates.io\n\n```bash\n# Update version in Cargo.toml\n# Update CHANGELOG.md\ncargo publish --dry-run\ncargo publish\ngit tag v0.x.0\ngit push --tags\n```\n\n## Working with Zig (Faster!)\n\n### Build & Test\n\n```bash\ncd benchmarks\u002Fzig\nzig build\nzig build test\n\n# Release build\nzig build -Doptimize=ReleaseFast\n\n# WASM build\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n```\n\n### Performance\n\n| Implementation | Vacuum | Matter |\n|---------------|--------|--------|\n| Zig SIMD f64  | **25 ns** | **56 ns** |\n| Zig scalar    | 42 ns | 108 ns |\n| Rust          | 61 ns | 95 ns |\n| Python        | 14,700 ns | 21,900 ns |\n\n### API Usage (Zig)\n\n```zig\nconst nufast = @import(\"nufast\");\n\n\u002F\u002F Create parameters\nvar params = nufast.OscParams.default();\n\n\u002F\u002F Vacuum oscillation\nconst prob = nufast.vacuum(params, 1.0, 295.0, .e, .mu);\n\n\u002F\u002F Matter oscillation\nconst prob = nufast.matter(params, 1.0, 295.0, .e, .mu, 2.6, 2);\n\n\u002F\u002F PREM Earth model\nconst prob = nufast.prem_oscillation(params, 1.0, 8000.0, .mu, .e, true);\n```\n\n### WASM Build\n\n```bash\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\n# Output in wasm\u002F\nls wasm\u002F\n# nufast.wasm (~10.5 KB)\n# nufast.js\n# nufast.d.ts\n```\n\n## ITN Integration\n\nITN (Imagining the Neutrino) uses the Zig WASM build.\n\n**Files:**\n- `public\u002Fwasm\u002Fnufast.wasm` — Zig WASM binary\n- `src\u002Fphysics\u002Fnufast.js` — JS loader\n- `src\u002Fphysics\u002FwasmBridge.ts` — TypeScript bridge\n\n### Updating ITN with New WASM\n\n```bash\n# Build WASM\ncd nufast\u002Fbenchmarks\u002Fzig\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\n# Copy to ITN\ncp wasm\u002Fnufast.wasm ..\u002F..\u002F..\u002Fitn\u002Fpublic\u002Fwasm\u002F\ncp wasm\u002Fnufast.js ..\u002F..\u002F..\u002Fitn\u002Fsrc\u002Fphysics\u002F\ncp wasm\u002Fnufast.d.ts ..\u002F..\u002F..\u002Fitn\u002Fsrc\u002Fphysics\u002F\n\n# Update ITN version\ncd ..\u002F..\u002F..\u002Fitn\n# bump version in package.json\nbun run build\nbunx gh-pages -d dist\n```\n\n## Extended Features (Zig only)\n\n### PREM Earth Model\n\n6-layer density model for long-baseline experiments:\n\n```zig\n\u002F\u002F Calculate probability through Earth\nconst prob = nufast.prem_oscillation(\n    params,\n    energy_GeV,\n    baseline_km,\n    .mu,    \u002F\u002F from flavor\n    .e,     \u002F\u002F to flavor\n    true,   \u002F\u002F is_neutrino (false for antineutrino)\n);\n```\n\n### 4-Flavor Sterile Neutrinos\n\nVacuum-only (matter would need exact diagonalization):\n\n```zig\nconst sterile = @import(\"sterile\");\n\nvar params4 = sterile.SterileParams.default();\nparams4.theta_14 = 0.1;\nparams4.dm2_41 = 1.0;\n\nconst prob = sterile.vacuum_4flavor(params4, E, L, .e, .e);\n```\n\n### Non-Standard Interactions (NSI)\n\nComplex ε matrix modifying matter potential:\n\n```zig\nconst nsi = @import(\"nsi\");\n\nvar eps = nsi.NsiParams.zero();\neps.eps_ee = 0.1;\neps.eps_emu = std.math.complex(0.05, 0.02);\n\nconst prob = nsi.matter_nsi(params, E, L, .mu, .e, rho, eps);\n```\n\n## Benchmarking\n\n### Run Benchmarks\n\n```bash\n# Rust\ncargo bench\n\n# Zig\nzig build bench\n.\u002Fzig-out\u002Fbin\u002Fbenchmark\n```\n\n### Benchmark Paper\n\nLocated in `paper\u002Fnufast-benchmark.typ`:\n\n```bash\ntypst compile nufast-benchmark.typ\n```\n\n## Configuration\n\n### `repo_path`\n\nPath to nufast repository. Default: `~\u002Fnufast`\n\n### `zig_path`\n\nPath to Zig implementation. Default: `~\u002Fnufast\u002Fbenchmarks\u002Fzig`\n\n### `wasm_output`\n\nPath for WASM output. Default: `~\u002Fnufast\u002Fbenchmarks\u002Fzig\u002Fwasm`\n\n## Troubleshooting\n\n**Tests fail with floating point differences**\n- Use `expectApproxEqAbs` with tolerance ~1e-10\n- Physics validation: compare against Python reference\n\n**WASM too large**\n- Use `-Doptimize=ReleaseSmall`\n- Strip debug info\n- Check for unused imports\n\n**Matter calculation unstable**\n- Increase `n_newton` iterations\n- Check for very low densities (\u003C 0.1 g\u002Fcm³)\n- Validate energy is in GeV, baseline in km\n\n## Related Projects\n\n- **ITN:** Interactive visualization using nufast WASM\n- **pytrino:** Original Python implementation (Baala's undergrad)\n- **NuPy:** Earlier Python library (capstone)\n- **nosc:** Older Rust neutrino engine\n","# NuFast Neutrino Physics\n\nnufast is a neutrino oscillation probability library. Port of Denton & Parke's NuFast algorithm.\n\n**Repo:** https:\u002F\u002Fgithub.com\u002Fplanckeon\u002Fnufast\n**crates.io:** https:\u002F\u002Fcrates.io\u002Fcrates\u002Fnufast\n**Live demo (ITN):** https:\u002F\u002Fplanckeon.github.io\u002Fitn\u002F\n\n## Project Structure\n\n```\nnufast\u002F\n├── src\u002F                    # Rust library\n│   ├── lib.rs\n│   ├── vacuum.rs           # Vacuum oscillations\n│   ├── matter.rs           # Matter effects\n│   └── types.rs\n├── benchmarks\u002Fzig\u002F         # Zig implementation (faster!)\n│   ├── build.zig\n│   ├── build.zig.zon\n│   ├── src\u002F\n│   │   ├── nufast.zig      # Main library\n│   │   ├── sterile.zig     # 4-flavor\n│   │   ├── nsi.zig         # Non-standard interactions\n│   │   ├── prem.zig        # Earth model\n│   │   ├── c_exports.zig   # C FFI\n│   │   └── wasm_exports.zig\n│   └── wasm\u002F               # WASM output\n├── bindings\u002Fpython\u002F        # Python ctypes wrapper\n├── paper\u002F                  # Typst benchmark paper\n├── Cargo.toml\n└── README.md\n```\n\n## Physics Background\n\n### What It Computes\n\nNeutrino oscillation probabilities: the chance that a neutrino of flavor α becomes flavor β after traveling distance L with energy E.\n\n**Flavors:** electron (e), muon (μ), tau (τ)\n\n**Key formula:** P(να → νβ) = f(θ₁₂, θ₁₃, θ₂₃, δ_CP, Δm²₂₁, Δm²₃₁, L, E, ρ)\n\n### PMNS Matrix Parameters\n\n| Parameter | Description | Typical Value |\n|-----------|-------------|---------------|\n| θ₁₂ | Solar angle | 33.4° |\n| θ₁₃ | Reactor angle | 8.6° |\n| θ₂₃ | Atmospheric angle | 49° |\n| δ_CP | CP phase | -90° to +90° |\n| Δm²₂₁ | Solar mass splitting | 7.5×10⁻⁵ eV² |\n| Δm²₃₁ | Atm mass splitting | 2.5×10⁻³ eV² |\n\n### Experiment Presets\n\nBuilt-in configurations for major experiments:\n\n| Experiment | Baseline | Energy | Channel |\n|------------|----------|--------|---------|\n| T2K | 295 km | ~0.6 GeV | νμ→νe |\n| NOvA | 810 km | ~2 GeV | νμ→νe |\n| DUNE | 1300 km | ~3 GeV | νμ→νe |\n| Hyper-K | 295 km | ~0.6 GeV | νμ→νe |\n| JUNO | 53 km | ~3 MeV | ν̄e→ν̄e |\n| Daya Bay | 1.6 km | ~3 MeV | ν̄e→ν̄e |\n| KamLAND | 180 km | ~3 MeV | ν̄e→ν̄e |\n\n## Commands\n\n### `nufast-build`\n\nBuild the nufast library (Rust and Zig).\n\n**Example:**\n```\nnufast-build\n```\n\n**Response:**\n```\nBuilding Rust library...\ncargo build --release\n   Compiling nufast v0.5.0\n    Finished release [optimized] target(s) in 2.3s\n\nBuilding Zig implementation...\ncd benchmarks\u002Fzig\nzig build -Doptimize=ReleaseFast\nBuild successful!\n```\n\n### `nufast-test`\n\nRun tests for nufast.\n\n**Example:**\n```\nnufast-test\n```\n\n**Response:**\n```\nRunning Rust tests...\ncargo test\ntest result: ok. 42 passed; 0 failed\n\nRunning Zig tests...\nzig build test\nAll 38 tests passed!\n```\n\n### `nufast-bench`\n\nRun benchmarks to measure performance.\n\n**Example:**\n```\nnufast-bench\n```\n\n**Response:**\n```\nRunning Rust benchmarks...\ncargo bench\n\nRunning Zig benchmarks...\nzig build bench\n.\u002Fzig-out\u002Fbin\u002Fbenchmark\n\nResults:\n| Implementation | Vacuum | Matter |\n|---------------|--------|--------|\n| Zig SIMD f64  | 25 ns  | 56 ns  |\n| Zig scalar    | 42 ns  | 108 ns |\n| Rust          | 61 ns  | 95 ns  |\n| Python        | 14,700 ns | 21,900 ns |\n```\n\n### `nufast-wasm`\n\nBuild WASM version for web deployment.\n\n**Example:**\n```\nnufast-wasm\n```\n\n**Response:**\n```\nBuilding WASM...\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\nOutput in wasm\u002F:\n- nufast.wasm (~10.5 KB)\n- nufast.js\n- nufast.d.ts\n\nReady to deploy to ITN!\n```\n\n## Working with Rust\n\n### Build & Test\n\n```bash\ncd nufast\ncargo build --release\ncargo test\ncargo bench\n```\n\n### API Usage\n\n```rust\nuse nufast::{OscParams, VacuumBatch, MatterBatch};\n\nlet params = OscParams::default();\n\n\u002F\u002F Vacuum\nlet prob = nufast::vacuum(params, 1.0, 295.0, 0, 1); \u002F\u002F νe→νμ\n\n\u002F\u002F Matter (with density)\nlet prob = nufast::matter(params, 1.0, 295.0, 0, 1, 2.6); \u002F\u002F ρ = 2.6 g\u002Fcm³\n\n\u002F\u002F Batch computation\nlet energies: Vec\u003Cf64> = (1..1000).map(|i| i as f64 * 0.01).collect();\nlet probs = VacuumBatch::new(&params, &energies, 295.0, 0, 1).compute();\n```\n\n### Publish to crates.io\n\n```bash\n# Update version in Cargo.toml\n# Update CHANGELOG.md\ncargo publish --dry-run\ncargo publish\ngit tag v0.x.0\ngit push --tags\n```\n\n## Working with Zig (Faster!)\n\n### Build & Test\n\n```bash\ncd benchmarks\u002Fzig\nzig build\nzig build test\n\n# Release build\nzig build -Doptimize=ReleaseFast\n\n# WASM build\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n```\n\n### Performance\n\n| Implementation | Vacuum | Matter |\n|---------------|--------|--------|\n| Zig SIMD f64  | **25 ns** | **56 ns** |\n| Zig scalar    | 42 ns | 108 ns |\n| Rust          | 61 ns | 95 ns |\n| Python        | 14,700 ns | 21,900 ns |\n\n### API Usage (Zig)\n\n```zig\nconst nufast = @import(\"nufast\");\n\n\u002F\u002F Create parameters\nvar params = nufast.OscParams.default();\n\n\u002F\u002F Vacuum oscillation\nconst prob = nufast.vacuum(params, 1.0, 295.0, .e, .mu);\n\n\u002F\u002F Matter oscillation\nconst prob = nufast.matter(params, 1.0, 295.0, .e, .mu, 2.6, 2);\n\n\u002F\u002F PREM Earth model\nconst prob = nufast.prem_oscillation(params, 1.0, 8000.0, .mu, .e, true);\n```\n\n### WASM Build\n\n```bash\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\n# Output in wasm\u002F\nls wasm\u002F\n# nufast.wasm (~10.5 KB)\n# nufast.js\n# nufast.d.ts\n```\n\n## ITN Integration\n\nITN (Imagining the Neutrino) uses the Zig WASM build.\n\n**Files:**\n- `public\u002Fwasm\u002Fnufast.wasm` — Zig WASM binary\n- `src\u002Fphysics\u002Fnufast.js` — JS loader\n- `src\u002Fphysics\u002FwasmBridge.ts` — TypeScript bridge\n\n### Updating ITN with New WASM\n\n```bash\n# Build WASM\ncd nufast\u002Fbenchmarks\u002Fzig\nzig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall\n\n# Copy to ITN\ncp wasm\u002Fnufast.wasm ..\u002F..\u002F..\u002Fitn\u002Fpublic\u002Fwasm\u002F\ncp wasm\u002Fnufast.js ..\u002F..\u002F..\u002Fitn\u002Fsrc\u002Fphysics\u002F\ncp wasm\u002Fnufast.d.ts ..\u002F..\u002F..\u002Fitn\u002Fsrc\u002Fphysics\u002F\n\n# Update ITN version\ncd ..\u002F..\u002F..\u002Fitn\n# bump version in package.json\nbun run build\nbunx gh-pages -d dist\n```\n\n## Extended Features (Zig only)\n\n### PREM Earth Model\n\n6-layer density model for long-baseline experiments:\n\n```zig\n\u002F\u002F Calculate probability through Earth\nconst prob = nufast.prem_oscillation(\n    params,\n    energy_GeV,\n    baseline_km,\n    .mu,    \u002F\u002F from flavor\n    .e,     \u002F\u002F to flavor\n    true,   \u002F\u002F is_neutrino (false for antineutrino)\n);\n```\n\n### 4-Flavor Sterile Neutrinos\n\nVacuum-only (matter would need exact diagonalization):\n\n```zig\nconst sterile = @import(\"sterile\");\n\nvar params4 = sterile.SterileParams.default();\nparams4.theta_14 = 0.1;\nparams4.dm2_41 = 1.0;\n\nconst prob = sterile.vacuum_4flavor(params4, E, L, .e, .e);\n```\n\n### Non-Standard Interactions (NSI)\n\nComplex ε matrix modifying matter potential:\n\n```zig\nconst nsi = @import(\"nsi\");\n\nvar eps = nsi.NsiParams.zero();\neps.eps_ee = 0.1;\neps.eps_emu = std.math.complex(0.05, 0.02);\n\nconst prob = nsi.matter_nsi(params, E, L, .mu, .e, rho, eps);\n```\n\n## Benchmarking\n\n### Run Benchmarks\n\n```bash\n# Rust\ncargo bench\n\n# Zig\nzig build bench\n.\u002Fzig-out\u002Fbin\u002Fbenchmark\n```\n\n### Benchmark Paper\n\nLocated in `paper\u002Fnufast-benchmark.typ`:\n\n```bash\ntypst compile nufast-benchmark.typ\n```\n\n## Configuration\n\n### `repo_path`\n\nPath to nufast repository. Default: `~\u002Fnufast`\n\n### `zig_path`\n\nPath to Zig implementation. Default: `~\u002Fnufast\u002Fbenchmarks\u002Fzig`\n\n### `wasm_output`\n\nPath for WASM output. Default: `~\u002Fnufast\u002Fbenchmarks\u002Fzig\u002Fwasm`\n\n## Troubleshooting\n\n**Tests fail with floating point differences**\n- Use `expectApproxEqAbs` with tolerance ~1e-10\n- Physics validation: compare against Python reference\n\n**WASM too large**\n- Use `-Doptimize=ReleaseSmall`\n- Strip debug info\n- Check for unused imports\n\n**Matter calculation unstable**\n- Increase `n_newton` iterations\n- Check for very low densities (\u003C 0.1 g\u002Fcm³)\n- Validate energy is in GeV, baseline in km\n\n## Related Projects\n\n- **ITN:** Interactive visualization using nufast WASM\n- **pytrino:** Original Python implementation (Baala's undergrad)\n- **NuPy:** Earlier Python library (capstone)\n- **nosc:** Older Rust neutrino engine\n",{"name":5,"author":38,"config":39,"version":52,"category":53,"triggers":54,"description":7},"Baala Kataru",{"required":40,"properties":41},[],{"zig_path":42,"repo_path":46,"wasm_output":49},{"type":43,"default":44,"description":45},"string","~\u002Fnufast\u002Fbenchmarks\u002Fzig","Path to Zig implementation",{"type":43,"default":47,"description":48},"~\u002Fnufast","Path to nufast repository",{"type":43,"default":50,"description":51},"~\u002Fnufast\u002Fbenchmarks\u002Fzig\u002Fwasm","Path for WASM output","1.0.0","physics",[55,61,67],{"type":56,"patterns":57},"mention",[58,59,60,53],"nufast","neutrino","oscillation",{"type":27,"commands":62},[63,64,65,66],"nufast-build","nufast-test","nufast-bench","nufast-wasm",{"type":31,"patterns":68},[69,70,71],".*neutrino.*oscillation.*",".*pmns.*matrix.*",".*nufast.*","main","053df4b1eb4317debebb4df0c91bda09fb7464fe","src\u002Fskills\u002Fnufast_physics",0,"https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw","https:\u002F\u002Fgithub.com\u002Fbkataru","https:\u002F\u002Fbkataru.bearblog.dev\u002F","⟨e|acc⟩ resident technical wizard | ai\u002Fml\u002Fsys eng | hacking at it till grug says \"software go zoom\" | prev. computational physics in neutrino phenomenology","2026-10-31 07:05:10",{"source":8,"skillName":5,"commands":82,"prompt":92,"zipAvailable":93},[83,86,89],{"tool":84,"command":85},"npx","npx skills add bkataru\u002Fzeptoclaw --skill nufast-physics",{"tool":87,"command":88},"bunx","bunx skills add bkataru\u002Fzeptoclaw --skill nufast-physics",{"tool":90,"command":91},"pnpm","pnpm dlx skills add bkataru\u002Fzeptoclaw --skill nufast-physics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fnufast_physics\u002FSKILL.md",true,[95,101],{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"README.md","REFERENCE","参考文档",1780,"https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fnufast_physics\u002FREADME.md",{"path":102,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"skill.zig","OTHER","其他",8353,"https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fnufast_physics\u002Fskill.zig",[108,127,141,159,181,192],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":119,"publishedAt":33},"01M6CT88P82Q2WZDWYP1YPVMS8","zig-dev","Zig development workflow — build, test, WASM, benchmarks, release. Baala's primary language.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fzig_dev\u002FSKILL.md",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[120,121,32,20,122,22,123,124,125,29,30,126],"zig dev","dev","workflow","development","release","development workflow","language",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":33},"01M6CT862V8PVCBM0WR3WAMSVD","wsl-troubleshooting","WSL2 troubleshooting — DNS fixes, systemd, Windows interop, networking issues.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fwsl_troubleshooting\u002FSKILL.md",[],[134,135,136,137,138,139,140],"troubleshooting","wsl troubleshooting","windows","networking","issues","dns","systemd",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":33},"01M6CT82WP16J4PSQJ63A6HHRE","web-qa","Web app debugging — Chrome headless screenshots, CDN issues, SRI hash fixes, Canvas quirks.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fweb_qa\u002FSKILL.md",[147],{"categoryNo":148,"categoryName":149,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000009","前端开发",[151,152,153,154,138,155,156,157,158],"web qa","qa","web","debugging","chrome","canvas","screenshots","cdn",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":33},"01M6CT802TTBQ3P3ET96WFWAP4","semantic-search","Local semantic search for memory using Ollama embeddings.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fsemantic_search\u002FSKILL.md",[],[166,167,31,168,169,27,170,171,172,173,174,175,176,177,178,179,180],"semantic search","search","ollama","results","memory","http","index","vector","embeddings","file","api","json","text","model","find",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":33},"01M6CT7XBBE6NT23CCN0DXVJT4","rust-cargo","Rust\u002FCargo workflow — build, test, publish to crates.io, benchmarks, cross-compile.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Frust_cargo\u002FSKILL.md",[187],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},[189,21,190,122,22,191,29,30],"rust cargo","publish","compile",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":201,"publishedAt":33},"01M6CT7TC2WQN7SY7TB3R1PFWE","planckeon-sites","Deploy planckeon physics sites — Zola static sites, GitHub Pages, LaTeX\u002FKaTeX rendering.","https:\u002F\u002Fgithub.com\u002Fbkataru\u002Fzeptoclaw\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fplanckeon_sites\u002FSKILL.md",[198],{"categoryNo":199,"categoryName":200,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000011","运维与部署",[202,203,204,205,206,207,208,209,210,27,30,31,211],"planckeon sites","github","deploy","deployment","LaTeX","github pages","site","gh","branch","directory"]