fixed the del_special_point bug
added diagonal functions
added diagonal functions