A variable step size Square Contour Algorithm based on a novel non-linear function of error signal