Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
50
Task/Forward-difference/Ada/forward-difference.adb
Normal file
50
Task/Forward-difference/Ada/forward-difference.adb
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
with Ada.Text_Io;
|
||||
with Ada.Float_Text_Io; use Ada.Float_Text_Io;
|
||||
with Ada.containers.Vectors;
|
||||
|
||||
procedure Forward_Difference is
|
||||
package Flt_Vect is new Ada.Containers.Vectors(Positive, Float);
|
||||
use Flt_Vect;
|
||||
procedure Print(Item : Vector) is
|
||||
begin
|
||||
if not Item.Is_Empty then
|
||||
Ada.Text_IO.Put('[');
|
||||
for I in 1..Item.Length loop
|
||||
Put(Item => Item.Element(Positive(I)), Fore => 1, Aft => 1, Exp => 0);
|
||||
if Positive(I) < Positive(Item.Length) then
|
||||
Ada.Text_Io.Put(", ");
|
||||
end if;
|
||||
end loop;
|
||||
Ada.Text_Io.Put_line("]");
|
||||
else
|
||||
Ada.Text_IO.Put_Line("Empty List");
|
||||
end if;
|
||||
|
||||
end Print;
|
||||
|
||||
function Diff(Item : Vector; Num_Passes : Natural) return Vector is
|
||||
A : Vector := Item;
|
||||
B : Vector := Empty_Vector;
|
||||
begin
|
||||
if not A.Is_Empty then
|
||||
for I in 1..Num_Passes loop
|
||||
for I in 1..Natural(A.Length) - 1 loop
|
||||
B.Append(A.Element(I + 1) - A.Element(I));
|
||||
end loop;
|
||||
Move(Target => A, Source => B);
|
||||
end loop;
|
||||
end if;
|
||||
return A;
|
||||
end Diff;
|
||||
Values : array(1..10) of Float := (90.0, 47.0, 58.0, 29.0, 22.0, 32.0, 55.0, 5.0, 55.0, 73.0);
|
||||
A : Vector;
|
||||
begin
|
||||
for I in Values'range loop
|
||||
A.Append(Values(I)); -- Fill the vector
|
||||
end loop;
|
||||
Print(Diff(A, 1));
|
||||
Print(Diff(A, 2));
|
||||
Print(Diff(A, 9));
|
||||
Print(Diff(A, 10));
|
||||
print(Diff(A, 0));
|
||||
end Forward_Difference;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
T[] forwardDifference(T)(in T[] data, in int level) pure nothrow
|
||||
T[] forwardDifference(T)(in T[] data, in ulong level) pure nothrow
|
||||
in {
|
||||
assert(level >= 0 && level < data.length);
|
||||
} body {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import std.stdio, std.algorithm, std.range, std.array;
|
||||
|
||||
auto forwardDifference(Range)(Range d, in int level) pure {
|
||||
auto forwardDifference(Range)(Range d, in ulong level) pure {
|
||||
foreach (immutable _; 0 .. level)
|
||||
d = d.zip(d.dropOne).map!(a => a[0] - a[1]).array;
|
||||
return d;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import std.stdio;
|
||||
|
||||
T[] forwardDifference(T)(T[] s, in int n) pure nothrow @nogc {
|
||||
T[] forwardDifference(T)(T[] s, in ulong n) pure nothrow @nogc {
|
||||
foreach (immutable i; 0 .. n)
|
||||
s[0 .. $ - i - 1] = s[1 .. $ - i] - s[0 .. $ - i - 1];
|
||||
return s[0 .. $ - n];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
function dif(a, b, ...)
|
||||
if(b) then return b-a, dif(b, ...) end
|
||||
end
|
||||
function dift(t) return {dif(unpack(t))} end
|
||||
print(unpack(dift{1,3,6,10,15}))
|
||||
function dift(t) return {dif(table.unpack(t))} end
|
||||
print(table.unpack(dift{1,3,6,10,15}))
|
||||
|
|
|
|||
|
|
@ -1,19 +1,17 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">fwd_diff_n</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">order</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">assert</span><span style="color: #0000FF;">(</span><span style="color: #000000;">order</span><span style="color: #0000FF;"><</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">deep_copy</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">order</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">j</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</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: #008080;">do</span>
|
||||
<span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]-</span><span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #000000;">s</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;">2</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">s</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
with javascript_semantics
|
||||
function fwd_diff_n(sequence s, integer order)
|
||||
assert(order<length(s))
|
||||
s = deep_copy(s)
|
||||
for i=1 to order do
|
||||
for j=1 to length(s)-1 do
|
||||
s[j] = s[j+1]-s[j]
|
||||
end for
|
||||
s = s[1..-2]
|
||||
end for
|
||||
return s
|
||||
end function
|
||||
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">90</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">47</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">58</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">29</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">22</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">32</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">55</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">5</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">55</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">73</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">9</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #0000FF;">?</span><span style="color: #000000;">fwd_diff_n</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<!--
|
||||
constant s = {90, 47, 58, 29, 22, 32, 55, 5, 55, 73}
|
||||
for i=1 to 9 do
|
||||
?fwd_diff_n(s,i)
|
||||
end for
|
||||
|
|
|
|||
21
Task/Forward-difference/Pluto/forward-difference.pluto
Normal file
21
Task/Forward-difference/Pluto/forward-difference.pluto
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
local fmt = require "fmt"
|
||||
require "table2"
|
||||
|
||||
local function forward_diff(a, order)
|
||||
assert(order >= 0 and order % 1 == 0, "Order must be a non-negative integer.")
|
||||
if #a == 0 then return end
|
||||
io.write(" 0: ")
|
||||
fmt.tprint("%5d", a)
|
||||
if #a == 1 then return end
|
||||
if order == 0 then return end
|
||||
for o = 1, order do
|
||||
local b = table.rep(#a - 1, 0)
|
||||
for i = 1, #b do b[i] = a[i + 1] - a[i] end
|
||||
io.write($" {o}: ")
|
||||
fmt.tprint("%5d", b)
|
||||
if #b == 1 then return end
|
||||
a = b
|
||||
end
|
||||
end
|
||||
|
||||
forward_diff({90, 47, 58, 29, 22, 32, 55, 5, 55, 73}, 9)
|
||||
22
Task/Forward-difference/PowerShell/forward-difference.ps1
Normal file
22
Task/Forward-difference/PowerShell/forward-difference.ps1
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
function Forward-Difference( [UInt64] $n, [Array] $f )
|
||||
{
|
||||
$flen = $f.length
|
||||
if( $flen -gt [Math]::Max( 1, $n ) )
|
||||
{
|
||||
0..( $flen - $n - 1 ) | ForEach-Object {
|
||||
$l=0;
|
||||
for( $k = 0; $k -le $n; $k++ )
|
||||
{
|
||||
$j = 1
|
||||
for( $i = 1; $i -le $k; $i++ )
|
||||
{
|
||||
$j *= ( ( $n - $k + $i ) / $i )
|
||||
}
|
||||
$l += $j * ( 1 - 2 * ( ( $n - $k ) % 2 ) ) * $f[ $_ + $k ]
|
||||
}
|
||||
$l
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Forward-Difference 2 1,2,4,5
|
||||
Loading…
Add table
Add a link
Reference in a new issue