Skip to content

Fix negative check in show_add function#865

Merged
AayushSabharwal merged 1 commit intoJuliaSymbolics:masterfrom
s-celles:patch-1
Feb 23, 2026
Merged

Fix negative check in show_add function#865
AayushSabharwal merged 1 commit intoJuliaSymbolics:masterfrom
s-celles:patch-1

Conversation

@s-celles
Copy link
Contributor

Closes #864

@s-celles s-celles changed the title Refactor negative check in show_add function Fix negative check in show_add function Feb 20, 2026
@github-actions
Copy link
Contributor

Benchmark Results (Julia vlts)

Time benchmarks
master 3bddbd5... master / 3bddbd5...
arithmetic/2-arg mul 13.1 ± 0.28 μs 12.8 ± 0.33 μs 1.02 ± 0.034
arithmetic/addition 0.0788 ± 0.00094 ms 0.0784 ± 0.0014 ms 1.01 ± 0.021
arithmetic/division 27 ± 0.63 μs 26.2 ± 0.6 μs 1.03 ± 0.034
arithmetic/multiplication 0.0629 ± 0.0019 ms 0.0612 ± 0.0026 ms 1.03 ± 0.053
overhead/acrule/a+2 2.4 ± 0.24 μs 2.37 ± 0.25 μs 1.02 ± 0.15
overhead/acrule/a+2+b 0.09 ± 0.01 μs 0.07 ± 0.01 μs 1.29 ± 0.23
overhead/acrule/a+b 4.14 ± 0.3 μs 4.09 ± 0.3 μs 1.01 ± 0.1
overhead/acrule/noop:Int 0.05 ± 0.001 μs 0.05 ± 0.01 μs 1 ± 0.2
overhead/acrule/noop:Sym 0.07 ± 0 μs 0.05 ± 0.01 μs 1.4 ± 0.28
overhead/get_degrees/large_poly 0.1 ± 0.001 μs 0.081 ± 0.01 μs 1.23 ± 0.15
overhead/rule/noop:Int 0.1 ± 0.01 μs 0.061 ± 0.01 μs 1.64 ± 0.31
overhead/rule/noop:Sym 0.08 ± 0.009 μs 0.06 ± 0.01 μs 1.33 ± 0.27
overhead/rule/noop:Term 0.08 ± 0.009 μs 0.07 ± 0.01 μs 1.14 ± 0.21
overhead/ruleset/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/ruleset/noop:Sym 0.301 ± 0.001 μs 0.31 ± 0.01 μs 0.971 ± 0.031
overhead/ruleset/noop:Term 1.2 ± 0.021 μs 1.22 ± 0.02 μs 0.984 ± 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.6 ± 1.3 μs 28.2 ± 0.9 μs 1.02 ± 0.058
overhead/simplify/randterm (+, *):serial 0.234 ± 0.0052 s 0.233 ± 0.0017 s 1 ± 0.024
overhead/simplify/randterm (+, *):thread 0.268 ± 0.02 s 0.263 ± 0.0084 s 1.02 ± 0.083
overhead/simplify/randterm (/, *):serial 0.0874 ± 0.0027 ms 0.0836 ± 0.0023 ms 1.05 ± 0.044
overhead/simplify/randterm (/, *):thread 0.0909 ± 0.0027 ms 0.0871 ± 0.0026 ms 1.04 ± 0.044
overhead/substitute/a 0.0421 ± 0.0012 ms 0.0418 ± 0.0012 ms 1.01 ± 0.041
overhead/substitute/a,b 0.0506 ± 0.0015 ms 0.0503 ± 0.0013 ms 1.01 ± 0.039
overhead/substitute/a,b,c 0.0462 ± 0.0012 ms 0.0455 ± 0.0013 ms 1.02 ± 0.04
polyform/easy_iszero 23.5 ± 0.49 μs 22.4 ± 0.48 μs 1.05 ± 0.032
polyform/isone 1.06 ± 0.033 ms 1.08 ± 0.037 ms 0.979 ± 0.046
polyform/isone:noop 0.09 ± 0.009 μs 0.09 ± 0.001 μs 1 ± 0.1
polyform/iszero 0.904 ± 0.026 ms 0.922 ± 0.033 ms 0.981 ± 0.045
polyform/iszero:noop 0.09 ± 0.01 μs 0.09 ± 0 μs 1 ± 0.11
polyform/simplify_fractions 1.16 ± 0.031 ms 1.17 ± 0.041 ms 0.986 ± 0.044
printing/large_poly 0.212 ± 0.0037 s 0.212 ± 0.0022 s 1 ± 0.02
time_to_load 1.27 ± 0.02 s 1.31 ± 0.0098 s 0.973 ± 0.017
Memory benchmarks
master 3bddbd5... master / 3bddbd5...
arithmetic/2-arg mul 0.078 k allocs: 2.72 kB 0.077 k allocs: 2.69 kB 1.01
arithmetic/addition 0.438 k allocs: 16 kB 0.438 k allocs: 16 kB 1
arithmetic/division 0.142 k allocs: 5.47 kB 0.141 k allocs: 5.44 kB 1.01
arithmetic/multiplication 0.356 k allocs: 11.7 kB 0.356 k allocs: 11.7 kB 1
overhead/acrule/a+2 0.034 k allocs: 1.25 kB 0.033 k allocs: 1.23 kB 1.01
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.047 k allocs: 1.8 kB 0.045 k allocs: 1.77 kB 1.02
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.298 k allocs: 11.6 kB 0.282 k allocs: 11.4 kB 1.02
overhead/simplify/randterm (+, *):serial 2.3 M allocs: 0.0882 GB 2.21 M allocs: 0.0869 GB 1.02
overhead/simplify/randterm (+, *):thread 2.35 M allocs: 0.246 GB 2.26 M allocs: 0.245 GB 1.01
overhead/simplify/randterm (/, *):serial 0.844 k allocs: 30.4 kB 0.781 k allocs: 29.4 kB 1.03
overhead/simplify/randterm (/, *):thread 0.879 k allocs: 31.5 kB 0.816 k allocs: 30.5 kB 1.03
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.133 k allocs: 4.58 kB 0.127 k allocs: 4.48 kB 1.02
polyform/isone 8.34 k allocs: 0.567 MB 8 k allocs: 0.561 MB 1.01
polyform/isone:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/iszero 6.87 k allocs: 0.467 MB 6.72 k allocs: 0.465 MB 1.01
polyform/iszero:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/simplify_fractions 8.82 k allocs: 0.59 MB 8.65 k allocs: 0.587 MB 1.01
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

