-
Notifications
You must be signed in to change notification settings - Fork 134
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
[FTheoryTools] Unify blowup of singularities among toric varieties and schemes #3519
Changes from 6 commits
b3fbe8d
4100c89
e94edc2
256973f
bc3eca3
5835d13
d6292f8
4d54161
6901954
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -110,6 +110,15 @@ function _evaluate_plain(F::MPolyAnyMap{<: MPolyQuoRing}, u) | |
return evaluate(lift(u), _images(F)) | ||
end | ||
|
||
function _evaluate_plain(F::MPolyAnyMap{<:MPolyQuoRing, <:MPolyQuoRing}, u) | ||
# This workaround deals with the fact that arithmetic in quotient rings is TERRIBLY slow. | ||
# All the simplify calls make it unusable in this case, probably due to the fact that | ||
# setting `is_reduced` flags does not pay off in such iterative procedures. | ||
A = codomain(F) | ||
v = evaluate(lift(u), lift.(_images(F))) | ||
return simplify(A(v)) | ||
end | ||
|
||
Comment on lines
+113
to
+121
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No need to apologize for this in the comment! Arithmetic in quotients of polynomial rings is dead slow, when you reduce after each step. The art is to be rather lazy, not care about the choice of representative in complicated sequences of basic operations for a while and only reduce occasionally to normal form -- and of course whenever it is necessary to have a normal form as representative. This is precisely the philosophy you are pursuing here. |
||
function _evaluate_general(F::MPolyAnyMap{<: MPolyQuoRing}, u) | ||
if domain(F) === codomain(F) && coefficient_map(F) === nothing | ||
return evaluate(map_coefficients(coefficient_map(F), lift(u), | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this a
==
vs===
issue? Looks like an easy mistake.