canonical decomposition