diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index a26659aa4..a70abfe5f 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.7","generation_timestamp":"2024-11-27T12:41:35","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.7","generation_timestamp":"2024-11-28T03:20:45","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/GF/index.html b/dev/GF/index.html index 80a95022b..3f6256b76 100644 --- a/dev/GF/index.html +++ b/dev/GF/index.html @@ -15,4 +15,4 @@ 7 julia> d = degree(R) -2 +2 diff --git a/dev/alghom/index.html b/dev/alghom/index.html index 805dda204..e3a834bed 100644 --- a/dev/alghom/index.html +++ b/dev/alghom/index.html @@ -135,4 +135,4 @@ Singular ideal over Singular polynomial ring (QQ),(x,y,z,w),(ds(4),C) with generators (4*x - 4*y + z^2 + 2*z*w + w^2) julia> K2 = kernel(idS) -Singular ideal over Singular polynomial ring (QQ),(a,b,c),(dp(3),C) with generators (0) +Singular ideal over Singular polynomial ring (QQ),(a,b,c),(dp(3),C) with generators (0) diff --git a/dev/caller/index.html b/dev/caller/index.html index e594a213a..6e152f0a3 100644 --- a/dev/caller/index.html +++ b/dev/caller/index.html @@ -73,4 +73,4 @@ julia> with_prot(true) do; return std(Ideal(R, x^5 - y*x + 1, y^6*x + x^2 + y^3)); end [4294967295:2]5s7s11s1214-s15 product criterion:1 chain criterion:1 -Singular ideal over Singular polynomial ring (QQ),(x,y),(dp(2),C) with generators (x^5 - x*y + 1, x*y^6 + y^3 + x^2, x^4*y^3 - y^6 - y^4 - x, y^9 + y^7 + x^3*y^3 + x*y^3 + x*y - 1) +Singular ideal over Singular polynomial ring (QQ),(x,y),(dp(2),C) with generators (x^5 - x*y + 1, x*y^6 + y^3 + x^2, x^4*y^3 - y^6 - y^4 - x, y^9 + y^7 + x^3*y^3 + x*y^3 + x*y - 1) diff --git a/dev/ideal/index.html b/dev/ideal/index.html index 7fb1e4ce3..2f70fe395 100644 --- a/dev/ideal/index.html +++ b/dev/ideal/index.html @@ -252,4 +252,4 @@ [x, y, u] [y, u, v] [x, u, w] - [u, v, w] + [u, v, w] diff --git a/dev/index.html b/dev/index.html index bf10728cf..29aeca325 100644 --- a/dev/index.html +++ b/dev/index.html @@ -16,4 +16,4 @@ Singular resolution: R^1 <- R^2 <- R^1 julia> F[1] -Singular ideal over Singular polynomial ring (QQ),(x,y),(dp(2),C) with generators (x - y, y^2 + 1) +Singular ideal over Singular polynomial ring (QQ),(x,y),(dp(2),C) with generators (x - y, y^2 + 1) diff --git a/dev/integer/index.html b/dev/integer/index.html index d56a5e292..d641c4705 100644 --- a/dev/integer/index.html +++ b/dev/integer/index.html @@ -41,4 +41,4 @@ true julia> 5 <= b -false +false diff --git a/dev/matrix/index.html b/dev/matrix/index.html index 5612742d2..a812d4b91 100644 --- a/dev/matrix/index.html +++ b/dev/matrix/index.html @@ -38,4 +38,4 @@ 0, 0, x*y + 5*u*w, 1] julia> N[4, 3] -x*y + 5*u*w +x*y + 5*u*w diff --git a/dev/modn/index.html b/dev/modn/index.html index cdcc161d5..eaa07506d 100644 --- a/dev/modn/index.html +++ b/dev/modn/index.html @@ -9,4 +9,4 @@ true julia> c = characteristic(R) -26 +26 diff --git a/dev/modp/index.html b/dev/modp/index.html index ad66c5dad..ceb50d231 100644 --- a/dev/modp/index.html +++ b/dev/modp/index.html @@ -17,4 +17,4 @@ 5 julia> b = Int(a) -5 +5 diff --git a/dev/module/index.html b/dev/module/index.html index ff580f3f4..bf707aaf1 100644 --- a/dev/module/index.html +++ b/dev/module/index.html @@ -176,4 +176,4 @@ julia> min = minimal_generating_set(M) 2-element Vector{svector{spoly{n_Q}}}: y*gen(2)+y*gen(1) - x*gen(1)-y*gen(2)-y*gen(1)+y^2*gen(2) + x*gen(1)-y*gen(2)-y*gen(1)+y^2*gen(2) diff --git a/dev/nemo/index.html b/dev/nemo/index.html index 4fbff219a..ff98b7fd8 100644 --- a/dev/nemo/index.html +++ b/dev/nemo/index.html @@ -2,4 +2,4 @@ Nemo rings and fields · Singular.jl

Nemo rings and fields

Any type that satisfies AbstractAlgebra.jl Ring or Field interface, such as all Nemo ring and field types, can be used as coefficient rings in Singular.jl. These are implemented via the Singular n_RingElem{T} and n_FieldElem{T} types, parameterised by the given Nemo/AbstractAlgebra element type.

