You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't understand the output of prune_with_map_projection. To port it over to Oscar, I need this function to tell me which of the generators of the corresponding factor module are non-minimal. I.e. if I take
julia> R, (x, y) = Singular.polynomial_ring(Singular.QQ, ["x", "y"])
(Singular polynomial ring (QQ),(x,y),(dp(2),C), spoly{n_Q}[x, y])
julia> v = vector(R, x, R(-1))
x*gen(1)-gen(2)
julia> M = Singular.Module(R, v)
Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
x*gen(1)-gen(2)
then prune_with_map_projection returns
julia> Singular.prune_with_map_projection(M)
(Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
0, [0], Int32[1, 2])
and as far as I understood the last entry of this should instead be Int32[1] since we kept around gen(1) and scratched gen(2).
Similarly
julia> v = vector(R, R(-1), x)
x*gen(2)-gen(1)
julia> M = Singular.Module(R, v)
Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
x*gen(2)-gen(1)
julia> Singular.prune_with_map_projection(M)
(Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
0, [0], Int32[1, 1])
Here the last entry should instead be Int32[2] since we kept around gen(2) and scratched gen(1).
julia> M = Singular.Module(R, v)
Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
x*gen(1)-gen(2)
```
then `prune_with_map_projection` returns
```
julia> Singular.prune_with_map_projection(M)
(Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
0, [0], Int32[1, 2])
```
and as far as I understood the last entry of this should instead be `Int32[1]` since we kept around `gen(1)` and scratched `gen(2)`.
The size of the Int32 vector is always rank(parent(M))
[1,2] maps gen(1) to gen(1), gen(20 to gen(2), but result has only rank
1 -> scratched `gen(2)`
Similarly
```
julia> v = vector(R, R(-1), x)
x*gen(2)-gen(1)
julia> M = Singular.Module(R, v)
Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
x*gen(2)-gen(1)
julia> Singular.prune_with_map_projection(M)
(Singular Module over Singular polynomial ring (QQ),(x,y),(dp(2),C), with Generators:
0, [0], Int32[1, 1])
```
Here the last entry should instead be `Int32[2]` since we kept around `gen(2)` and scratched `gen(1)`.
here map gen(1) to gen(1) and gen(2) to gen(1),
they cannot go to the same: -> scratched `gen(1)`
If there are equel entries, the last wins, the other are scratched.
If there are entries large than the resulting rank, these components are
scratched.
I don't understand the output of
prune_with_map_projection
. To port it over to Oscar, I need this function to tell me which of the generators of the corresponding factor module are non-minimal. I.e. if I takethen
prune_with_map_projection
returnsand as far as I understood the last entry of this should instead be
Int32[1]
since we kept aroundgen(1)
and scratchedgen(2)
.Similarly
Here the last entry should instead be
Int32[2]
since we kept aroundgen(2)
and scratchedgen(1)
.Maybe I just don't understand the output? @ederc @hannes14
The text was updated successfully, but these errors were encountered: