Application of general semi-infinite programming to lapidary cutting problems