Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Still broken for `LinearAlgebra.Symmetric` polynomial matrices, producing a `MethodError` because of a missing `oneunit` method. This, however, seems like a separate matter that would better be addressed by a separate pull request. Performance comparison: ``` $ ./julia -t 8 _ _ _ _(_)_ | Documentation: https://docs.julialang.org (_) | (_) (_) | _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 1.11.0-DEV.972 (2023-11-23) _/ |\__'_|_|_|\__'_| | Commit 9884e447e79 (1 day old master) |__/ | julia> using LinearAlgebra, DynamicPolynomials julia> @PolyVar a b c d e (a, b, c, d, e) julia> const m = diagm( -2 => fill(a, 14), -1 => fill(b, 15), 0 => fill(c, 16), 2 => fill(e, 14), 1 => fill(d, 15)) 16×16 Matrix{Polynomial{DynamicPolynomials.Commutative{DynamicPolynomials.CreationOrder}, Graded{LexOrder}, Int64}}: c d e 0 0 0 0 0 0 0 0 0 0 0 0 0 b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e 0 0 0 0 0 0 0 0 0 0 0 0 a b c d 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c julia> @time det(m); 9.301086 seconds (162.91 M allocations: 5.968 GiB, 9.55% gc time, 1.93% compilation time) julia> @time det(m); 9.197843 seconds (162.88 M allocations: 5.967 GiB, 10.97% gc time) julia> @time det(m); 9.628294 seconds (162.88 M allocations: 5.967 GiB, 10.74% gc time) ``` The above REPL session is with this commit applied. The same computation with MultivariatePolynomials v0.5.3 ran for multiple minutes before I decided to just kill it. Fixes #281
- Loading branch information