I would like to tell a story. A story about a beautiful mathematical relationship that elucidates the computational view on the classic subject of trigonometry. All stories need a language, and for this particular story an algorithmic language ought to do well. What makes a language algorithmic? From our perspective as the functional programming community, an algorithmic language provides means to express computation in terms of functions, with no implementation-imposed limitations. We develop a new algorithm for the computation of trigonometric functions on dyadic rationals, together with the language used to express it, in Scheme. We provide a mechanically-derived algorithm for the computation of the inverses of our target functions. We address efficiency and accuracy concerns that pertain to the implementation of the proposed algorithm either in hardware or software.
翻译:我想讲一个故事。关于一个美丽的数学关系的故事,它揭示了对经典三角测量学主题的计算观点。所有的故事都需要一种语言,对于这个特定的故事来说,算法语言应该很好。是什么使一种语言算法?从我们作为功能性编程界的角度来看,一种算法语言提供了表达计算功能的手段,而没有执行限制。我们开发了一种新的算法,用于计算dyadic理性的三角函数,以及用于表达它的语言。我们为计算我们目标功能的反面提供了一种机械的算法。我们处理了与在硬件或软件中实施拟议算法相关的效率和准确性问题。