ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Science of Computer Programming - Special issue on mathematics of program construction
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Functional reactive robotics: an exercise in principled integration of domain-specific languages
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Functional Differentiation of Computer Programs
Higher-Order and Symbolic Computation
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
On the implementation of automatic differentiation tools
Higher-Order and Symbolic Computation
Nesting forward-mode AD in a functional framework
Higher-Order and Symbolic Computation
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Functional Reactive Programming (FRP) is a framework for reactive programming in a functional setting. FRP has been applied to a number of domains, such as graphical animation, graphical user interfaces, robotics, and computer vision. Recently, we have been interested in applying FRP-like principles to hybrid modeling and simulation of physical systems. As a step in that direction, we have extended an existing FRP implementation, Yampa, in two new ways that make it possible to express certain models in a very natural way, and reduces the amount of work needed to put modeling equations into a suitable form for simulation. First, we have added Dirac impulses that allow certain types of discontinuities to be handled in an easy yet rigorous manner. Second, we have adapted automatic differentiation to the setting of Yampa, and generalized it to work correctly with Dirac impulses. This allows derivatives of piecewise continuous signals to be well-defined at all points. This paper reviews the basic ideas behind automatic differentiation, in particular Jerzy Karczmarczuk's elegant version for a lazy functional language with overloading, and then considers the integration with Yampa and the addition of Dirac impulses.