non linear algorithms