NUMERICA: A Library of Source Codes for Teaching, Research and Applications