-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes Xor simplification with simplify to be consistent with other boolean operators #26500
Conversation
This change makes it so Xor will properly Simplify when simplify is called on it, in the same way that and and or currently do
also added a regression test.
✅ Hi, I am the SymPy bot. I'm here to help you write a release notes entry. Please read the guide on how to write release notes.
Click here to see the pull request description that was parsed.
|
Benchmark results from GitHub Actions Lower numbers are good, higher numbers are bad. A ratio less than 1 Significantly changed benchmark results (PR vs master) Significantly changed benchmark results (master vs previous release) | Change | Before [2487dbb5] | After [8b09ff24] | Ratio | Benchmark (Parameter) |
|----------|----------------------|---------------------|---------|----------------------------------------------------------------------|
| - | 70.4±1ms | 43.8±0.6ms | 0.62 | integrate.TimeIntegrationRisch02.time_doit_risch(10) |
| + | 19.1±0.2μs | 30.8±0.7μs | 1.61 | integrate.TimeIntegrationRisch03.time_doit(1) |
| - | 5.56±0.03ms | 2.85±0.03ms | 0.51 | logic.LogicSuite.time_load_file |
| - | 73.7±0.3ms | 28.9±0.3ms | 0.39 | polys.TimeGCD_GaussInt.time_op(1, 'dense') |
| - | 25.9±0.09ms | 16.9±0.2ms | 0.65 | polys.TimeGCD_GaussInt.time_op(1, 'expr') |
| - | 74.0±0.4ms | 29.0±0.3ms | 0.39 | polys.TimeGCD_GaussInt.time_op(1, 'sparse') |
| - | 255±2ms | 124±0.5ms | 0.49 | polys.TimeGCD_GaussInt.time_op(2, 'dense') |
| - | 257±2ms | 124±0.6ms | 0.48 | polys.TimeGCD_GaussInt.time_op(2, 'sparse') |
| - | 657±1ms | 370±1ms | 0.56 | polys.TimeGCD_GaussInt.time_op(3, 'dense') |
| - | 657±4ms | 372±2ms | 0.57 | polys.TimeGCD_GaussInt.time_op(3, 'sparse') |
| - | 501±2μs | 286±0.8μs | 0.57 | polys.TimeGCD_LinearDenseQuadraticGCD.time_op(1, 'dense') |
| - | 1.80±0.01ms | 1.05±0.01ms | 0.58 | polys.TimeGCD_LinearDenseQuadraticGCD.time_op(2, 'dense') |
| - | 5.79±0.01ms | 3.09±0.02ms | 0.53 | polys.TimeGCD_LinearDenseQuadraticGCD.time_op(3, 'dense') |
| - | 448±2μs | 231±2μs | 0.51 | polys.TimeGCD_QuadraticNonMonicGCD.time_op(1, 'dense') |
| - | 1.49±0.01ms | 666±4μs | 0.45 | polys.TimeGCD_QuadraticNonMonicGCD.time_op(2, 'dense') |
| - | 4.89±0.03ms | 1.64±0ms | 0.34 | polys.TimeGCD_QuadraticNonMonicGCD.time_op(3, 'dense') |
| - | 377±1μs | 206±1μs | 0.55 | polys.TimeGCD_SparseGCDHighDegree.time_op(1, 'dense') |
| - | 2.42±0.02ms | 1.23±0.01ms | 0.51 | polys.TimeGCD_SparseGCDHighDegree.time_op(3, 'dense') |
| - | 10.0±0.03ms | 4.33±0.02ms | 0.43 | polys.TimeGCD_SparseGCDHighDegree.time_op(5, 'dense') |
| - | 363±2μs | 170±1μs | 0.47 | polys.TimeGCD_SparseNonMonicQuadratic.time_op(1, 'dense') |
| - | 2.45±0.02ms | 895±9μs | 0.37 | polys.TimeGCD_SparseNonMonicQuadratic.time_op(3, 'dense') |
| - | 9.63±0.1ms | 2.61±0.01ms | 0.27 | polys.TimeGCD_SparseNonMonicQuadratic.time_op(5, 'dense') |
| - | 1.04±0.01ms | 429±3μs | 0.41 | polys.TimePREM_LinearDenseQuadraticGCD.time_op(3, 'dense') |
| - | 1.74±0.01ms | 500±4μs | 0.29 | polys.TimePREM_LinearDenseQuadraticGCD.time_op(3, 'sparse') |
| - | 5.90±0.04ms | 1.81±0.02ms | 0.31 | polys.TimePREM_LinearDenseQuadraticGCD.time_op(5, 'dense') |
| - | 8.48±0.1ms | 1.48±0.01ms | 0.17 | polys.TimePREM_LinearDenseQuadraticGCD.time_op(5, 'sparse') |
| - | 286±3μs | 64.0±0.5μs | 0.22 | polys.TimePREM_QuadraticNonMonicGCD.time_op(1, 'sparse') |
| - | 3.41±0.04ms | 396±3μs | 0.12 | polys.TimePREM_QuadraticNonMonicGCD.time_op(3, 'dense') |
| - | 4.03±0.05ms | 278±0.8μs | 0.07 | polys.TimePREM_QuadraticNonMonicGCD.time_op(3, 'sparse') |
| - | 6.98±0.03ms | 1.27±0.01ms | 0.18 | polys.TimePREM_QuadraticNonMonicGCD.time_op(5, 'dense') |
| - | 8.79±0.06ms | 841±2μs | 0.1 | polys.TimePREM_QuadraticNonMonicGCD.time_op(5, 'sparse') |
| - | 4.98±0.02ms | 2.99±0.01ms | 0.6 | polys.TimeSUBRESULTANTS_LinearDenseQuadraticGCD.time_op(2, 'sparse') |
| - | 12.4±0.08ms | 6.61±0.04ms | 0.53 | polys.TimeSUBRESULTANTS_LinearDenseQuadraticGCD.time_op(3, 'dense') |
| - | 22.1±0.09ms | 9.05±0.02ms | 0.41 | polys.TimeSUBRESULTANTS_LinearDenseQuadraticGCD.time_op(3, 'sparse') |
| - | 5.21±0.02ms | 867±6μs | 0.17 | polys.TimeSUBRESULTANTS_QuadraticNonMonicGCD.time_op(1, 'sparse') |
| - | 12.6±0.1ms | 7.07±0.03ms | 0.56 | polys.TimeSUBRESULTANTS_QuadraticNonMonicGCD.time_op(2, 'sparse') |
| - | 104±0.7ms | 25.7±0.1ms | 0.25 | polys.TimeSUBRESULTANTS_QuadraticNonMonicGCD.time_op(3, 'dense') |
| - | 168±1ms | 54.3±0.08ms | 0.32 | polys.TimeSUBRESULTANTS_QuadraticNonMonicGCD.time_op(3, 'sparse') |
| - | 175±1μs | 112±0.9μs | 0.64 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(1, 'dense') |
| - | 356±2μs | 214±2μs | 0.6 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(1, 'sparse') |
| - | 4.30±0.01ms | 832±10μs | 0.19 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(3, 'dense') |
| - | 5.24±0.01ms | 386±1μs | 0.07 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(3, 'sparse') |
| - | 19.9±0.3ms | 2.78±0.01ms | 0.14 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(5, 'dense') |
| - | 22.8±0.09ms | 623±0.7μs | 0.03 | polys.TimeSUBRESULTANTS_SparseGCDHighDegree.time_op(5, 'sparse') |
| - | 479±4μs | 133±3μs | 0.28 | polys.TimeSUBRESULTANTS_SparseNonMonicQuadratic.time_op(1, 'sparse') |
| - | 4.61±0.1ms | 613±2μs | 0.13 | polys.TimeSUBRESULTANTS_SparseNonMonicQuadratic.time_op(3, 'dense') |
| - | 5.22±0.04ms | 138±0.6μs | 0.03 | polys.TimeSUBRESULTANTS_SparseNonMonicQuadratic.time_op(3, 'sparse') |
| - | 13.5±0.04ms | 1.27±0ms | 0.09 | polys.TimeSUBRESULTANTS_SparseNonMonicQuadratic.time_op(5, 'dense') |
| - | 14.3±0.4ms | 142±0.5μs | 0.01 | polys.TimeSUBRESULTANTS_SparseNonMonicQuadratic.time_op(5, 'sparse') |
| - | 134±0.6μs | 74.6±0.6μs | 0.56 | solve.TimeMatrixOperations.time_rref(3, 0) |
| - | 251±2μs | 88.4±2μs | 0.35 | solve.TimeMatrixOperations.time_rref(4, 0) |
| - | 24.0±0.08ms | 10.3±0.04ms | 0.43 | solve.TimeSolveLinSys189x49.time_solve_lin_sys |
| - | 29.7±0.4ms | 15.7±0.2ms | 0.53 | solve.TimeSparseSystem.time_linsolve_Aaug(20) |
| - | 57.4±0.2ms | 25.1±0.1ms | 0.44 | solve.TimeSparseSystem.time_linsolve_Aaug(30) |
| - | 29.5±0.1ms | 15.4±0.1ms | 0.52 | solve.TimeSparseSystem.time_linsolve_Ab(20) |
| - | 57.4±0.2ms | 25.2±0.2ms | 0.44 | solve.TimeSparseSystem.time_linsolve_Ab(30) |
Full benchmark results can be found as artifacts in GitHub Actions |
References to other Issues or PRs
Fixes #25827
Brief description of what is fixed or changed
Changed Xor simplification to use .to_anf() so that simplify() works on it for simple simplifications.
Other comments
Release Notes
NO ENTRY