algorithm tools