+2009-11-30 Arnaud Charlet <charlet@adacore.com>
+
+ * s-tassta.adb: Update comment.
+
+2009-11-30 Robert Dewar <dewar@adacore.com>
+
+ * a-ngelfu.adb: Minor code reorganization.
+
2009-11-30 Robert Dewar <dewar@adacore.com>
* osint.ads, prj.adb, prj.ads: Minor reformatting
-- FP type.
function Local_Atan
- (Y : Float_Type'Base;
- X : Float_Type'Base := 1.0)
- return Float_Type'Base;
+ (Y : Float_Type'Base;
+ X : Float_Type'Base := 1.0) return Float_Type'Base;
-- Common code for arc tangent after cycle reduction
----------
----------------
function Local_Atan
- (Y : Float_Type'Base;
- X : Float_Type'Base := 1.0)
- return Float_Type'Base
+ (Y : Float_Type'Base;
+ X : Float_Type'Base := 1.0) return Float_Type'Base
is
Z : Float_Type'Base;
Raw_Atan : Float_Type'Base;
begin
- Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X));
+ -- Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X));
+
+ -- Raw_Atan :=
+ -- (if Z < Sqrt_Epsilon then Z
+ -- elsif Z = 1.0 then Pi / 4.0
+ -- else Float_Type'Base (Aux.Atan (Double (Z))));
+
+ -- Replace above with IF statements for now (ASIS gnatelim problem???)
- Raw_Atan :=
- (if Z < Sqrt_Epsilon then Z
- elsif Z = 1.0 then Pi / 4.0
- else Float_Type'Base (Aux.Atan (Double (Z))));
+ if abs Y > abs X then
+ Z := abs (X / Y);
+ else
+ Z := abs (Y / X);
+ end if;
+
+ if Z < Sqrt_Epsilon then
+ Raw_Atan := Z;
+ elsif Z = 1.0 then
+ Raw_Atan := Pi / 4.0;
+ else
+ Raw_Atan := Float_Type'Base (Aux.Atan (Double (Z)));
+ end if;
if abs Y > abs X then
Raw_Atan := Half_Pi - Raw_Atan;
function State
(Int : System.Interrupt_Management.Interrupt_ID) return Character;
pragma Import (C, State, "__gnat_get_interrupt_state");
- -- Get interrupt state. Defined in a-init.c
- -- The input argument is the interrupt number,
- -- and the result is one of the following:
+ -- Get interrupt state for interrupt number Int. Defined in init.c
Default : constant Character := 's';
-- 's' Interrupt_State pragma set state to System (use "default"