The associated parent object of type N_Ring{T} or N_Field{T} can be constructed by a call to the CoefficientRing constructor. In practice, however, this constructor is only used internally, and Nemo rings and fields work directly as Singular coefficient rings, and all the coercions and ad hoc functions that one would expect to be present are implemented.

The Singular.jl n_RingElem (resp. n_FieldElem) types belong directly to the abstract type RingElem (resp. FieldElem) and their parent object types belong to the abstract type Ring (resp. Field). We also have the following type definitions for compatibility with previous version of Singular.jl.

const N_unknown{T} = Union{N_Ring{T}, N_Field{T}}
 const n_unknown{T} = Union{n_RingElem{T}, n_FieldElem{T}}

All of the Singular polynomial arithmetic should work for any Nemo ring and everything, including ideals, modules, standard basis, syzygies, resolutions, etc., should work with any Nemo field.

Specialised efficient wrappers exist for certain Nemo coefficient ring types.

Nemo ring functionality

Singular.jl foreign ring types provide all of the AbstractAlgebra defined ring and some field functionality.

https://nemocas.github.io/AbstractAlgebra.jl/latest/ring

https://nemocas.github.io/AbstractAlgebra.jl/latest/field

Parts of the Euclidean Ring interface may also be implemented, though Singular will report an error if division is meaningless (even after cancelling zero divisors).

https://nemocas.github.io/AbstractAlgebra.jl/latest/euclidean_interface

Below, we describe the functionality that is specific to the Singular foreign ring interface that is not already listed at the given links.

Constructors

Given an AbstractAlgebra compatible ring $R$, e.g. a Nemo ring, we have the following constructor, which returns the associated Singular.jl coefficient ring.

CoefficientRing(R::Ring)

If there are generators to be coerced from Nemo/AbstractAlgebra into corresponding elements, the Singular.jl coefficient ring can be used to coerce them to a Singular n_RingElem or n_FieldElem element.

Examples

R, x = Nemo.polynomial_ring(ZZ, "x")
 S = CoefficientRing(R)
-t = S(x)

Note that it is unlikely that a user directly needs to construct the Singular coefficient ring from a Nemo ring, since the Singular.jl constructors are designed to accept Nemo coefficient rings directly. Singular.jl automatically constructs the required Singular coefficient ring and makes use of it.

+t = S(x)

Note that it is unlikely that a user directly needs to construct the Singular coefficient ring from a Nemo ring, since the Singular.jl constructors are designed to accept Nemo coefficient rings directly. Singular.jl automatically constructs the required Singular coefficient ring and makes use of it.

diff --git a/dev/noncommutative/index.html b/dev/noncommutative/index.html index 0e13fc8dc..c50559422 100644 --- a/dev/noncommutative/index.html +++ b/dev/noncommutative/index.html @@ -88,4 +88,4 @@ julia> push_term!(B, QQ(-1), Int[]); julia> finish(B) -2*z*y*x*z - 1 +2*z*y*x*z - 1 diff --git a/dev/polynomial/index.html b/dev/polynomial/index.html index 564d6448b..aab4feb8c 100644 --- a/dev/polynomial/index.html +++ b/dev/polynomial/index.html @@ -117,4 +117,4 @@ p = x^5 + y^3+1 -p2 change_base_ring(CoefficientRing(Nemo.QQ), p) +p2 change_base_ring(CoefficientRing(Nemo.QQ), p) diff --git a/dev/qring/index.html b/dev/qring/index.html index 3e481e548..83ced99df 100644 --- a/dev/qring/index.html +++ b/dev/qring/index.html @@ -18,4 +18,4 @@ Singular ideal over Singular polynomial ring (QQ),(x,y),(dp(2),C) with generators (x*y, y^3, x^2 + y^2) julia> base_ring(quotient_ideal(Q1)) == base_ring(quotient_ideal(Q2)) -true +true diff --git a/dev/rational/index.html b/dev/rational/index.html index 11ca39dae..185566227 100644 --- a/dev/rational/index.html +++ b/dev/rational/index.html @@ -33,4 +33,4 @@ 1 julia> q2 = reconstruct(ZZ(7), 5) --1//2 +-1//2 diff --git a/dev/resolution/index.html b/dev/resolution/index.html index c0af93f22..0522fb24a 100644 --- a/dev/resolution/index.html +++ b/dev/resolution/index.html @@ -59,4 +59,4 @@ Singular resolution: R^1 <- R^5 <- R^6 <- R^2 julia> M = minres(F) -Singular resolution: R^1 <- R^5 <- R^5 <- R^1 +Singular resolution: R^1 <- R^5 <- R^5 <- R^1 diff --git a/dev/transExt/index.html b/dev/transExt/index.html index d3a8cde1b..1eff990b4 100644 --- a/dev/transExt/index.html +++ b/dev/transExt/index.html @@ -41,4 +41,4 @@ a1 a2 a3 - a4 + a4 diff --git a/dev/vector/index.html b/dev/vector/index.html index 31cc068a2..9923f3fb8 100644 --- a/dev/vector/index.html +++ b/dev/vector/index.html @@ -41,4 +41,4 @@ x^5*gen(1)+2*x^3*gen(2)+x^2*gen(3)+3*y^2*gen(2)+gen(1) julia> w = jet(v, 3) -2*x^3*gen(2)+x^2*gen(3)+3*y^2*gen(2)+gen(1) +2*x^3*gen(2)+x^2*gen(3)+3*y^2*gen(2)+gen(1)