Skip to content

fix: handle adjoint(vec) * vec in quick_cancel#858

Merged
AayushSabharwal merged 2 commits intomasterfrom
as/fix-quick-mulmul
Feb 12, 2026
Merged

fix: handle adjoint(vec) * vec in quick_cancel#858
AayushSabharwal merged 2 commits intomasterfrom
as/fix-quick-mulmul

Conversation

@AayushSabharwal
Copy link
Member

@github-actions
Copy link
Contributor

github-actions bot commented Feb 11, 2026

Benchmark Results (Julia vlts)

Time benchmarks
master 0c16c5c... master / 0c16c5c...
arithmetic/2-arg mul 13.5 ± 0.35 μs 13.5 ± 0.32 μs 1 ± 0.035
arithmetic/addition 0.0781 ± 0.001 ms 0.0789 ± 0.00091 ms 0.989 ± 0.017
arithmetic/division 27.1 ± 0.62 μs 27.3 ± 0.65 μs 0.993 ± 0.033
arithmetic/multiplication 0.0621 ± 0.0015 ms 0.0628 ± 0.002 ms 0.99 ± 0.039
overhead/acrule/a+2 2.35 ± 0.051 μs 2.41 ± 0.04 μs 0.979 ± 0.027
overhead/acrule/a+2+b 0.07 ± 0.001 μs 0.07 ± 0.01 μs 1 ± 0.14
overhead/acrule/a+b 4.13 ± 0.19 μs 4.22 ± 0.09 μs 0.979 ± 0.05
overhead/acrule/noop:Int 0.05 ± 0.01 μs 0.05 ± 0.01 μs 1 ± 0.28
overhead/acrule/noop:Sym 0.051 ± 0.01 μs 0.051 ± 0.01 μs 1 ± 0.28
overhead/get_degrees/large_poly 0.09 ± 0 μs 0.1 ± 0 μs 0.9 ± 0
overhead/rule/noop:Int 0.06 ± 0.01 μs 0.06 ± 0.01 μs 1 ± 0.24
overhead/rule/noop:Sym 0.06 ± 0.01 μs 0.07 ± 0.01 μs 0.857 ± 0.19
overhead/rule/noop:Term 0.061 ± 0.01 μs 0.07 ± 0.01 μs 0.871 ± 0.19
overhead/ruleset/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/ruleset/noop:Sym 0.311 ± 0.001 μs 0.301 ± 0.01 μs 1.03 ± 0.034
overhead/ruleset/noop:Term 1.22 ± 0.021 μs 1.22 ± 0.02 μs 1 ± 0.024
overhead/simplify/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/simplify/noop:Sym 30 ± 10 ns 30 ± 10 ns 1 ± 0.47
overhead/simplify/noop:Term 28.7 ± 0.87 μs 28.9 ± 0.82 μs 0.993 ± 0.041
overhead/simplify/randterm (+, *):serial 0.23 ± 0.0015 s 0.23 ± 0.0036 s 1 ± 0.017
overhead/simplify/randterm (+, *):thread 0.259 ± 0.017 s 0.256 ± 0.011 s 1.01 ± 0.077
overhead/simplify/randterm (/, *):serial 0.0868 ± 0.002 ms 0.0855 ± 0.0013 ms 1.02 ± 0.028
overhead/simplify/randterm (/, *):thread 0.0902 ± 0.0021 ms 0.0898 ± 0.0015 ms 1 ± 0.029
overhead/substitute/a 0.0421 ± 0.001 ms 0.0423 ± 0.00086 ms 0.995 ± 0.032
overhead/substitute/a,b 0.0513 ± 0.0012 ms 0.0506 ± 0.00094 ms 1.01 ± 0.03
overhead/substitute/a,b,c 0.0457 ± 0.001 ms 0.0465 ± 0.00085 ms 0.982 ± 0.029
polyform/easy_iszero 23.6 ± 0.55 μs 23.3 ± 0.47 μs 1.01 ± 0.031
polyform/isone 1.06 ± 0.024 ms 1.06 ± 0.018 ms 1 ± 0.028
polyform/isone:noop 0.089 ± 0.01 μs 0.09 ± 0.011 μs 0.989 ± 0.16
polyform/iszero 0.908 ± 0.024 ms 0.906 ± 0.016 ms 1 ± 0.031
polyform/iszero:noop 0.09 ± 0 μs 0.09 ± 0.01 μs 1 ± 0.11
polyform/simplify_fractions 1.15 ± 0.028 ms 1.15 ± 0.019 ms 1 ± 0.029
printing/large_poly 0.205 ± 0.0027 s 0.208 ± 0.0014 s 0.986 ± 0.015
time_to_load 1.23 ± 0.0063 s 1.24 ± 0.019 s 0.987 ± 0.016
Memory benchmarks
master 0c16c5c... master / 0c16c5c...
arithmetic/2-arg mul 0.077 k allocs: 2.69 kB 0.077 k allocs: 2.69 kB 1
arithmetic/addition 0.438 k allocs: 16 kB 0.438 k allocs: 16 kB 1
arithmetic/division 0.141 k allocs: 5.44 kB 0.141 k allocs: 5.44 kB 1
arithmetic/multiplication 0.356 k allocs: 11.7 kB 0.356 k allocs: 11.7 kB 1
overhead/acrule/a+2 0.033 k allocs: 1.23 kB 0.033 k allocs: 1.23 kB 1
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.045 k allocs: 1.77 kB 0.045 k allocs: 1.77 kB 1
overhead/acrule/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/get_degrees/large_poly 2 allocs: 32 B 2 allocs: 32 B 1
overhead/rule/noop:Int 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Sym 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Term 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/ruleset/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/ruleset/noop:Sym 3 allocs: 0.109 kB 3 allocs: 0.109 kB 1
overhead/ruleset/noop:Term 12 allocs: 0.391 kB 12 allocs: 0.391 kB 1
overhead/simplify/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Term 0.282 k allocs: 11.4 kB 0.282 k allocs: 11.4 kB 1
overhead/simplify/randterm (+, *):serial 2.21 M allocs: 0.0869 GB 2.21 M allocs: 0.0869 GB 1
overhead/simplify/randterm (+, *):thread 2.26 M allocs: 0.245 GB 2.25 M allocs: 0.244 GB 1
overhead/simplify/randterm (/, *):serial 0.781 k allocs: 29.4 kB 0.781 k allocs: 29.4 kB 1
overhead/simplify/randterm (/, *):thread 0.816 k allocs: 30.5 kB 0.816 k allocs: 30.5 kB 1
overhead/substitute/a 0.22 k allocs: 8.42 kB 0.22 k allocs: 8.42 kB 1
overhead/substitute/a,b 0.267 k allocs: 10.1 kB 0.267 k allocs: 10.1 kB 1
overhead/substitute/a,b,c 0.238 k allocs: 8.62 kB 0.238 k allocs: 8.62 kB 1
polyform/easy_iszero 0.127 k allocs: 4.48 kB 0.127 k allocs: 4.48 kB 1
polyform/isone 8 k allocs: 0.561 MB 8 k allocs: 0.561 MB 1
polyform/isone:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/iszero 6.72 k allocs: 0.465 MB 6.72 k allocs: 0.465 MB 1
polyform/iszero:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/simplify_fractions 8.65 k allocs: 0.587 MB 8.65 k allocs: 0.587 MB 1
printing/large_poly 1.86 M allocs: 0.082 GB 1.86 M allocs: 0.082 GB 1
time_to_load 0.153 k allocs: 14.5 kB 0.153 k allocs: 14.5 kB 1

