tools for coding theory