diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index ef3b72523..98921143c 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.6","generation_timestamp":"2024-11-25T20:05:29","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.6","generation_timestamp":"2024-11-26T03:18:53","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/GF/index.html b/dev/GF/index.html index 5822c4860..c0e26fdee 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 72a5d1623..d17471524 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 b9a50353e..3c959c1d6 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 7415eb6d7..2c34bb787 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 f031cbfdd..5cbf94aa2 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 698fbf078..776c5c611 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 eb964681b..2765ad90e 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 29d493a86..8fc7eddac 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 d24d29d86..4432dc426 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 c858450cf..3131d08fe 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 1c110e8f9..54a63ad8e 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 78d8c7996..90017d6e3 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 2894764b2..4f436988c 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 642db7729..77df33c68 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 20f2f0aa3..ce6d1a703 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 15273f90e..d6cf4f628 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 87ebb79bf..963eb0904 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 5f63cc328..8325ad27b 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)