Adding partition functions in their current form.
More closely mirror the standard scala sliding API