division algorithms in computer architecture