Skip to content

Commit 80f140c

Browse files
perf(pow): reuse profile-band coordinate (bd-2g7oyh.377)
Same-worker RCH vmi1153651 pow_irrational: FL p50 1762.827 -> 1546.000 ns/op, mean 1748.443 -> 1548.118 ns/op; post host p50 1590.500, mean 1601.527. Score 9.0. Proof: RCH core pow_profile_exp_1_337 3/3 with golden SHA a55ce2571c9313994a6f82d9a0361017d72f8588f0a0ed9ef616e72f59ca002d unchanged; RCH ABI diff_pow_profile_exp_1_337_within_4_ulps passed; RCH cargo check -p frankenlibc-core --lib passed; rustfmt/diff-check passed; local allowlisted clippy passed.
1 parent c7376d9 commit 80f140c

4 files changed

Lines changed: 138 additions & 8 deletions

File tree

.beads/issues.jsonl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,7 @@
953953
{"id":"bd-2g7oyh.374","title":"[perf][no-gaps] pow_irrational exact-exponent table-polynomial residual","description":"Profile-backed target: glibc_baseline_math/pow_irrational remains slower at HEAD 4108467b on RCH worker vmi1227854. Focused remote baseline: frankenlibc_core p50=1069.352 ns/op, mean=1077.657, p95=1309.407, p99=1313.211; host_glibc p50=723.255, mean=739.991, p95=886.829, p99=1025.906. Command: RCH_REQUIRE_REMOTE=1 rch exec -- cargo bench -j 1 -p frankenlibc-bench --bench glibc_baseline_bench -- glibc_baseline_math/pow_irrational --noplot --sample-size 40 --warm-up-time 1 --measurement-time 3.\n\nAlien primitive: replace the existing exact-exponent pow(x,1.337) Chebyshev/Clenshaw loop with a lower-overhead proof-carrying table/polynomial evaluation artifact for the same exact exponent and [0.5,2.5) envelope. One lever only; preserve adjacent-exponent fallback, special-case routing, <=4 ULP vs glibc, and golden sha256 proof. Post-bench must use same worker vmi1227854 or be rejected as non-comparable.","status":"closed","priority":1,"issue_type":"task","assignee":"BoldFalcon","created_at":"2026-06-13T03:13:18.613555179Z","created_by":"ubuntu","updated_at":"2026-06-13T03:41:08.284408880Z","closed_at":"2026-06-13T03:41:08.284276309Z","close_reason":"Kept one source lever in exp.rs: compile-time Chebyshev-to-power conversion plus runtime degree-10 Estrin evaluation for exact pow(x,1.337) profile band. Same-worker RCH vmi1227854 baseline FL p50 1069.352ns mean 1077.657ns p95 1309.407ns p99 1313.211ns vs host p50 723.255ns mean 739.991ns; post FL p50 738.305ns mean 767.543ns p95 954.032ns p99 959.685ns vs host p50 776.336ns mean 790.930ns. Core pow_profile_exp_1_337 proof passed 3/3; ABI diff_pow_profile_exp_1_337_within_4_ulps passed; golden SHA a55ce2571c9313994a6f82d9a0361017d72f8588f0a0ed9ef616e72f59ca002d. Score 8.0.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["no-gaps","perf"],"dependencies":[{"issue_id":"bd-2g7oyh.374","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-13T03:13:18.613555179Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
954954
{"id":"bd-2g7oyh.375","title":"[perf][no-gaps] pow_irrational f64 profile-band kernel","description":"Pass 78 target after fresh remote-only broad profile and focused same-worker gate on vmi1153651. Broad route: pow_irrational FL p50 3038.486ns mean 3156.030ns vs host p50 1748.626ns mean 1886.399ns. Focused same-worker gate: FL p50 3158.688ns mean 3417.454ns vs host p50 1713.246ns mean 2245.744ns for pow(x,1.337) over [0.5,2.5). This is a reproduced material gap, not broad-profile noise. Scope: one source lever only in crates/frankenlibc-core/src/math/float.rs, with optional focused ABI proof in conformance_diff_math.rs. Candidate must be a materially different primitive from prior f32 powf coefficient-scheduling: generated/profile-band f64 minimax or Chebyshev/Estrin artifact for exact exponent 1.337, preserving special-case ordering, fallback outside the gated input band, 4-ULP glibc differential contract if already established, ordering/tie/RNG N/A, and golden math fixture sha256. Required loop: baseline captured above, inspect current implementation and prior rejects, harvest from alien-graveyard / alien-artifact-coding, implement one lever, prove behavior unchanged, RCH post on vmi1153651, keep only Score>=2.0 else restore/reject.","status":"closed","priority":1,"issue_type":"task","assignee":"BoldFalcon","created_at":"2026-06-13T03:16:44.646064344Z","created_by":"ubuntu","updated_at":"2026-06-13T03:41:16.820234273Z","closed_at":"2026-06-13T03:41:16.820146306Z","close_reason":"Duplicate tracker for bd-2g7oyh.374. Resolved by the same kept exp.rs Estrin power-basis lever: RCH vmi1227854 FL p50 1069.352 -> 738.305ns, mean 1077.657 -> 767.543ns; host post p50 776.336ns mean 790.930ns. Behavior proof: core pow_profile_exp_1_337 3/3 passed, ABI diff_pow_profile_exp_1_337_within_4_ulps passed, golden SHA a55ce2571c9313994a6f82d9a0361017d72f8588f0a0ed9ef616e72f59ca002d. Artifact: tests/artifacts/perf/bd-2g7oyh.374-pow-irrational-estrin.md.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["math","no-gaps","perf","pow"],"dependencies":[{"issue_id":"bd-2g7oyh.375","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-13T03:16:44.646064344Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
955955
{"id":"bd-2g7oyh.376","title":"[perf][no-gaps] exp10f generated profile-band approximation artifact","description":"Profile-backed target after post-pow reprofile on RCH worker vmi1153651. Broad route at be5169c4: exp10f FL p50 714.196ns mean 2014.117ns vs host p50 473.601ns mean 488.218ns, with FL mean distorted by a severe outlier but p50 materially slower. Focused same-worker gate reproduced: FL p50 672.555ns mean 675.040ns p95 789.234ns p99 808.628ns vs host p50 447.632ns mean 512.057ns p95 509.147ns p99 701.000ns. Prior bead bd-2g7oyh.373 rejected the simple f32-route swap because subnormal/low-range cases exceeded the <=4 ULP contract, so do NOT repeat that micro-family. Candidate must be a different primitive: generated/profile-band approximation artifact for exp10f over the benchmark envelope, e.g. range-reduced 10^x = 2^(x*log2(10)) with small table plus minimax/Estrin residual, preserving special cases, fallback outside the certified envelope, <=4 ULP ABI differential proof, and golden-output sha256. Required loop: baseline above, inspect current implementation/prior rejection artifact, reserve files, one source lever only, prove behavior unchanged, RCH post on vmi1153651, keep only Score>=2.0 else restore/reject.","status":"closed","priority":1,"issue_type":"task","assignee":"BoldFalcon","created_at":"2026-06-13T04:09:13.329206028Z","created_by":"ubuntu","updated_at":"2026-06-13T05:03:38.384304958Z","closed_at":"2026-06-13T05:03:38.384225628Z","close_reason":"KEPT Score 6.0: exp10f finite [0.5,2.5] table/residual kernel. RCH vmi1153651 proof passed: core exp10f 4/4 worst profile-band 3 ULP, ABI diff_exp10f_within_4_ulps passed, cargo check core lib passed. Same-worker FL improved p50 672.555->590.751 ns and mean 675.040->605.113 ns. Artifact tests/artifacts/perf/bd-2g7oyh.376-exp10f-profile-band.md.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["exp10f","math","no-gaps","perf"],"dependencies":[{"issue_id":"bd-2g7oyh.376","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-13T04:09:13.329206028Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
956+
{"id":"bd-2g7oyh.377","title":"[perf][no-gaps] pow_irrational profile-band coordinate-strength reduction","description":"Focused RCH gate after pass 80 reproduced a modest pow_irrational residual on vmi1153651: FrankenLibC p50 1762.827 ns/op, mean 1748.443; host glibc p50 1575.972, mean 1574.608. Prior pow_irrational Chebyshev/Estrin children are closed, so only attempt a distinct one-lever coordinate-strength reduction in the accepted profile-band artifact: reuse the segment-index scaled coordinate to compute t instead of recomputing the segment center. Must preserve exact exponent/base envelope, <=4 ULP proof, fallback bit identity, golden SHA update, and keep only if same-worker RCH post scores >=2.0.","status":"closed","priority":1,"issue_type":"task","assignee":"BoldFalcon","created_at":"2026-06-13T05:24:05.273290588Z","created_by":"ubuntu","updated_at":"2026-06-13T05:48:17.219648549Z","closed_at":"2026-06-13T05:48:17.219538661Z","close_reason":"Kept pow_irrational coordinate-strength reduction. Same-worker RCH vmi1153651 baseline FL p50 1762.827 ns mean 1748.443 vs post p50 1546.000 ns mean 1548.118 (1.14x p50, 1.13x mean); post host p50 1590.500 ns mean 1601.527. Proof: RCH core pow_profile_exp_1_337 3/3, golden SHA a55ce2571c9313994a6f82d9a0361017d72f8588f0a0ed9ef616e72f59ca002d unchanged; RCH ABI diff_pow_profile_exp_1_337_within_4_ulps passed; RCH cargo check -p frankenlibc-core --lib passed; rustfmt/diff-check passed; local allowlisted clippy passed. Score 9.0.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["no-gaps","perf"],"dependencies":[{"issue_id":"bd-2g7oyh.377","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-13T05:24:05.273290588Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
956957
{"id":"bd-2g7oyh.38","title":"[perf] qsort 4-byte swap specialization","description":"Profile-backed target from fresh RCH glibc_baseline_bench after f73cafd7 on worker vmi1149989: qsort_128_i32 FrankenLibC p50=2410.516ns p95=3458.206ns p99=3540.895ns mean=2559.625; host glibc p50=1988.379ns p95=2569.028ns p99=2592.369ns mean=2026.170. Malloc remains the largest absolute gap but malloc/elimination.rs is peer-dirty and active; BlackThrush owns string bd-2g7oyh.25. This is the next clean non-string profile-backed residual.\\n\\nCandidate lever: one safe-Rust stdlib/sort.rs swap micro-kernel only. Specialize swap_chunks for width==4 so qsort_128_i32 avoids the generic split_at_mut + swap_with_slice path while preserving the exact same element swap sites, compare calls, partition decisions, recursion shape, and byte results. All non-4 widths keep the existing generic path.\\n\\nAlien primitive card: fixed-width/register micro-kernel specialization for a hot inner loop, adapted from alien-graveyard micro-kernel/superoptimizer guidance. EV before measurement=(Impact 1 * Confidence 3 * Reuse 1)/(Effort 1 * Friction 1)=3. Fallback: restore source and close rejected if golden output changes or RCH qsort p50/mean/tails do not clear Score>=2.0.\\n\\nRequired proof: focused RCH qsort baseline before edit; pre/post qsort golden-output sha256 over the reverse-ish 128-i32 sorted result; isomorphism proof for compare ordering, equality tie behavior, element swap sequence, FP/RNG N/A; RCH post-bench and confirmation if noisy; RCH sort tests/check/clippy; touched-file rustfmt/diff-check; one lever only; close only if Score>=2.0, otherwise restore source and close rejected.","status":"closed","priority":1,"issue_type":"task","assignee":"MossyFern","created_at":"2026-06-03T10:40:32.920708462Z","created_by":"ubuntu","updated_at":"2026-06-03T10:55:00.102055155Z","closed_at":"2026-06-03T10:55:00.101958783Z","close_reason":"Rejected: qsort width-4 swap specialization failed the RCH real-win gate. Broad profile vmi1149989 qsort_128_i32 p50 2410.516ns p95 3458.206ns p99 3540.895ns mean 2559.625ns vs host p50 1988.379ns. Focused baseline vmi1153651 p50 7751.337ns p95 13340.911ns p99 16677.281ns mean 8563.939ns vs host p50 4541.030ns. Golden SHA256 stayed 6f1d71d33c28656abb499ebd7177b9eda2ee8d3d369d1fb3f4e131944932851a. Post vmi1227854 p50 2735.616ns mean 2743.964ns; confirmation vmi1227854 p50 2958.296ns mean 2957.595ns. No stable Score>=2.0 win; source restored, no sort.rs change retained.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["no-gaps","perf","qsort","stdlib"],"dependencies":[{"issue_id":"bd-2g7oyh.38","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-03T10:40:32.920708462Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
957958
{"id":"bd-2g7oyh.39","title":"[parity] ecvt/fcvt nan/inf sign convention divergence vs glibc","description":"Phase B differential parity hunt. glibc ecvt/fcvt embed the sign char in the returned buffer for non-finite inputs (\"-inf\"/\"-nan\") and report *sign=0, even for -nan. FrankenLibC returned bare \"inf\"/\"nan\" with *sign=1 for -inf and dropped the -nan sign. Also strverscmp verified parity-clean (0 mismatches over 200k fuzz cases vs glibc). Fixed in commit 9fd72def.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-06-03T11:34:03.870005089Z","created_by":"ubuntu","updated_at":"2026-06-03T11:34:11.783383442Z","closed_at":"2026-06-03T11:34:11.783292069Z","close_reason":"Fixed in 9fd72def (pushed main+master). Core nonfinite_cvt() emits sign-embedded \"-inf\"/\"-nan\" with is_negative=false; ABI ecvt_r/fcvt_r switched to is_sign_negative() && is_finite() so only finite negatives report sign=1. Verified vs host glibc 2.38 C probes on {nan,-nan,inf,-inf} for ecvt/fcvt/ecvt_r/fcvt_r. New pinned core unit test + ABI integration test. RCH: core 9/9, abi ecvt 4/4, core+abi clippy -D warnings clean, fmt clean. Finite-value behavior (decpt, leading-zero strip, rounded-to-zero, -0.0 sign=1) unchanged.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-2g7oyh.39","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-03T11:34:03.870005089Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
958959
{"id":"bd-2g7oyh.4","title":"[perf] strlen safe-SIMD 32B NUL scan","description":"PROFILE-BACKED TARGET from RCH string reprofile on vmi1156319 after commit 5c13048b (2026-06-02): strlen p50 raw 16=4.907ns, 64=12.828ns, 256=37.688ns, 1024=155.556ns, 4096=542.733ns. strlen still scans NUL with 8-byte SWAR words; strrchr now spends a large share in strlen before the reverse SIMD pass.\\n\\nLever: one code lever only - add a safe std::simd Simd<u8,32> NUL probe inside strlen before the existing SWAR/scalar exact-resolution path. Candidate panels break to the existing word/scalar resolver, preserving first-NUL ordering and unterminated-slice behavior.\\n\\nAlien primitive recommendation card: contiguous SIMD panel scanning / vectorized execution over byte control planes. EV estimate: Impact 4 x Confidence 4 x Reuse 2 / (Effort 1 x Friction 1) = 32. Fallback trigger: revert if golden string-test sha256 changes, if first-NUL/unterminated behavior changes, or if RCH post p50 does not improve at 1024/4096.\\n\\nArtifact proof obligations: RCH behavior baseline first, deterministic golden-output sha256 for string::str tests, isomorphism proof for first NUL index and strlen-fed strrchr ordering, no FP/RNG impact, RCH rebench/check/test/clippy before close.","status":"closed","priority":2,"issue_type":"task","assignee":"BlackThrush","created_at":"2026-06-02T19:24:06.510955626Z","created_by":"ubuntu","updated_at":"2026-06-02T20:05:22.626645607Z","closed_at":"2026-06-02T20:05:22.626547953Z","close_reason":"Superseded duplicate target. The same profile-backed strlen safe-SIMD lever shipped and closed as bd-2g7oyh.5 in commit 29c316a8 with tracker close a6131e18: same-worker RCH p50 64B 11.911->5.528ns, 256B 41.121->11.063ns, 1024B 164.438->37.864ns, 4096B 515.187->157.133ns; existing string-test sha256 unchanged 235e4da93b185ebe3f01964dd290d33f97b492e083f8bd5e4fbc39208023a507.","source_repo":"frankenlibc","source_repo_path":"/data/projects/frankenlibc","compaction_level":0,"original_size":0,"labels":["perf","simd","string"],"dependencies":[{"issue_id":"bd-2g7oyh.4","depends_on_id":"bd-2g7oyh","type":"parent-child","created_at":"2026-06-02T19:24:06.510955626Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}

.skill-loop-progress.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Skill Loop Progress
22
# Skill: extreme-software-optimization
3-
# Target: bd-2g7oyh no-gaps perf campaign / current pass bd-2g7oyh.376
4-
# Total Passes: 79
3+
# Target: bd-2g7oyh no-gaps perf campaign / current pass bd-2g7oyh.377
4+
# Total Passes: 80
55
# Started: 2026-06-07T18:14:00Z
66

7-
## Status: IN PROGRESS - Pass 79 exp10f profile-band table/residual artifact kept; close/push then reprofile
7+
## Status: IN PROGRESS - Pass 80 pow_irrational coordinate-strength reduction kept; close/push then reprofile
88

99
## Missions
1010
1. Finish the current in-flight perf bead with same-worker RCH evidence and behavior proof.
@@ -14,6 +14,15 @@
1414
5. Keep only Score >= 2.0, commit/close/push, then re-profile for the next shifted bottleneck.
1515

1616
## Completed Passes
17+
### Pass 80 - Pow Irrational Profile Coordinate Strength Reduction - 2026-06-13T05:35:00Z
18+
- Target: `bd-2g7oyh.377` / `pow(x, 1.337)` over `[0.5, 2.5)`.
19+
- Focused same-worker baseline: RCH `vmi1153651` FrankenLibC p50 `1762.827 ns`, mean `1748.443 ns`, p95 `2083.119 ns`, p99 `2151.252 ns` vs host p50 `1575.972 ns`, mean `1574.608 ns`, p95 `2272.597 ns`, p99 `2916.121 ns`.
20+
- Candidate: one source lever in `exp.rs`, preserving the exact exponent/base gate, accepted 16-segment degree-10 Chebyshev coefficient artifact, and Estrin evaluator while reusing the already-computed segment position to derive `t = 2 * frac(segment_position) - 1` instead of recomputing the segment center.
21+
- Proof: final-source RCH `vmi1153651` core `cargo test -j 1 -p frankenlibc-core --lib pow_profile_exp_1_337 -- --nocapture --test-threads=1` passed 3/3, including golden SHA `a55ce2571c9313994a6f82d9a0361017d72f8588f0a0ed9ef616e72f59ca002d`; final-source RCH `vmi1153651` ABI `diff_pow_profile_exp_1_337_within_4_ulps` passed. Dense/randomized core proof and ABI differential proof stayed within the existing `<=4 ULP` contract.
22+
- Validation notes: touched-file rustfmt and diff-check passed; RCH `vmi1153651` `cargo check -j 1 -p frankenlibc-core --lib` passed; local allowlisted focused clippy passed. Strict workspace clippy remains blocked by unrelated existing lint debt and was not run because this campaign uses crate-scoped gates only.
23+
- Same-worker post: RCH `vmi1153651` FrankenLibC p50 `1546.000 ns`, mean `1548.118 ns`, p95 `1797.195 ns`, p99 `1894.623 ns`; host p50 `1590.500 ns`, mean `1601.527 ns`, p95 `1875.499 ns`, p99 `2033.000 ns`. FrankenLibC improved `1.14x` by p50 and `1.13x` by mean vs baseline and now edges the same-worker host row.
24+
- Verdict: KEPT, Score 9.0; artifact `tests/artifacts/perf/bd-2g7oyh.377-pow-irrational-coordinate.md`. Next route: close/push this bead, then reprofile; if pow_irrational reappears, use a fundamentally different fused log2/exp2 or generated minimax primitive, not another coordinate micro-lever.
25+
1726
### Pass 79 - Exp10f Profile-band Table/Residual Kernel - 2026-06-13T05:02:00Z
1827
- Target: `bd-2g7oyh.376` / `exp10f(x)` over `[0.5, 2.5)`.
1928
- Focused same-worker baseline: RCH `vmi1153651` FrankenLibC p50 `672.555 ns`, mean `675.040 ns`, p95 `789.234 ns`, p99 `808.628 ns` vs host p50 `447.632 ns`, mean `512.057 ns`, p95 `509.147 ns`, p99 `701.000 ns`.

crates/frankenlibc-core/src/math/exp.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ const POW_MEDIUM_EXP_MAX: f64 = 3.0;
383383
const POW_PROFILE_EXP_1_337_BITS: u64 = 0x3ff5_645a_1cac_0831;
384384
const POW_PROFILE_EXP_1_337_SEGMENT_COUNT: usize = 16;
385385
const POW_PROFILE_EXP_1_337_SEGMENT_INDEX_SCALE: f64 = 8.0;
386-
const POW_PROFILE_EXP_1_337_SEGMENT_CENTER_MIN: f64 = 0.5625;
386+
#[cfg(test)]
387387
const POW_PROFILE_EXP_1_337_SEGMENT_CENTER_STEP: f64 = 0.125;
388388
const POW_PROFILE_EXP_1_337_SEGMENT_T_SCALE: f64 = 16.0;
389389
// Fixed-exponent source artifact for the profiled `pow(x, 1.337)` row. Split
@@ -729,12 +729,13 @@ fn pow_profile_exp_1_337_fast_path(base: f64, exponent: f64) -> Option<f64> {
729729
return None;
730730
}
731731

732-
let segment = ((base - EXP_MEDIUM_MIN) * POW_PROFILE_EXP_1_337_SEGMENT_INDEX_SCALE) as usize;
732+
let segment_position = (base - EXP_MEDIUM_MIN) * POW_PROFILE_EXP_1_337_SEGMENT_INDEX_SCALE;
733+
let segment = segment_position as usize;
733734
debug_assert!(segment < POW_PROFILE_EXP_1_337_SEGMENT_COUNT);
734735
let coeffs = &POW_PROFILE_EXP_1_337_POWER_COEFFS[segment];
735-
let center = POW_PROFILE_EXP_1_337_SEGMENT_CENTER_MIN
736-
+ (segment as f64) * POW_PROFILE_EXP_1_337_SEGMENT_CENTER_STEP;
737-
let t = (base - center) * POW_PROFILE_EXP_1_337_SEGMENT_T_SCALE;
736+
let t = (segment_position - segment as f64)
737+
* (POW_PROFILE_EXP_1_337_SEGMENT_T_SCALE / POW_PROFILE_EXP_1_337_SEGMENT_INDEX_SCALE)
738+
- 1.0;
738739

739740
Some(eval_degree10_estrin(t, coeffs))
740741
}

0 commit comments

Comments
 (0)