pub struct KashiwaraCrystal { /* private fields */ }Expand description
A finite type-A Kashiwara crystal represented by its colored graph.
Vertices are stable VertexId values 0..vertex_count. A zero-based
index i selects the partial raising and lowering operators e_i and
f_i. Weights are stored in fundamental-weight coordinates. The complete
Cartan matrix is defining context, so equal-rank but mathematically
different crystal families cannot be combined accidentally.
Implementations§
Source§impl KashiwaraCrystal
impl KashiwaraCrystal
Sourcepub fn type_a_letters(rank: usize) -> Result<Self, CombinError>
pub fn type_a_letters(rank: usize) -> Result<Self, CombinError>
Construct the standard letter crystal B(Lambda_1) of type A_rank.
Sourcepub fn type_a_tableaux(
rank: usize,
shape: &Partition,
) -> Result<Self, CombinError>
pub fn type_a_tableaux( rank: usize, shape: &Partition, ) -> Result<Self, CombinError>
Construct the semistandard-tableau crystal B(shape) of type A_rank.
The alphabet is 1..=rank+1, rows are weakly increasing, and columns
are strictly increasing. The shape and exact representation-size bounds
are checked before the tableaux are materialized.
Sourcepub fn vertex_count(&self) -> usize
pub fn vertex_count(&self) -> usize
Number of vertices in the explicit colored graph.
Sourcepub fn cartan_matrix(&self) -> &[Vec<i64>]
pub fn cartan_matrix(&self) -> &[Vec<i64>]
Defining Cartan matrix for the crystal context.
Sourcepub fn weight(&self, vertex: VertexId) -> Result<&[i64], CombinError>
pub fn weight(&self, vertex: VertexId) -> Result<&[i64], CombinError>
Weight of a vertex in fundamental-weight coordinates.
Sourcepub fn e(
&self,
index: usize,
vertex: VertexId,
) -> Result<Option<VertexId>, CombinError>
pub fn e( &self, index: usize, vertex: VertexId, ) -> Result<Option<VertexId>, CombinError>
Apply the Kashiwara raising operator e_index.
Sourcepub fn f(
&self,
index: usize,
vertex: VertexId,
) -> Result<Option<VertexId>, CombinError>
pub fn f( &self, index: usize, vertex: VertexId, ) -> Result<Option<VertexId>, CombinError>
Apply the Kashiwara lowering operator f_index.
Sourcepub fn epsilon_phi(
&self,
index: usize,
vertex: VertexId,
) -> Result<(usize, usize), CombinError>
pub fn epsilon_phi( &self, index: usize, vertex: VertexId, ) -> Result<(usize, usize), CombinError>
Return (epsilon_index(vertex), phi_index(vertex)), the upward and
downward distances along one colored string.
Sourcepub fn highest_weight_vertices(&self) -> Vec<VertexId> ⓘ
pub fn highest_weight_vertices(&self) -> Vec<VertexId> ⓘ
Vertices killed by every raising operator.
Sourcepub fn character(&self) -> BTreeMap<Vec<i64>, u64>
pub fn character(&self) -> BTreeMap<Vec<i64>, u64>
Weight-multiplicity character in deterministic weight order.
Sourcepub fn tensor(&self, rhs: &Self) -> Result<Self, CombinError>
pub fn tensor(&self, rhs: &Self) -> Result<Self, CombinError>
Form the right-to-left Kashiwara tensor product.
Vertex (left, right) has identifier
left * rhs.vertex_count() + right. The Cartan matrices must agree
exactly, and the complete allocation is checked before materialization.
Trait Implementations§
Source§impl Clone for KashiwaraCrystal
impl Clone for KashiwaraCrystal
Source§fn clone(&self) -> KashiwaraCrystal
fn clone(&self) -> KashiwaraCrystal
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for KashiwaraCrystal
impl Debug for KashiwaraCrystal
Source§impl<'de> Deserialize<'de> for KashiwaraCrystal
impl<'de> Deserialize<'de> for KashiwaraCrystal
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 Display for KashiwaraCrystal
impl Display for KashiwaraCrystal
Source§impl PartialEq for KashiwaraCrystal
impl PartialEq for KashiwaraCrystal
Source§impl SemanticType for KashiwaraCrystal
impl SemanticType for KashiwaraCrystal
Source§const TYPE_ID: &'static str = "noether/combin/KashiwaraCrystal@1"
const TYPE_ID: &'static str = "noether/combin/KashiwaraCrystal@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 Serialize for KashiwaraCrystal
impl Serialize for KashiwaraCrystal
impl Eq for KashiwaraCrystal
impl StructuralPartialEq for KashiwaraCrystal
Auto Trait Implementations§
impl Freeze for KashiwaraCrystal
impl RefUnwindSafe for KashiwaraCrystal
impl Send for KashiwaraCrystal
impl Sync for KashiwaraCrystal
impl Unpin for KashiwaraCrystal
impl UnwindSafe for KashiwaraCrystal
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