File: [local] / OpenXM / src / asir-contrib / packages / src / taka_hg32.rr (download)
Revision 1.4, Wed Sep 5 06:26:02 2001 UTC (22 years, 8 months ago) by takayama
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9 Changes since 1.3: +55 -38
lines
base_replace() is used instead of eval_variables_in_quote().
Because eval_variables_in_quote() causes some troubles (ask Noro-san for details).
|
/* $OpenXM: OpenXM/src/asir-contrib/packages/src/taka_hg32.rr,v 1.4 2001/09/05 06:26:02 takayama Exp $ */
/* experimental module for hypergeometric function identities.
cf. nach/3f2hom.rr
*/
def taka_hg21(A1,A2,B2,Z) {
F = quote(hypergeometric_2F1(a1,a2,b2,z));
F2 = base_replace(F,[[a1,A1],[a2,A2],[b2,B2],[z,Z]]);
return F2;
}
/* z^(-B2+1) * cycle * ds/ds */
def taka_hg21_cycle(A1,A2,B2,Z,S) {
U=S^(A2)*(Z-S)^(B2-1-A2)*(1-S)^(-A1);
Rule = [[a1,A1],[a2,A2],[b2,B2],[z,Z],[s,S],[u,U]];
C1 = quote(algebra_tensor(topology_open_segment(z,1),u));
C1 = base_replace(C1,Rule);
C2 = quote(algebra_tensor(topology_open_segment(0,z),u));
C2 = base_replace(C2,Rule);
return([C1,C2]);
}
def taka_hg21_reg_cycle(A1,A2,B2,Z,S) {
U=S^(A2)*(Z-S)^(B2-1-A2)*(1-S)^(-A1);
C = [[u,U]];
Rule = [[a1,A1],[a2,A2],[b2,B2],[z,Z],[s,S]];
C1 = quote(algebra_tensor(topology_open_segment(z+varepsilon,1-varepsilon),u));
C1 = base_replace(C1,Rule);
S1a = quote(topology_circle(z,varepsilon));
C1a = quote(1/(c5-1));
C = append(C,[[c5,quote(exp(2*c_pi*c_i*(b2-1-a2)))]]);
Sa = quote(algebra_tensor(s1a,c1a*u));
Sa = base_replace(Sa,append(Rule,[[s1a,S1a],[c1a,C1a]]));
S1b = quote(topology_circle(1,varepsilon));
C1b = quote(1/(c2-1));
C = append(C,[[c2,quote(exp(2*c_pi*c_i*(-a1)))]]);
Sb = quote(algebra_tensor(s1b,c1b*u));
Sb = base_replace(Sb,append(Rule,[[s1b,S1b],[c1b,C1b]]));
C1 = Sa+C1+Sb;
/* C2 has not yet been set. */
C2 = quote(algebra_tensor(topology_open_segment(0+varepsilon,z-varepsilon),u));
C2 = base_replace(C2,Rule);
S1a = quote(topology_circle(0,varepsilon));
C1a = quote(1/(c4-1));
C = append(C,[[c4,quote(exp(2*c_pi*c_i*a2))]]);
Sa = quote(algebra_tensor(s1a,c1a*u));
Sa = base_replace(Sa,append(Rule,[[s1a,S1a],[c1a,C1a]]));
S1b = quote(topology_circle(z,varepsilon));
C1b = quote(1/(c5-1));
Sb = quote(algebra_tensor(s1b,c1b*u));
Sb = base_replace(Sb,append(Rule,[[s1b,S1b],[c1b,C1b]]));
C2 = Sa+C2+Sb;
C = base_replace(C,Rule);
print(C);
Cond = quote(base_where(c));
Cond = base_replace(Cond,[[c,C]]);
return([[C1,C2],Cond]);
}
def taka_hg21_exp(A1,A2,B2) {
C = [ [c2,exp(2*c_pi*c_i*(-A1))],
[c4,exp(2*c_pi*c_i*A2)],
[c5,exp(2*c_pi*c_i*(B2-1-A2))]];
Cond = quote(base_where(c));
Cond = base_replace(Cond,[[c,C]]);
return Cond;
}
def taka_hg21_monodromy(A1,A2,B2) {
M0 = newmat(2,2,
[[1,0],
[c5*(1-c4),c4*c5]]);
M1 = newmat(2,2,
[[c2*c5,1-c2],
[0,1]]);
C = taka_hg21_exp(A1,A2,B2);
return( [[M0,M1],C] );
}
def taka_hg21_intersection_matrix_for_cycles(A1,A2,B2) {
Ih = newmat(2,2,
[[quote(1/(c5^(-1)-1) + 1 + 1/(c2^(-1)-1)), quote(-1/(c5^(-1)-1))],
[quote(-c5^(-1)/(c5^(-1)-1)), quote(1/(c4^(-1)-1) + 1 + 1/(c5^(-1)-1))]]);
return [Ih,taka_hg21_exp(A1,A2,B2)];
}
end$