sw func