JuliaImages / QRCoders.jl

Creating QR Codes within Julia
https://juliaimages.org/QRCoders.jl/
MIT License
67 stars 11 forks source link

Gauss elimination for linear equation #44

Closed RexWzh closed 1 year ago

RexWzh commented 1 year ago

Main changes:

Gauss elimination vs Forney algorithm(by QRDecoders) msglen, necwords fillblank fillblankbyFA
200, 50 1.555 ms (2661 allocations: 3.11 MiB) 441.152 μs (1611 allocations: 913.47 KiB)
125, 125 1.163 ms (2136 allocations: 1.87 MiB) 277.765 μs (509 allocations: 100.38 KiB)
50, 200 441.152 μs (1611 allocations: 913.47 KiB) 564.711 μs (809 allocations: 220.78 KiB)

A rough estimation:


@johnnychen94 I just add some tools for GF(256) in src/equation.jl, after some checking, I think it's ready to merge. In general, Forney algorithm is faster than Gauss elimination unless M << N. However, blankbyFA can cause dependency warning as mentioned in https://github.com/JuliaImages/QRCoders.jl/issues/42. So the function blankbyFA is used in test only.

codecov[bot] commented 1 year ago

Codecov Report

Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (2c70b52) compared to base (0d8f5bc). Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #44 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 9 10 +1 Lines 577 616 +39 ========================================= + Hits 577 616 +39 ``` | [Impacted Files](https://codecov.io/gh/JuliaImages/QRCoders.jl/pull/44?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages) | Coverage Δ | | |---|---|---| | [src/polynomial.jl](https://codecov.io/gh/JuliaImages/QRCoders.jl/pull/44/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages#diff-c3JjL3BvbHlub21pYWwuamw=) | `100.00% <100.00%> (ø)` | | | [src/styles/equation.jl](https://codecov.io/gh/JuliaImages/QRCoders.jl/pull/44/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages#diff-c3JjL3N0eWxlcy9lcXVhdGlvbi5qbA==) | `100.00% <100.00%> (ø)` | | | [src/styles/locate.jl](https://codecov.io/gh/JuliaImages/QRCoders.jl/pull/44/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages#diff-c3JjL3N0eWxlcy9sb2NhdGUuamw=) | `100.00% <100.00%> (ø)` | | Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaImages)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.