Bernstein basis polynomials: Difference between revisions
Content added Content deleted
(Added ATS.) |
m (→{{header|Phix}}: rationalised, reordered, renamed) |
||
Line 1,220: | Line 1,220: | ||
<!--<syntaxhighlight lang="phix">(phixonline)--> |
<!--<syntaxhighlight lang="phix">(phixonline)--> |
||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">m_to_bern2</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">a2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000000;">a01</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">/</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> |
|||
⚫ | |||
⚫ | <span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a01</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a02</span><span style="color: #0000FF;">}</span> |
||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">m_to_bern3</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;"> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a3</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">,</span> |
||
⚫ | <span style="color: #000000;">a01</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> |
||
⚫ | |||
<span style="color: # |
<span style="color: #000000;">a02</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span><span style="color: #0000FF;">*</span><span style="color: #000000;">2</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000000;"> |
<span style="color: #000000;">a03</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a2</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">a3</span> |
||
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a01</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a02</span><span style="color: #0000FF;">,</span><span style="color: #000000;">a03</span><span style="color: #0000FF;">}</span> |
|||
⚫ | |||
⚫ | |||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">bern2_to_bern3</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;"> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">b0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">,</span> |
||
<span style="color: # |
<span style="color: #000000;">b01</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">b0</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">b1</span><span style="color: #0000FF;">*</span><span style="color: #000000;">2</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000000;">b12</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">b1</span><span style="color: #0000FF;">*</span><span style="color: #000000;">2</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">b2</span><span style="color: #0000FF;">/</span><span style="color: #000000;">3</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">b0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b01</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b12</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b2</span><span style="color: #0000FF;">}</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">eval_bern2</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">)</span> |
||
⚫ | |||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">b0</span><span style="color: #0000FF;">,</span> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">b0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">b1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">b2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">,</span> |
||
⚫ | |||
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">-</span><span style="color: #000000;">t</span><span style="color: #0000FF;">,</span> |
|||
⚫ | |||
⚫ | |||
<span style="color: #000000;"> |
<span style="color: #000000;">b01</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b1</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000000;"> |
<span style="color: #000000;">b12</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b2</span><span style="color: #0000FF;">,</span> |
||
⚫ | |||
⚫ | |||
<span style="color: #000000;"> |
<span style="color: #000000;">b012</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b01</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b12</span> |
||
⚫ | |||
⚫ | <span style="color: #000000;"> |
||
⚫ | |||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">eval_bern3</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">)</span> |
||
⚫ | |||
⚫ | <span style="color: # |
||
<span style="color: # |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">b0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">b3</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">bernstein_coefficients</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">-</span><span style="color: #000000;">t</span><span style="color: #0000FF;">,</span> |
|||
<span style="color: #000080;font-style:italic;">// first mid-points</span> |
|||
<span style="color: #000000;">b01</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b1</span><span style="color: #0000FF;">,</span> |
|||
⚫ | <span style="color: #000000;">b12</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b2</span><span style="color: #0000FF;">,</span> |
||
⚫ | <span style="color: #000000;">b23</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b2</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b3</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000080;font-style:italic;">// second mid-points</span> |
|||
⚫ | <span style="color: #000000;">b012</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b01</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b12</span><span style="color: #0000FF;">,</span> |
||
⚫ | <span style="color: #000000;">b123</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b12</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b23</span><span style="color: #0000FF;">,</span> |
||
<span style="color: #000080;font-style:italic;">// third mid-point is on the curve</span> |
|||
⚫ | <span style="color: #000000;">b0123</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b012</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">b123</span> |
||
⚫ | |||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">eval_m2</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span> |
||
⚫ | <span style="color: #008080;">return</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">a1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">a2</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- Horner’s rule</span> |
||
⚫ | |||
⚫ | <span style="color: #008080;">return</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #0000FF;">(</span><span style="color: #000000;"> |
||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;"> |
<span style="color: #008080;">function</span> <span style="color: #000000;">eval_m3</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">monomial_coefficients</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a3</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span> |
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">a0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a3</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">monomial_coefficients</span> |
||
⚫ | <span style="color: #008080;">return</span> <span style="color: #000000;">a0</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">a1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">a2</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">t</span><span style="color: #0000FF;">*</span><span style="color: #000000;">a3</span><span style="color: #0000FF;">))</span> <span style="color: #000080;font-style:italic;">-- Horner’s rule</span> |
||
⚫ | |||
⚫ | |||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
||
<span style="color: #008080;">constant</span> <span style="color: #000000;"> |
<span style="color: #008080;">constant</span> <span style="color: #000000;">pm2</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- p(x) = 1</span> |
||
<span style="color: #000000;"> |
<span style="color: #000000;">pm3</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- (ditto in degree 3)</span> |
||
<span style="color: #000000;"> |
<span style="color: #000000;">qm2</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- q(x) = 1 + 2x + 3x²</span> |
||
<span style="color: #000000;"> |
<span style="color: #000000;">qm3</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- (ditto in degree 3)</span> |
||
<span style="color: #000000;">rm3</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">4</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- r(x) = 1 + 2x + 3x² + 4x³</span> |
|||
<span style="color: #000000;">pb2</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">m_to_bern2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pm2</span><span style="color: #0000FF;">),</span> |
|||
<span style="color: #000000;">pb3</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">m_to_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pm3</span><span style="color: #0000FF;">),</span> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" m_to_bern2(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">pm2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">pb2</span><span style="color: #0000FF;">})</span> |
||
⚫ | <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" m_to_bern2(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">qm2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">qb2</span><span style="color: #0000FF;">})</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" m_to_bern3(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">pm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">pb3</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" m_to_bern3(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">qm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">qb3</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" m_to_bern3(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">rm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rb3</span><span style="color: #0000FF;">})</span> |
|||
⚫ | <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" bern2_to_bern3(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">pb2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">bern2_to_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pb2</span><span style="color: #0000FF;">)})</span> |
||
⚫ | <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" bern2_to_bern3(%v) --> %v\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">qb2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">bern2_to_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qb2</span><span style="color: #0000FF;">)})</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Evaluating bernstein degree 2 examples:\n"</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #008080;">for</span> <span style="color: #000000;">x</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0.25</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">7.50</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span> |
<span style="color: #008080;">for</span> <span style="color: #000000;">x</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0.25</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">7.50</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" p(% |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" p(%.2f) = %8g (mono: %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">eval_bern2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pb2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span><span style="color: #000000;">eval_m2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pm2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" q(%.2f) = %8g (mono: %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">eval_bern2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qb2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span><span style="color: #000000;">eval_m2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qm2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" q(%g) = %g (mono %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">evaluate_bernstein_degree2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qbern2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span> |
|||
<span style="color: #000000;">evaluate_monomial_degree2</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qmono2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
||
<span style="color: # |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Evaluating bernstein degree 3 examples:\n"</span><span style="color: #0000FF;">)</span> |
||
⚫ | |||
<span style="color: #000000;">rmono3</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">4</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- r(x) = 1 + 2x + 3x² + 4x³</span> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Subprogram (3) examples:\n"</span><span style="color: #0000FF;">)</span> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Subprogram (4) examples:\n"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">for</span> <span style="color: #000000;">x</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0.25</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">7.50</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span> |
<span style="color: #008080;">for</span> <span style="color: #000000;">x</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0.25</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">7.50</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" p(% |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" p(%.2f) = %8g (mono: %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">eval_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pb3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span><span style="color: #000000;">eval_m3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" q(%.2f) = %8g (mono: %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">eval_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qb3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span><span style="color: #000000;">eval_m3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" r(%.2f) = %8g (mono: %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">eval_bern3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">rb3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span><span style="color: #000000;">eval_m3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">rm3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
||
<span style="color: #000000;">evaluate_monomial_degree3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">qmono3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" r(%g) = %g (mono %g)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">,</span><span style="color: #000000;">evaluate_bernstein_degree3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">rbern3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">),</span> |
|||
<span style="color: #000000;">evaluate_monomial_degree3</span><span style="color: #0000FF;">(</span><span style="color: #000000;">rmono3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)})</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Subprogram (5) examples:\n"</span><span style="color: #0000FF;">)</span> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" |
||
<!--</syntaxhighlight>--> |
<!--</syntaxhighlight>--> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
⚫ | |||
Subprogram (1) examples: |
|||
m_to_bern2({1,2,3}) --> {1,2,6} |
|||
m_to_bern3({1,0,0,0}) --> {1,1,1,1} |
|||
⚫ | |||
Subprogram (2) examples: |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Evaluating bernstein degree 2 examples: |
|||
⚫ | |||
⚫ | |||
Subprogram (3) examples: |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Evaluating bernstein degree 3 examples: |
|||
p(0.25) = 1 (mono 1) |
p(0.25) = 1 (mono: 1) |
||
q(0.25) = 1.6875 (mono 1.6875) |
q(0.25) = 1.6875 (mono: 1.6875) |
||
r(0.25) = 1.75 (mono 1.75) |
r(0.25) = 1.75 (mono: 1.75) |
||
p(7. |
p(7.50) = 1 (mono: 1) |
||
q(7. |
q(7.50) = 184.75 (mono: 184.75) |
||
r(7. |
r(7.50) = 1872.25 (mono: 1872.25) |
||
Subprogram (5) examples: |
|||
⚫ | |||
⚫ | |||
</pre> |
</pre> |
||