@@ -19,7 +19,8 @@ template<typename TA, typename TC, typename Tdata>
1919typename CS_Matrix<TA,TC,Tdata>::Step CS_Matrix<TA,TC,Tdata>::set_label_A(
2020 const Label::ab_ab &label_in,
2121 const TA &Aa01, const TAC &Aa2, const TAC &Ab01, const TAC &Ab2,
22- const TC &period) const
22+ const TC &period,
23+ const std::unordered_map<Label::ab, CS_Matrix<TA,TC,Tdata>::Uplimits> &uplimits) const
2324{
2425 using namespace Array_Operator ;
2526
@@ -44,32 +45,32 @@ typename CS_Matrix<TA,TC,Tdata>::Step CS_Matrix<TA,TC,Tdata>::set_label_A(
4445 }
4546 };
4647 auto get_uplimit_tensor2 = [&get_Aa_Ab](
47- const std::unordered_map<Label::ab, std::map <TA,std::map<TAC ,Tdata>>> &uplimits_tensor2 ,
48+ const std::unordered_map<Label::ab, CS_Matrix <TA,TC ,Tdata>::Uplimits> &uplimits ,
4849 const Label::ab label_ab) -> Tdata
4950 {
5051 const int xa = Label::get_a (label_ab);
5152 const int xb = Label::get_b (label_ab);
5253 const std::pair<TA,TAC> &Aa_Ab = get_Aa_Ab (xa,xb);
5354 const TA &Aa=Aa_Ab.first ;
5455 const TAC &Ab=Aa_Ab.second ;
55- return Global_Func::find (uplimits_tensor2 .at (label_ab), Aa, Ab);
56+ return Global_Func::find (uplimits .at (label_ab). square_tensor2 , Aa, Ab);
5657 };
5758
5859 Step step;
5960
6061 step.label = label_in;
6162
6263 const int index_a = Label::get_unused_a (step.label );
63- step.a_square = Global_Func::find (this -> uplimits_square_tensor3 .at (Label::ab::a)[index_a], Aa01, Aa2);
64- step.a_norm = Global_Func::find (this -> uplimits_norm_tensor3 .at (Label::ab::a)[index_a], Aa01, Aa2);
64+ step.a_square = Global_Func::find (uplimits .at (Label::ab::a). square_tensor3 [index_a], Aa01, Aa2);
65+ step.a_norm = Global_Func::find (uplimits .at (Label::ab::a). norm_tensor3 [index_a], Aa01, Aa2);
6566
6667 const int index_b = get_unused_b (step.label );
67- step.b_square = Global_Func::find (this -> uplimits_square_tensor3 .at (Label::ab::b)[index_b], Ab01.first , TAC{Ab2.first , (Ab2.second -Ab01.second )%period});
68- step.b_norm = Global_Func::find (this -> uplimits_norm_tensor3 .at (Label::ab::b)[index_b], Ab01.first , TAC{Ab2.first , (Ab2.second -Ab01.second )%period});
68+ step.b_square = Global_Func::find (uplimits .at (Label::ab::b). square_tensor3 [index_b], Ab01.first , TAC{Ab2.first , (Ab2.second -Ab01.second )%period});
69+ step.b_norm = Global_Func::find (uplimits .at (Label::ab::b). norm_tensor3 [index_b], Ab01.first , TAC{Ab2.first , (Ab2.second -Ab01.second )%period});
6970
7071 const std::pair<Label::ab, Label::ab> label_split_tmp = CS_Matrix_Tools::split_label (step.label );
71- step.first_square = get_uplimit_tensor2 (this -> uplimits_square_tensor2 , label_split_tmp.first );
72- step.second_square = get_uplimit_tensor2 (this -> uplimits_square_tensor2 , label_split_tmp.second );
72+ step.first_square = get_uplimit_tensor2 (uplimits , label_split_tmp.first );
73+ step.second_square = get_uplimit_tensor2 (uplimits , label_split_tmp.second );
7374
7475 return step;
7576}
0 commit comments