use strict; use warnings; use QStuff qw/entangle/; my $a0 = entangle(1, 0, 0, 1); my $a1 = entangle(1/sqrt(2), 0, 1/sqrt(2), 1); my $b0 = entangle(1/sqrt(2), 0, -1/sqrt(2), 1); my $b1 = entangle(0, 0, 1, 1); print "proj\n"; print $a0->proj($b0)->show_states; print $a1->proj($b1)->show_states; print $a0->proj($b1)->show_states; print $a1->proj($b0)->show_states; print "\n\n"; exit; print "cmpquanta\n"; print $a1->cmpquanta($b0) . "\n"; print $a1->cmpquanta($b1) . "\n"; print $a1->cmpquanta($a1) . "\n"; print $b1->cmpquanta($a0) . "\n"; print "\n\n"; print "cmpstates\n"; print $a1->cmpstates($b0) . "\n"; print $a1->cmpstates($b1) . "\n"; print $a1->cmpstates($a1) . "\n"; print $b1->cmpstates($a0) . "\n"; print "\n\n"; print "states\n"; print "@{[$a0->states]}\n"; print "@{[$a1->states]}\n"; print "@{[$b0->states]}\n"; print "@{[$b1->states]}\n"; print "\n\n"; print "probs\n"; print "@{[$a0->probs]}\n"; print "@{[$a1->probs]}\n"; print "@{[$b0->probs]}\n"; print "@{[$b1->probs]}\n"; print "\n\n"; print "args\n"; print "@{[$a0->args]}\n"; print "@{[$a1->args]}\n"; print "@{[$b0->args]}\n"; print "@{[$b1->args]}\n";