  We prove a complexity dichotomy theorem for all non-negative weighted
counting Constraint Satisfaction Problems (CSP). This caps a long series of
important results on counting problems including unweighted and weighted graph
homomorphisms and the celebrated dichotomy theorem for unweighted #CSP. Our
dichotomy theorem gives a succinct criterion for tractability. If a set F of
constraint functions satisfies the criterion, then the counting CSP problem
defined by F is solvable in polynomial time; if it does not satisfy the
criterion, then the problem is #P-hard. We furthermore show that the question
of whether F satisfies the criterion is decidable in NP.
  Surprisingly, our tractability criterion is simpler than the previous
criteria for the more restricted classes of problems, although when specialized
to those cases, they are logically equivalent. Our proof mainly uses Linear
Algebra, and represents a departure from Universal Algebra, the dominant
methodology in recent years.
