Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,34 +0,0 @@
|
|||
with Ada.Text_IO, Ada.Numerics.Generic_Elementary_Functions;
|
||||
|
||||
procedure Mean_Angles is
|
||||
|
||||
type X_Real is digits 4; -- or more digits for improved precision
|
||||
subtype Real is X_Real range 0.0 .. 360.0; -- the range of interest
|
||||
type Angles is array(Positive range <>) of Real;
|
||||
|
||||
procedure Put(R: Real) is
|
||||
package IO is new Ada.Text_IO.Float_IO(Real);
|
||||
begin
|
||||
IO.Put(R, Fore => 3, Aft => 2, Exp => 0);
|
||||
end Put;
|
||||
|
||||
function Mean_Angle(A: Angles) return Real is
|
||||
Sin_Sum, Cos_Sum: X_Real := 0.0; -- X_Real since sums might exceed 360.0
|
||||
package Math is new Ada.Numerics.Generic_Elementary_Functions(Real);
|
||||
use Math;
|
||||
begin
|
||||
for I in A'Range loop
|
||||
Sin_Sum := Sin_Sum + Sin(A(I), Cycle => 360.0);
|
||||
Cos_Sum := Cos_Sum + Cos(A(I), Cycle => 360.0);
|
||||
end loop;
|
||||
return Arctan(Sin_Sum / X_Real(A'Length), Cos_Sum / X_Real(A'Length),
|
||||
Cycle => 360.0);
|
||||
-- may raise Ada.Numerics.Argument_Error if inputs are
|
||||
-- numerically instable, e.g., when Cos_Sum is 0.0
|
||||
end Mean_Angle;
|
||||
|
||||
begin
|
||||
Put(Mean_Angle((10.0, 20.0, 30.0))); Ada.Text_IO.New_Line; -- 20.00
|
||||
Put(Mean_Angle((10.0, 350.0))); Ada.Text_IO.New_Line; -- 0.00
|
||||
Put(Mean_Angle((90.0, 180.0, 270.0, 360.0))); -- Ada.Numerics.Argument_Error!
|
||||
end Mean_Angles;
|
||||
Loading…
Add table
Add a link
Reference in a new issue