Esta información está disponible mediante el software Atlas of Lie Groups and Representations http://www.liegroups.org/software . Este es un ejemplo, los comentarios están entre llaves.
atlas> set G=Sp(4)
Variable G: RootDatum
atlas> set f=G.invariant_form {W-invariant bilinear form}
Added definition [3] of f: (ratvec,ratvec->rat)
atlas> set alpha=highest_short_root(G)
Variable alpha: vec
atlas> f(alpha,alpha)
Value: 6/1 {need to normalize it differently}
atlas> set g(ratvec v,ratvec w)=f(v,w)/3
Added definition [3] of g: (ratvec,ratvec->rat)
atlas> g(alpha,alpha) {normalized invariant form}
Value: 2/1
atlas> void:for alpha in G.posroots do
for beta in G.posroots do
prints(alpha, " ", beta, " ", g(alpha,beta)) od od
[ 1, -1 ] [ 1, -1 ] 2/1
[ 1, -1 ] [ 0, 2 ] -2/1
[ 1, -1 ] [ 1, 1 ] 0/1
[ 1, -1 ] [ 2, 0 ] 2/1
[ 0, 2 ] [ 1, -1 ] -2/1
[ 0, 2 ] [ 0, 2 ] 4/1
[ 0, 2 ] [ 1, 1 ] 2/1
[ 0, 2 ] [ 2, 0 ] 0/1
[ 1, 1 ] [ 1, -1 ] 0/1
[ 1, 1 ] [ 0, 2 ] 2/1
[ 1, 1 ] [ 1, 1 ] 2/1
[ 1, 1 ] [ 2, 0 ] 2/1
[ 2, 0 ] [ 1, -1 ] 2/1
[ 2, 0 ] [ 0, 2 ] 0/1
[ 2, 0 ] [ 1, 1 ] 2/1
[ 2, 0 ] [ 2, 0 ] 4/1
atlas> void:for alpha in G.posroots do for beta in
G.fundamental_weights do
prints(alpha, " ", beta, " ", g(alpha,beta)) od od
[ 1, -1 ] [ 1, 0 ]/1 1/1
[ 1, -1 ] [ 1, 1 ]/1 0/1
[ 0, 2 ] [ 1, 0 ]/1 0/1
[ 0, 2 ] [ 1, 1 ]/1 2/1
[ 1, 1 ] [ 1, 0 ]/1 1/1
[ 1, 1 ] [ 1, 1 ]/1 2/1
[ 2, 0 ] [ 1, 0 ]/1 2/1
[ 2, 0 ] [ 1, 1 ]/1 2/1
atlas> void:for alpha in G.fundamental_weights do
for beta in G.fundamental_weights do
prints(alpha, " ", beta, " ", g(alpha,beta)) od od
[ 1, 0 ]/1 [ 1, 0 ]/1 1/1
[ 1, 0 ]/1 [ 1, 1 ]/1 1/1
[ 1, 1 ]/1 [ 1, 0 ]/1 1/1
[ 1, 1 ]/1 [ 1, 1 ]/1 2/1