add magnitude function