Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: mspathlog
Section: modular_symbols
C-Name: mspathlog
Prototype: GG
Help: mspathlog(M,p): M being a full modular symbol space, as given by
msinit and p being a path between two elements in P^1(Q), return (p_i)
in Z[G] such that p = \sum p_i g_i, and the g_i are fixed Z[G]-generators
for Div^0(P^1 Q), see mspathgens.
Doc: Let $\Delta_0:=\text{Div}^0(\P^1(\Q))$.
Let $M$ being a full modular symbol space, as given by \kbd{msinit},
encoding fixed $\Z[G]$-generators $(g_i)$ of $\Delta_0$ (see \tet{mspathgens}).
A path $p=[a,b]$ between two elements in $\P^1(\Q)$ corresponds to
$[b]-[a]\in \Delta_0$. The path extremities $a$ and $b$ may be given as
\typ{INT}, \typ{FRAC} or $\kbd{oo} = (1:0)$. Finally, we also allow
to input a path as a $2\times 2$ integer matrix, whose first
and second column give $a$ and $b$ respectively, with the convention
$[x,y]\til = (x:y)$ in $\P^1(\Q)$.
Returns $(p_i)$ in $\Z[G]$ such that $p = \sum_i p_i g_i$.
\bprog
? M = msinit(2,8); \\ M_8(Gamma_0(2))
? [g,R] = mspathgens(M);
? g
%3 = [[+oo, 0], [0, 1]]
? p = mspathlog(M, [1/2,2/3]);
? p[1]
%5 =
[[1, 0; 2, 1] 1]
? p[2]
%6 =
[[1, 0; 0, 1] 1]
[[3, -1; 4, -1] 1]
? mspathlog(M, [1,2;2,3]) == p \\ give path via a 2x2 matrix
%7 = 1
@eprog\noindent
Note that the output depends only on the group $G$, not on the
representation $V$.