Bernstein basis polynomials: Difference between revisions
Content added Content deleted
(added Raku programming solution) |
m (→{{header|Raku}}: DRY) |
||
Line 2,501: | Line 2,501: | ||
} |
} |
||
return $s * @bern[0] + $t * @bern[1] |
return $s * @bern[0] + $t * @bern[1] |
||
} |
|||
sub evaluations (@m, @b, $x) { |
|||
⚫ | |||
⚫ | |||
} |
} |
||
Line 2,514: | Line 2,519: | ||
say "\nSubprogram(2) examples:"; |
say "\nSubprogram(2) examples:"; |
||
for (@pm,@pb2,@qm,@qb2).rotor(2) X (0.25,7.5) { |
for (@pm,@pb2,@qm,@qb2).rotor(2) X (0.25,7.5) -> [[@m,@b], $x] { |
||
say evaluations @m, @b, $x |
|||
my $x = .[1]; |
|||
my $y = evalBern-N .[0][1], $x; |
|||
my $m = ([o] map { $_ + $x * * }, .[0][0])(0); # Horner's rule |
|||
⚫ | |||
} |
} |
||
Line 2,529: | Line 2,531: | ||
say "\nSubprogram(4) examples:"; |
say "\nSubprogram(4) examples:"; |
||
for (@pm,@pb3,@qm,@qb3,@rm,@rb3).rotor(2) X (0.25,7.5) { |
for (@pm,@pb3,@qm,@qb3,@rm,@rb3).rotor(2) X (0.25,7.5) -> [[@m,@b], $x] { |
||
say evaluations @m, @b, $x |
|||
my $y = evalBern-N .[0][1], $x; |
|||
⚫ | |||
say "p({$x.fmt: '%.2f'}) = $y (mono $m)"; |
|||
} |
} |
||