witness_seed/delphi/witness_seed_3.0/src/RWD.pas

41 lines
940 B
ObjectPascal
Raw Normal View History

unit RWD;
interface
const
Omega = 1.0; // Base frequency
K = 0.1; // Coupling strength
procedure ComputeDynamics(const I: array of Double; var IDot: array of Double; var Phase: Double);
procedure ComputeFieldprint(const I: array of Double; var Fieldprint: Double);
implementation
procedure ComputeDynamics(const I: array of Double; var IDot: array of Double; var Phase: Double);
var
I, J: Integer;
SumSin: Double;
begin
SumSin := 0.0;
for I := Low(I) to High(I) do
begin
IDot[I] := Omega * I[I];
for J := Low(I) to High(I) do
IDot[I] := IDot[I] + K * Sin(I[J] - I[I]);
SumSin := SumSin + Sin(I[I]);
end;
Phase := Phase + Dt * SumSin; // Kairos phase-locking
end;
procedure ComputeFieldprint(const I: array of Double; var Fieldprint: Double);
var
I: Integer;
Sum: Double;
begin
Sum := 0.0;
for I := Low(I) to High(I) do
Sum := Sum + Abs(I[I]);
Fieldprint := Sum / Length(I);
end;
end.