Mass balance calculations with end member compositional variability: applications to petrologic problems