@github-actions
Copy link
Contributor

github-actions bot commented Feb 11, 2026

Benchmark Results (Julia v1)

Time benchmarks
master 0c16c5c... master / 0c16c5c...
arithmetic/2-arg mul 10.5 ± 0.23 μs 10.6 ± 0.27 μs 0.99 ± 0.033
arithmetic/addition 0.0677 ± 0.00088 ms 0.0673 ± 0.00083 ms 1.01 ± 0.018
arithmetic/division 24.2 ± 0.54 μs 24.4 ± 0.61 μs 0.993 ± 0.033
arithmetic/multiplication 0.0532 ± 0.0017 ms 0.0545 ± 0.0021 ms 0.976 ± 0.049
overhead/acrule/a+2 2.19 ± 0.05 μs 2.15 ± 0.05 μs 1.02 ± 0.033
overhead/acrule/a+2+b 0.08 ± 0 μs 0.08 ± 0.001 μs 1 ± 0.013
overhead/acrule/a+b 3.82 ± 0.08 μs 3.73 ± 0.091 μs 1.02 ± 0.033
overhead/acrule/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/acrule/noop:Sym 0.07 ± 0.01 μs 0.07 ± 0.01 μs 1 ± 0.2
overhead/get_degrees/large_poly 0.08 ± 0 μs 0.08 ± 0 μs 1 ± 0
overhead/rule/noop:Int 0.061 ± 0.01 μs 0.07 ± 0.01 μs 0.871 ± 0.19
overhead/rule/noop:Sym 0.07 ± 0 μs 0.07 ± 0 μs 1 ± 0
overhead/rule/noop:Term 0.07 ± 0 μs 0.07 ± 0 μs 1 ± 0
overhead/ruleset/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/ruleset/noop:Sym 0.321 ± 0.02 μs 0.301 ± 0.011 μs 1.07 ± 0.077
overhead/ruleset/noop:Term 1.22 ± 0.031 μs 1.19 ± 0.021 μs 1.03 ± 0.032
overhead/simplify/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/simplify/noop:Sym 30 ± 10 ns 30 ± 10 ns 1 ± 0.47
overhead/simplify/noop:Term 27.3 ± 0.58 μs 27.1 ± 0.61 μs 1.01 ± 0.031
overhead/simplify/randterm (+, *):serial 0.193 ± 0.023 s 0.197 ± 0.023 s 0.978 ± 0.17
overhead/simplify/randterm (+, *):thread 0.261 ± 0.067 s 0.256 ± 0.04 s 1.02 ± 0.31
overhead/simplify/randterm (/, *):serial 0.0876 ± 0.0028 ms 0.0872 ± 0.0028 ms 1 ± 0.045
overhead/simplify/randterm (/, *):thread 0.0993 ± 0.009 ms 0.098 ± 0.009 ms 1.01 ± 0.13
overhead/substitute/a 0.0348 ± 0.00078 ms 0.0334 ± 0.00073 ms 1.04 ± 0.033
overhead/substitute/a,b 0.0428 ± 0.00093 ms 0.0412 ± 0.00093 ms 1.04 ± 0.033
overhead/substitute/a,b,c 0.0411 ± 0.0009 ms 0.0401 ± 0.00095 ms 1.03 ± 0.033
polyform/easy_iszero 18.9 ± 0.38 μs 18.9 ± 0.37 μs 1 ± 0.028
polyform/isone 0.918 ± 0.016 ms 0.907 ± 0.014 ms 1.01 ± 0.024
polyform/isone:noop 0.08 ± 0.01 μs 0.09 ± 0.01 μs 0.889 ± 0.15
polyform/iszero 0.797 ± 0.016 ms 0.788 ± 0.014 ms 1.01 ± 0.027
polyform/iszero:noop 0.09 ± 0.01 μs 0.09 ± 0.01 μs 1 ± 0.16
polyform/simplify_fractions 0.992 ± 0.025 ms 0.981 ± 0.023 ms 1.01 ± 0.035
printing/large_poly 0.187 ± 0.013 s 0.187 ± 0.013 s 0.996 ± 0.098
time_to_load 1.37 ± 0.044 s 1.36 ± 0.0097 s 1 ± 0.033
Memory benchmarks
master 0c16c5c... master / 0c16c5c...
arithmetic/2-arg mul 0.055 k allocs: 1.77 kB 0.055 k allocs: 1.77 kB 1
arithmetic/addition 0.3 k allocs: 10.3 kB 0.3 k allocs: 10.3 kB 1
arithmetic/division 0.131 k allocs: 4.75 kB 0.131 k allocs: 4.75 kB 1
arithmetic/multiplication 0.252 k allocs: 6.5 kB 0.252 k allocs: 6.5 kB 1
overhead/acrule/a+2 0.033 k allocs: 1.11 kB 0.033 k allocs: 1.11 kB 1
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.044 k allocs: 1.52 kB 0.044 k allocs: 1.52 kB 1
overhead/acrule/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/get_degrees/large_poly 2 allocs: 32 B 2 allocs: 32 B 1
overhead/rule/noop:Int 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Sym 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Term 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/ruleset/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/ruleset/noop:Sym 3 allocs: 0.109 kB 3 allocs: 0.109 kB 1
overhead/ruleset/noop:Term 12 allocs: 0.391 kB 12 allocs: 0.391 kB 1
overhead/simplify/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Term 0.276 k allocs: 9.89 kB 0.276 k allocs: 9.89 kB 1
overhead/simplify/randterm (+, *):serial 2.09 M allocs: 0.0744 GB 2.09 M allocs: 0.0744 GB 1
overhead/simplify/randterm (+, *):thread 2.25 M allocs: 0.236 GB 2.25 M allocs: 0.236 GB 1
overhead/simplify/randterm (/, *):serial 0.776 k allocs: 28.1 kB 0.776 k allocs: 28.1 kB 1
overhead/simplify/randterm (/, *):thread 0.911 k allocs: 0.0324 MB 0.911 k allocs: 0.0324 MB 1
overhead/substitute/a 0.168 k allocs: 5.98 kB 0.168 k allocs: 5.98 kB 1
overhead/substitute/a,b 0.217 k allocs: 7.59 kB 0.217 k allocs: 7.59 kB 1
overhead/substitute/a,b,c 0.223 k allocs: 7.72 kB 0.223 k allocs: 7.72 kB 1
polyform/easy_iszero 0.091 k allocs: 2.92 kB 0.091 k allocs: 2.92 kB 1
polyform/isone 10.9 k allocs: 0.579 MB 10.9 k allocs: 0.579 MB 1
polyform/isone:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/iszero 8.95 k allocs: 0.48 MB 8.95 k allocs: 0.48 MB 1
polyform/iszero:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/simplify_fractions 11.4 k allocs: 0.596 MB 11.4 k allocs: 0.596 MB 1
printing/large_poly 2.15 M allocs: 0.079 GB 2.15 M allocs: 0.079 GB 1
time_to_load 0.145 k allocs: 11 kB 0.145 k allocs: 11 kB 1

@AayushSabharwal AayushSabharwal merged commit 0369364 into master Feb 12, 2026
18 of 23 checks passed
@AayushSabharwal AayushSabharwal deleted the as/fix-quick-mulmul branch February 12, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unreachable reached

1 participant