Part of the (internal) classes which runs the bijection between rigged configurations and KR tableaux of type \(D_n^{(1)}\).
AUTHORS:
TESTS:
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2,1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
sage: bijection = KRTToRCBijectionTypeD(KRT(pathlist=[[3, 2]]))
sage: TestSuite(bijection).run()
sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
sage: bijection = RCToKRTBijectionTypeD(RC(partition_list=[[],[],[],[]]))
sage: TestSuite(bijection).run()
Bases: sage.combinat.rigged_configurations.bij_type_A.KRTToRCBijectionTypeA
Specific implementation of the bijection from KR tableaux to rigged configurations for type \(D_n^{(1)}\).
This inherits from type \(A_n^{(1)}\) because we use the same methods in some places.
Perform the doubling map of the rigged configuration at the current state of the bijection.
This is the map \(B(\Lambda) \hookrightarrow B(2 \Lambda)\) which doubles each of the rigged partitions and updates the vacancy numbers accordingly.
TESTS:
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[4,1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
sage: bijection = KRTToRCBijectionTypeD(KRT(pathlist=[[-1,4,3,2]]))
sage: bijection.cur_path.insert(0, [])
sage: bijection.cur_dims.insert(0, [0, 1])
sage: bijection.cur_path[0].insert(0, [2])
sage: bijection.next_state(2)
sage: bijection.ret_rig_con
<BLANKLINE>
-2[ ]-2
<BLANKLINE>
(/)
<BLANKLINE>
(/)
<BLANKLINE>
(/)
<BLANKLINE>
sage: bijection.cur_dims
[[0, 1]]
sage: bijection.doubling_map()
sage: bijection.ret_rig_con
<BLANKLINE>
-4[ ][ ]-4
<BLANKLINE>
(/)
<BLANKLINE>
(/)
<BLANKLINE>
(/)
<BLANKLINE>
sage: bijection.cur_dims
[[0, 2]]
Perform the halving map of the rigged configuration at the current state of the bijection.
This is the inverse map to \(B(\Lambda) \hookrightarrow B(2 \Lambda)\) which halves each of the rigged partitions and updates the vacancy numbers accordingly.
TESTS:
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[4,1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
sage: bijection = KRTToRCBijectionTypeD(KRT(pathlist=[[-1,4,3,2]]))
sage: bijection.cur_path.insert(0, [])
sage: bijection.cur_dims.insert(0, [0, 1])
sage: bijection.cur_path[0].insert(0, [2])
sage: bijection.next_state(2)
sage: test = bijection.ret_rig_con
sage: bijection.doubling_map()
sage: bijection.halving_map()
sage: test == bijection.ret_rig_con
True
Build the next state for type \(D_n^{(1)}\).
TESTS:
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2,1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
sage: bijection = KRTToRCBijectionTypeD(KRT(pathlist=[[5,3]]))
sage: bijection.cur_path.insert(0, [])
sage: bijection.cur_dims.insert(0, [0, 1])
sage: bijection.cur_path[0].insert(0, [3])
sage: bijection.next_state(3)
Run the bijection from a tensor product of KR tableaux to a rigged configuration for type \(D_n^{(1)}\).
INPUT:
EXAMPLES:
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2,1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
sage: KRTToRCBijectionTypeD(KRT(pathlist=[[-3,2]])).run()
<BLANKLINE>
-1[ ]-1
<BLANKLINE>
2[ ]2
<BLANKLINE>
-1[ ]-1
<BLANKLINE>
-1[ ]-1
<BLANKLINE>
Bases: sage.combinat.rigged_configurations.bij_type_A.RCToKRTBijectionTypeA
Specific implementation of the bijection from rigged configurations to tensor products of KR tableaux for type \(D_n^{(1)}\).
Perform the doubling map of the rigged configuration at the current state of the bijection.
This is the map \(B(\Lambda) \hookrightarrow B(2 \Lambda)\) which doubles each of the rigged partitions and updates the vacancy numbers accordingly.
TESTS:
sage: RC = RiggedConfigurations(['D', 4, 1], [[4, 1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
sage: bijection = RCToKRTBijectionTypeD(RC(partition_list=[[],[],[],[1]]))
sage: bijection.cur_partitions
[(/)
, (/)
, (/)
, -1[ ]-1
]
sage: bijection.doubling_map()
sage: bijection.cur_partitions
[(/)
, (/)
, (/)
, -2[ ][ ]-2
]
Perform the halving map of the rigged configuration at the current state of the bijection.
This is the inverse map to \(B(\Lambda) \hookrightarrow B(2 \Lambda)\) which halves each of the rigged partitions and updates the vacancy numbers accordingly.
TESTS:
sage: RC = RiggedConfigurations(['D', 4, 1], [[4, 1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
sage: bijection = RCToKRTBijectionTypeD(RC(partition_list=[[],[],[],[1]]))
sage: test = bijection.cur_partitions
sage: bijection.doubling_map()
sage: bijection.halving_map()
sage: test == bijection.cur_partitions
True
Build the next state for type \(D_n^{(1)}\).
TESTS:
sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
sage: bijection = RCToKRTBijectionTypeD(RC(partition_list=[[],[1,1],[1],[1]]))
sage: bijection.next_state(0)
1
Run the bijection from rigged configurations to tensor product of KR tableaux for type \(D_n^{(1)}\).
INPUT:
EXAMPLES:
sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 1]])
sage: x = RC(partition_list=[[1],[1],[1],[1]])
sage: from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
sage: RCToKRTBijectionTypeD(x).run()
[[2], [-3]]
sage: bij = RCToKRTBijectionTypeD(x)
sage: bij.run(build_graph=True)
[[2], [-3]]
sage: bij._graph
Digraph on 3 vertices