pub struct ChowRing { /* private fields */ }Expand description
The integral Chow ring of a product of projective spaces.
For dimensions n_1, ..., n_r, this is represented as
Z[h_1, ..., h_r] / (h_1^(n_1+1), ..., h_r^(n_r+1)).
Implementations§
Source§impl ChowRing
impl ChowRing
Sourcepub fn new(
projective_dimensions: impl Into<Vec<usize>>,
) -> Result<Self, IntersectionTheoryError>
pub fn new( projective_dimensions: impl Into<Vec<usize>>, ) -> Result<Self, IntersectionTheoryError>
Construct the Chow ring of P^(n_1) x ... x P^(n_r).
Sourcepub fn projective_dimensions(&self) -> &[usize]
pub fn projective_dimensions(&self) -> &[usize]
Dimensions of the projective-space factors.
Sourcepub fn factor_count(&self) -> usize
pub fn factor_count(&self) -> usize
Number of projective-space factors.
Sourcepub fn generator(
&self,
factor: usize,
) -> Result<ChowClass, IntersectionTheoryError>
pub fn generator( &self, factor: usize, ) -> Result<ChowClass, IntersectionTheoryError>
Hyperplane class pulled back from one projective-space factor.
Sourcepub fn generators(&self) -> Vec<ChowClass>
pub fn generators(&self) -> Vec<ChowClass>
All hyperplane generators in factor order.
Sourcepub fn from_terms(
&self,
terms: impl IntoIterator<Item = (Vec<usize>, Integer)>,
) -> Result<ChowClass, IntersectionTheoryError>
pub fn from_terms( &self, terms: impl IntoIterator<Item = (Vec<usize>, Integer)>, ) -> Result<ChowClass, IntersectionTheoryError>
Construct and canonicalize an integral class from sparse terms.
Sourcepub fn from_rational_terms(
&self,
terms: impl IntoIterator<Item = (Vec<usize>, Rational)>,
) -> Result<RationalChowClass, IntersectionTheoryError>
pub fn from_rational_terms( &self, terms: impl IntoIterator<Item = (Vec<usize>, Rational)>, ) -> Result<RationalChowClass, IntersectionTheoryError>
Construct and canonicalize a rational class from sparse terms.
Sourcepub fn integrate(
&self,
class: &ChowClass,
) -> Result<Integer, IntersectionTheoryError>
pub fn integrate( &self, class: &ChowClass, ) -> Result<Integer, IntersectionTheoryError>
Integrate the top-degree component of an integral ambient class.
Sourcepub fn integrate_rational(
&self,
class: &RationalChowClass,
) -> Result<Rational, IntersectionTheoryError>
pub fn integrate_rational( &self, class: &RationalChowClass, ) -> Result<Rational, IntersectionTheoryError>
Integrate the top-degree component of a rational ambient class.
Sourcepub fn to_json(&self) -> Result<String, NoetherError>
pub fn to_json(&self) -> Result<String, NoetherError>
Serialize this ring to canonical typed JSON.
Sourcepub fn from_json(value: &str) -> Result<Self, NoetherError>
pub fn from_json(value: &str) -> Result<Self, NoetherError>
Deserialize and validate a Chow ring from canonical JSON.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ChowRing
impl<'de> Deserialize<'de> for ChowRing
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl SemanticType for ChowRing
impl SemanticType for ChowRing
Source§const TYPE_ID: &'static str = "noether/commalg/ChowRing@1"
const TYPE_ID: &'static str = "noether/commalg/ChowRing@1"
Versioned, language-neutral semantic identity.
Source§fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
Serialize without backend- or language-specific identity.
Source§fn describe() -> &'static TypeDescription
fn describe() -> &'static TypeDescription
Return static discovery metadata for the type.
impl Eq for ChowRing
impl StructuralPartialEq for ChowRing
Auto Trait Implementations§
impl Freeze for ChowRing
impl RefUnwindSafe for ChowRing
impl Send for ChowRing
impl Sync for ChowRing
impl Unpin for ChowRing
impl UnwindSafe for ChowRing
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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