Formal power series: Difference between revisions
Content added Content deleted
(Added EchoLisp) |
m (replaced <lang lisp> by <lang scheme> - Far better syntax highliting) |
||
Line 594: | Line 594: | ||
=={{header|EchoLisp}}== |
=={{header|EchoLisp}}== |
||
We implement infinite formal power series (FPS) using '''streams'''. No operator overloading in EchoLisp, so we provide the operators '''s-add, s-mul''' ,.. which implement the needed operations. '''poly->stream''' converts a finite polynomial into an infinite FPS, and '''s-value''' gives the value of a FPS at x. |
We implement infinite formal power series (FPS) using '''streams'''. No operator overloading in EchoLisp, so we provide the operators '''s-add, s-mul''' ,.. which implement the needed operations. '''poly->stream''' converts a finite polynomial into an infinite FPS, and '''s-value''' gives the value of a FPS at x. |
||
<lang |
<lang scheme> |
||
(require 'math) |
(require 'math) |
||
;; converts a finite polynomial (a_0 a_1 .. a_n) to an infinite serie (a_0 ..a_n 0 0 0 ...) |
;; converts a finite polynomial (a_0 a_1 .. a_n) to an infinite serie (a_0 ..a_n 0 0 0 ...) |
||
Line 646: | Line 646: | ||
</lang> |
</lang> |
||
{{out}} |
{{out}} |
||
<lang |
<lang scheme> |
||
(take cos-x 16) |
(take cos-x 16) |
||
→ (1 0 -1/2 0 1/24 0 -1/720 0 1/40320 0 -1/3628800 0 1/479001600 0 -1.1470745597729725e-11 0) |
→ (1 0 -1/2 0 1/24 0 -1/720 0 1/40320 0 -1/3628800 0 1/479001600 0 -1.1470745597729725e-11 0) |