#!/usr/bin/perl use strict; use warnings; use Quantum::ClebschGordan; my $j1 = $ARGV[0] or die 'need a j1'; my $j2 = $ARGV[1] or die 'need a j2'; my $cg = Quantum::ClebschGordan->new( j1 => $j1, j2 => $j2 ); print "# note: CG and W3J listed as X where the\n"; print "# real value is sign(X)*sqrt(abs(X))\n"; print "# i.e.: (+/-)X ==> (+/-)sqrt(X)\n"; printf "# (j1, j2) = (%s, %s)\n", $cg->j1, $cg->j2; printf "# %6s %6s %6s %6s %6s %6s\n", qw/ m m1 m2 j CG W3J/; printf " %6s %6s %6s %6s %6s %6s\n", $_->m, $_->m1, $_->m2, $_->j, $_->coeff, $_->wigner3j for $cg->explode;