A linear scrubbing calculator based on constraint programming in Cassowary