Binomial transform: Difference between revisions

Content added Content deleted
m (→‎{{header|jq}}: shorten)
Line 661: Line 661:
def forward:
def forward:
. as $a
. as $a
| ($a|length) as $c
| reduce range(0; $a|length) as $n (null;
| reduce range(0;$c) as $n (null;
reduce range(0;$n+1) as $k (.;
reduce range(0;$n+1) as $k (.;
.[$n] += binomial($n; $k) * $a[$k] ) );
.[$n] += binomial($n; $k) * $a[$k] ) );
Line 668: Line 667:
def inverse:
def inverse:
. as $b
. as $b
| ($b|length) as $c
| reduce range (0; $b|length) as $n (null;
| reduce range (0;$c) as $n (null;
reduce range(0; $n+1) as $k (.;
reduce range(0; $n+1) as $k (.;
(if (($n - $k) % 2 == 0) then 1 else -1 end) as $sign
(if (($n - $k) % 2 == 0) then 1 else -1 end) as $sign
Line 676: Line 674:
def selfInverting:
def selfInverting:
. as $a
. as $a
| ($a|length) as $c
| reduce range(0; $a|length) as $n (null;
| reduce range(0;$c) as $n (null;
reduce range(0; $n+1) as $k (.;
reduce range(0; $n+1) as $k (.;
(if $k % 2 == 0 then 1 else -1 end) as $sign
(if $k % 2 == 0 then 1 else -1 end) as $sign