sub min {
eigenstates( any(@_) <= all(@_) )
}
####
multimethod qblop => ( Quantum::Superpositions::Disj, Quantum::Superpositions::Conj, CODE ) => sub
{
&debug;
return any() unless @{$_[0]} && @{$_[1]};
my @dstates = @{$_[0]};
my @cstates = @{$_[1]};
my @dokay = (0) x @dstates;
foreach my $cstate ( @cstates ) # $cstate in (1,2,3)
{
my $matched;
foreach my $d ( 0..$#dstates ) # $d in (0..2)
{
$matched = ++$dokay[$d]
if istrue(qblop($dstates[$d], $cstate, $_[2]));
}
return any() unless $matched;
}
return any @dstates[grep { $dokay[$_] == @cstates } (0..$#dstates)];
};
##
##
$min = $list[0]; for my $i (1..$#list) { $min = $list[$i] if ($min > $list[$i]);};
##
##
sub is_prime {
my ($n) = @_;
return $n % all(2..sqrt($n)+1) != 0
}