I am using GAP to compute things in Kazhdan-Lusztig theory, especially using the package "Chevie". According to the GAP3 Manual, the base change between the "C"-basis and "T"-basis can be computed, for example, from
gap> W := CoxeterGroup( "B", 3 );;
gap> v := X( Rationals );; v.name := "v";;
gap> H := Hecke( W, v^2, v );
Hecke(CoxeterGroup("B", 3),[ v^2, v^2, v^2 ],[ v, v, v ])
gap> T := Basis( H, "T" );
function ( arg ) ... end
gap> C := Basis( H, "C" );
function ( arg ) ... end
gap> T( C( 1 ) );
-vT()+v^-1T(1)
gap> C( T( 1 ) );
v^2C()+vC(1)
we see that $c_1 = -vT_e+v^{-1}T_1$, and $T_1 = v^2c_e + vc_1$.
For any $x,y$ and $z$ in a Coxeter group $W$, the $h$-polynomials are defined in $$c_xc_y = \sum_{z \in W}h_{x,y,z}c_z.$$
My problem is
how can I compute the $h$-polynomials with GAP3 program?
This is the answer in the GAP Forum mail list, given by Jean Michel
Thanks to @AlexanderKonovalov for reminding me of answering my own question after knowing the answer to it.