pub struct Scheme<R: CommutativeRing> { /* private fields */ }Expand description
A closed affine or projective scheme with one canonical defining ideal.
Implementations§
Source§impl<R: Field + Display> Scheme<R>
impl<R: Field + Display> Scheme<R>
Sourcepub fn base_change<M>(
&self,
map: &M,
) -> Result<Scheme<M::Target>, BaseChangeError>
pub fn base_change<M>( &self, map: &M, ) -> Result<Scheme<M::Target>, BaseChangeError>
Extend a closed affine or projective presentation along a checked field map, preserving its ambient kind and presentation data.
Source§impl<R: Field> Scheme<R>
impl<R: Field> Scheme<R>
Sourcepub fn blow_up_at(
&self,
center: &SchemePoint<R>,
) -> Result<BlowUp<R>, GeometryError>
pub fn blow_up_at( &self, center: &SchemePoint<R>, ) -> Result<BlowUp<R>, GeometryError>
Construct verified affine charts for the blow-up at one rational point.
Sourcepub fn tangent_cone(
&self,
point: &SchemePoint<R>,
) -> Result<Scheme<R>, GeometryError>
pub fn tangent_cone( &self, point: &SchemePoint<R>, ) -> Result<Scheme<R>, GeometryError>
Form the tangent cone from a degree-compatible Mora standard basis.
Sourcepub fn completion(
&self,
point: &SchemePoint<R>,
truncation: SeriesTruncation,
) -> Result<SchemeCompletion<R>, GeometryError>
pub fn completion( &self, point: &SchemePoint<R>, truncation: SeriesTruncation, ) -> Result<SchemeCompletion<R>, GeometryError>
Complete at a rational point to one explicit finite monomial order.
Source§impl Scheme<FiniteField>
impl Scheme<FiniteField>
Sourcepub fn point_counts<I>(
&self,
degrees: I,
) -> Result<PointCountSequence, PointCountError>where
I: IntoIterator<Item = u64>,
pub fn point_counts<I>(
&self,
degrees: I,
) -> Result<PointCountSequence, PointCountError>where
I: IntoIterator<Item = u64>,
Count points over each requested relative extension degree.
Source§impl<R: CommutativeRing> Scheme<R>
impl<R: CommutativeRing> Scheme<R>
Sourcepub fn coordinate_ring(&self) -> &PolynomialRing<R>
pub fn coordinate_ring(&self) -> &PolynomialRing<R>
Exact coordinate ring of the chosen ambient presentation.
Sourcepub fn defining_ideal(&self) -> &Ideal<PolynomialRing<R>>
pub fn defining_ideal(&self) -> &Ideal<PolynomialRing<R>>
Canonical defining ideal.
Sourcepub fn is_projective(&self) -> bool
pub fn is_projective(&self) -> bool
Whether this presentation has a projective ambient space.
Sourcepub fn affine_ambient(&self) -> Option<&AffineSpace<R>>
pub fn affine_ambient(&self) -> Option<&AffineSpace<R>>
Affine ambient space, when this is an affine presentation.
Sourcepub fn projective_ambient(&self) -> Option<&ProjectiveSpace<R>>
pub fn projective_ambient(&self) -> Option<&ProjectiveSpace<R>>
Projective ambient space, when this is a projective presentation.
Source§impl Scheme<RationalField>
impl Scheme<RationalField>
Sourcepub fn dimension(&self) -> Result<i64, SchemeError>
pub fn dimension(&self) -> Result<i64, SchemeError>
Dimension of this affine or projective presentation.
Sourcepub fn degree(&self) -> Result<Integer, SchemeError>
pub fn degree(&self) -> Result<Integer, SchemeError>
Standard-graded degree (multiplicity) of this presentation.
Sourcepub fn hilbert_polynomial(
&self,
) -> Result<Polynomial<RationalField>, SchemeError>
pub fn hilbert_polynomial( &self, ) -> Result<Polynomial<RationalField>, SchemeError>
Standard Hilbert polynomial of the homogeneous/filtered coordinate ring.
Sourcepub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>
pub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>
Rank-defect subscheme cut out by the expected-codimension Jacobian minors of the canonical defining basis.
Sourcepub fn singular_subscheme(&self) -> Result<Self, SchemeError>
pub fn singular_subscheme(&self) -> Result<Self, SchemeError>
Scheme-theoretic singular locus for an established complete- intersection presentation over this perfect field.
Sourcepub fn is_smooth(&self) -> Result<bool, SchemeError>
pub fn is_smooth(&self) -> Result<bool, SchemeError>
Decide smoothness when the exact complete-intersection Jacobian criterion applies.
Sourcepub fn to_json(&self) -> Result<String, NoetherError>
pub fn to_json(&self) -> Result<String, NoetherError>
Serialize this scheme presentation and canonical defining ideal.
Sourcepub fn from_json(value: &str) -> Result<Self, NoetherError>
pub fn from_json(value: &str) -> Result<Self, NoetherError>
Restore and revalidate this scheme presentation.
Source§impl Scheme<FiniteField>
impl Scheme<FiniteField>
Sourcepub fn dimension(&self) -> Result<i64, SchemeError>
pub fn dimension(&self) -> Result<i64, SchemeError>
Dimension of this affine or projective presentation.
Sourcepub fn degree(&self) -> Result<Integer, SchemeError>
pub fn degree(&self) -> Result<Integer, SchemeError>
Standard-graded degree (multiplicity) of this presentation.
Sourcepub fn hilbert_polynomial(
&self,
) -> Result<Polynomial<RationalField>, SchemeError>
pub fn hilbert_polynomial( &self, ) -> Result<Polynomial<RationalField>, SchemeError>
Standard Hilbert polynomial of the homogeneous/filtered coordinate ring.
Sourcepub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>
pub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>
Rank-defect subscheme cut out by the expected-codimension Jacobian minors of the canonical defining basis.
Sourcepub fn singular_subscheme(&self) -> Result<Self, SchemeError>
pub fn singular_subscheme(&self) -> Result<Self, SchemeError>
Scheme-theoretic singular locus for an established complete- intersection presentation over this perfect field.
Sourcepub fn is_smooth(&self) -> Result<bool, SchemeError>
pub fn is_smooth(&self) -> Result<bool, SchemeError>
Decide smoothness when the exact complete-intersection Jacobian criterion applies.
Sourcepub fn to_json(&self) -> Result<String, NoetherError>
pub fn to_json(&self) -> Result<String, NoetherError>
Serialize this scheme presentation and canonical defining ideal.
Sourcepub fn from_json(value: &str) -> Result<Self, NoetherError>
pub fn from_json(value: &str) -> Result<Self, NoetherError>
Restore and revalidate this scheme presentation.
Source§impl<R: Field> Scheme<R>
impl<R: Field> Scheme<R>
Sourcepub fn point<I>(&self, coordinates: I) -> Result<SchemePoint<R>, SchemeError>where
I: IntoIterator<Item = R::Element>,
pub fn point<I>(&self, coordinates: I) -> Result<SchemePoint<R>, SchemeError>where
I: IntoIterator<Item = R::Element>,
Validate one rational point and normalize projective coordinates.
Source§impl Scheme<FiniteField>
impl Scheme<FiniteField>
Sourcepub fn closed_points(&self) -> Result<FiniteSchemeClosedPointSet, SchemeError>
pub fn closed_points(&self) -> Result<FiniteSchemeClosedPointSet, SchemeError>
Solve a zero-dimensional affine scheme into closed points using a rational univariate representation and exact finite-field factorization.
This path never enumerates the base field. Proper residue extensions use deterministic Conway presentations when the current word- characteristic finite-field backend admits them.
Sourcepub fn rational_points(&self) -> Result<RationalPointEnumeration, SchemeError>
pub fn rational_points(&self) -> Result<RationalPointEnumeration, SchemeError>
Stream all rational points in canonical order.
Sourcepub fn rational_points_shard(
&self,
shard_index: usize,
shard_count: usize,
) -> Result<RationalPointEnumeration, SchemeError>
pub fn rational_points_shard( &self, shard_index: usize, shard_count: usize, ) -> Result<RationalPointEnumeration, SchemeError>
Stream one deterministic congruence shard of the canonical candidates.
Sourcepub fn point_count(
&self,
) -> Result<(Integer, PointCountCertificate), SchemeError>
pub fn point_count( &self, ) -> Result<(Integer, PointCountCertificate), SchemeError>
Count rational points with one deterministic compiled Rust pass.
Sourcepub fn point_count_partitioned(
&self,
shard_count: usize,
) -> Result<(Integer, PointCountCertificate), SchemeError>
pub fn point_count_partitioned( &self, shard_count: usize, ) -> Result<(Integer, PointCountCertificate), SchemeError>
Count rational points in deterministic checksum-bearing shards.
Trait Implementations§
Source§impl<R: CommutativeRing> Debug for Scheme<R>
impl<R: CommutativeRing> Debug for Scheme<R>
Source§impl<'de> Deserialize<'de> for Scheme<FiniteField>
impl<'de> Deserialize<'de> for Scheme<FiniteField>
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl<'de> Deserialize<'de> for Scheme<RationalField>
impl<'de> Deserialize<'de> for Scheme<RationalField>
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl<R: CommutativeRing> Display for Scheme<R>
impl<R: CommutativeRing> Display for Scheme<R>
Source§impl SemanticType for Scheme<FiniteField>
impl SemanticType for Scheme<FiniteField>
Source§const TYPE_ID: &'static str = "noether/commalg/Scheme@1"
const TYPE_ID: &'static str = "noether/commalg/Scheme@1"
Source§fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
Source§fn describe() -> &'static TypeDescription
fn describe() -> &'static TypeDescription
Source§impl SemanticType for Scheme<RationalField>
impl SemanticType for Scheme<RationalField>
Source§const TYPE_ID: &'static str = "noether/commalg/Scheme@1"
const TYPE_ID: &'static str = "noether/commalg/Scheme@1"
Source§fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
Source§fn describe() -> &'static TypeDescription
fn describe() -> &'static TypeDescription
impl<R: Eq + CommutativeRing> Eq for Scheme<R>
impl<R: CommutativeRing> StructuralPartialEq for Scheme<R>
Auto Trait Implementations§
impl<R> Freeze for Scheme<R>where
R: Freeze,
impl<R> RefUnwindSafe for Scheme<R>
impl<R> Send for Scheme<R>
impl<R> Sync for Scheme<R>
impl<R> Unpin for Scheme<R>where
R: Unpin,
impl<R> UnwindSafe for Scheme<R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more