Benchmark Results (Julia v1)

Time benchmarks
master 3bddbd5... master / 3bddbd5...
arithmetic/2-arg mul 10.6 ± 0.27 μs 10.8 ± 0.35 μs 0.979 ± 0.04
arithmetic/addition 0.068 ± 0.00083 ms 0.0691 ± 0.00074 ms 0.984 ± 0.016
arithmetic/division 25 ± 0.63 μs 25.4 ± 0.69 μs 0.984 ± 0.036
arithmetic/multiplication 0.053 ± 0.0018 ms 0.0516 ± 0.0018 ms 1.03 ± 0.05
overhead/acrule/a+2 2.14 ± 0.07 μs 2.19 ± 0.05 μs 0.977 ± 0.039
overhead/acrule/a+2+b 0.08 ± 0.01 μs 0.08 ± 0.01 μs 1 ± 0.18
overhead/acrule/a+b 3.73 ± 0.11 μs 3.78 ± 0.07 μs 0.987 ± 0.034
overhead/acrule/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/acrule/noop:Sym 0.07 ± 0.01 μs 0.061 ± 0.01 μs 1.15 ± 0.25
overhead/get_degrees/large_poly 0.09 ± 0.01 μs 0.09 ± 0.01 μs 1 ± 0.16
overhead/rule/noop:Int 0.07 ± 0.01 μs 0.061 ± 0.01 μs 1.15 ± 0.25
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.32 ± 0.029 μs 0.321 ± 0.03 μs 0.997 ± 0.13
overhead/ruleset/noop:Term 1.18 ± 0.03 μs 1.18 ± 0.011 μs 0.999 ± 0.027
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 26.6 ± 0.57 μs 26.7 ± 0.61 μs 0.997 ± 0.031
overhead/simplify/randterm (+, *):serial 0.191 ± 0.024 s 0.194 ± 0.027 s 0.984 ± 0.19
overhead/simplify/randterm (+, *):thread 0.253 ± 0.048 s 0.241 ± 0.043 s 1.05 ± 0.27
overhead/simplify/randterm (/, *):serial 0.0853 ± 0.0025 ms 0.0863 ± 0.0031 ms 0.988 ± 0.046
overhead/simplify/randterm (/, *):thread 0.0945 ± 0.0081 ms 0.0955 ± 0.0088 ms 0.99 ± 0.13
overhead/substitute/a 0.0339 ± 0.00071 ms 0.0347 ± 0.00079 ms 0.976 ± 0.03
overhead/substitute/a,b 0.0419 ± 0.00091 ms 0.0428 ± 0.001 ms 0.979 ± 0.032
overhead/substitute/a,b,c 0.0403 ± 0.00086 ms 0.0408 ± 0.0011 ms 0.988 ± 0.034
polyform/easy_iszero 19.1 ± 0.4 μs 19.3 ± 0.39 μs 0.986 ± 0.029
polyform/isone 0.914 ± 0.015 ms 0.918 ± 0.015 ms 0.995 ± 0.023
polyform/isone:noop 0.08 ± 0.001 μs 0.08 ± 0.01 μs 1 ± 0.13
polyform/iszero 0.792 ± 0.013 ms 0.798 ± 0.015 ms 0.993 ± 0.025
polyform/iszero:noop 0.09 ± 0.001 μs 0.08 ± 0.01 μs 1.12 ± 0.14
polyform/simplify_fractions 0.989 ± 0.049 ms 0.995 ± 0.017 ms 0.994 ± 0.052
printing/large_poly 0.191 ± 0.018 s 0.196 ± 0.012 s 0.972 ± 0.11
time_to_load 1.4 ± 0.012 s 1.41 ± 0.0088 s 0.995 ± 0.011
Memory benchmarks
master 3bddbd5... master / 3bddbd5...
arithmetic/2-arg mul 0.056 k allocs: 1.78 kB 0.056 k allocs: 1.78 kB 1
arithmetic/addition 0.3 k allocs: 10.3 kB 0.3 k allocs: 10.3 kB 1
arithmetic/division 0.132 k allocs: 4.77 kB 0.132 k allocs: 4.77 kB 1
arithmetic/multiplication 0.252 k allocs: 6.5 kB 0.252 k allocs: 6.5 kB 1
overhead/acrule/a+2 0.034 k allocs: 1.12 kB 0.034 k allocs: 1.12 kB 1
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.046 k allocs: 1.55 kB 0.046 k allocs: 1.55 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.284 k allocs: 10 kB 0.284 k allocs: 10 kB 1
overhead/simplify/randterm (+, *):serial 2.16 M allocs: 0.0755 GB 2.16 M allocs: 0.0754 GB 1
overhead/simplify/randterm (+, *):thread 2.32 M allocs: 0.237 GB 2.32 M allocs: 0.237 GB 1
overhead/simplify/randterm (/, *):serial 0.783 k allocs: 28.2 kB 0.783 k allocs: 28.2 kB 1
overhead/simplify/randterm (/, *):thread 0.918 k allocs: 0.0325 MB 0.918 k allocs: 0.0325 MB 1
overhead/substitute/a 0.172 k allocs: 6.05 kB 0.172 k allocs: 6.05 kB 1
overhead/substitute/a,b 0.223 k allocs: 7.69 kB 0.223 k allocs: 7.69 kB 1
overhead/substitute/a,b,c 0.229 k allocs: 7.81 kB 0.229 k allocs: 7.81 kB 1
polyform/easy_iszero 0.092 k allocs: 2.94 kB 0.092 k allocs: 2.94 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.97 k allocs: 0.48 MB 8.96 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 510b122 into JuliaSymbolics:master Feb 23, 2026
15 of 21 checks passed
@s-celles
Copy link
Contributor Author

Thanks @AayushSabharwal for this merge

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.

Display Error with Negative Symbolic Coefficients

2 participants