Full and partial Jacobian computation via graph coloring: Algorithms and applications