|
|
cd5c5cd |
--- vhdl/libraries/ieee/math_real.vhdl.orig 2009-04-01 19:21:58.000000000 +0200
|
|
|
cd5c5cd |
+++ vhdl/libraries/ieee/math_real.vhdl 2009-04-02 12:21:52.000000000 +0200
|
|
|
cd5c5cd |
@@ -102,16 +102,21 @@
|
|
|
cd5c5cd |
-- returns integer FLOOR(X + 0.5) if X > 0;
|
|
|
cd5c5cd |
-- return integer CEIL(X - 0.5) if X < 0
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: we are missing the function TRUNC
|
|
|
cd5c5cd |
- -- IAC: we are missing the function MOD
|
|
|
cd5c5cd |
- -- IAC: functions FMAX and FMIN should be renamed REALMAX and REALMIN
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function FMAX (X, Y : real ) return real;
|
|
|
cd5c5cd |
- attribute foreign of fmax : function is "VHPIDIRECT fmax";
|
|
|
cd5c5cd |
+ function TRUNC (X : real ) return real;
|
|
|
cd5c5cd |
+ attribute foreign of trunc : function is "VHPIDIRECT trunc";
|
|
|
cd5c5cd |
+ -- returns integer FLOOR(X) if X > 0;
|
|
|
cd5c5cd |
+ -- return integer CEIL(X) if X < 0
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function "MOD" (X, Y : real ) return real;
|
|
|
cd5c5cd |
+ attribute foreign of "mod" : function is "VHPIDIRECT fmod";
|
|
|
cd5c5cd |
+ -- returns the floating point modulus of X/Y
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function REALMAX (X, Y : real ) return real;
|
|
|
cd5c5cd |
+ attribute foreign of realmax : function is "VHPIDIRECT fmax";
|
|
|
cd5c5cd |
-- returns the algebraically larger of X and Y
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function FMIN (X, Y : real ) return real;
|
|
|
cd5c5cd |
- attribute foreign of fmin : function is "VHPIDIRECT fmin";
|
|
|
cd5c5cd |
+ function REALMIN (X, Y : real ) return real;
|
|
|
cd5c5cd |
+ attribute foreign of realmin : function is "VHPIDIRECT fmin";
|
|
|
cd5c5cd |
-- returns the algebraically smaller of X and Y
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real);
|
|
|
cd5c5cd |
@@ -203,25 +208,17 @@
|
|
|
cd5c5cd |
-- returns tan X; X in radians
|
|
|
cd5c5cd |
-- X /= ((2k+1) * PI/2), where k is an integer
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCSIN
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ASIN (X : real ) return real;
|
|
|
cd5c5cd |
+ function ARCSIN (X : real ) return real;
|
|
|
cd5c5cd |
-- returns -PI/2 < asin X < PI/2; | X | <= 1
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCCOS
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ACOS (X : real ) return real;
|
|
|
cd5c5cd |
+ function ARCCOS (X : real ) return real;
|
|
|
cd5c5cd |
-- returns 0 < acos X < PI; | X | <= 1
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCTAN
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ATAN (X : real) return real;
|
|
|
cd5c5cd |
- attribute foreign of atan : function is "VHPIDIRECT atan";
|
|
|
cd5c5cd |
+ function ARCTAN (X : real) return real;
|
|
|
cd5c5cd |
+ attribute foreign of arctan : function is "VHPIDIRECT atan";
|
|
|
cd5c5cd |
-- returns -PI/2 < atan X < PI/2
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function ATAN2 should not exist
|
|
|
cd5c5cd |
- function ATAN2 (X : real; Y : real) return real;
|
|
|
cd5c5cd |
+ function ARCTAN (X : real; Y : real) return real;
|
|
|
cd5c5cd |
-- returns atan (X/Y); -PI < atan2(X,Y) < PI; Y /= 0.0
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function SINH (X : real) return real;
|
|
|
cd5c5cd |
@@ -236,20 +233,35 @@
|
|
|
cd5c5cd |
attribute foreign of tanh : function is "VHPIDIRECT tanh";
|
|
|
cd5c5cd |
-- hyperbolic tangent; -- returns (e**X - e**(-X))/(e**X + e**(-X))
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCSINH
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ASINH (X : real) return real;
|
|
|
cd5c5cd |
- attribute foreign of asinh : function is "VHPIDIRECT asinh";
|
|
|
cd5c5cd |
+ function ARCSINH (X : real) return real;
|
|
|
cd5c5cd |
+ attribute foreign of arcsinh : function is "VHPIDIRECT asinh";
|
|
|
cd5c5cd |
-- returns ln( X + sqrt( X**2 + 1))
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCCOSH
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ACOSH (X : real) return real;
|
|
|
cd5c5cd |
+ function ARCCOSH (X : real) return real;
|
|
|
cd5c5cd |
-- returns ln( X + sqrt( X**2 - 1)); X >= 1
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- -- IAC: function should be called ARCTANH
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function ATANH (X : real) return real;
|
|
|
cd5c5cd |
+ function ARCTANH (X : real) return real;
|
|
|
cd5c5cd |
-- returns (ln( (1 + X)/(1 - X)))/2 ; | X | < 1
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ -- Compatibility; will be removed in the future!
|
|
|
cd5c5cd |
+ impure function FMAX (X, Y : real ) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function FMIN (X, Y : real ) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ASIN (X : real ) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ACOS (X : real ) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATAN (X : real) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATAN2 (X : real; Y : real) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ASINH (X : real) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ACOSH (X : real) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATANH (X : real) return real;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
end MATH_REAL;
|
|
|
cd5c5cd |
--- vhdl/libraries/ieee/math_real-body.vhdl.orig 2009-04-01 19:22:04.000000000 +0200
|
|
|
cd5c5cd |
+++ vhdl/libraries/ieee/math_real-body.vhdl 2009-04-02 12:27:15.000000000 +0200
|
|
|
cd5c5cd |
@@ -72,16 +72,41 @@
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end ROUND;
|
|
|
cd5c5cd |
-
|
|
|
cd5c5cd |
- function FMAX (X, Y : real ) return real is
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function TRUNC (X : real ) return real is
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
- end FMAX;
|
|
|
cd5c5cd |
+ end TRUNC;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function FMIN (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ function c_mod (x : real; y : real) return real;
|
|
|
cd5c5cd |
+ attribute foreign of c_mod : function is "VHPIDIRECT fmod";
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function c_mod (x : real; y: real) return real is
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
- end FMIN;
|
|
|
cd5c5cd |
+ end c_mod;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function "MOD" (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ if y = 0.0 then
|
|
|
cd5c5cd |
+ assert false
|
|
|
cd5c5cd |
+ report "MOD(X, 0.0) is undefined"
|
|
|
cd5c5cd |
+ severity ERROR;
|
|
|
cd5c5cd |
+ return 0.0;
|
|
|
cd5c5cd |
+ else
|
|
|
cd5c5cd |
+ return c_mod(x,y);
|
|
|
cd5c5cd |
+ end if;
|
|
|
cd5c5cd |
+ end "MOD";
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function REALMAX (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert false severity failure;
|
|
|
cd5c5cd |
+ end REALMAX;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ function REALMIN (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert false severity failure;
|
|
|
cd5c5cd |
+ end REALMIN;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
--
|
|
|
cd5c5cd |
-- Pseudo-random number generators
|
|
|
cd5c5cd |
@@ -297,18 +322,18 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end c_asin;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ASIN (x : real ) return real is
|
|
|
cd5c5cd |
+ function ARCSIN (x : real ) return real is
|
|
|
cd5c5cd |
-- returns -PI/2 < asin X < PI/2; | X | <= 1
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
if abs x > 1.0 then
|
|
|
cd5c5cd |
assert false
|
|
|
cd5c5cd |
- report "Out of range parameter passed to ASIN"
|
|
|
cd5c5cd |
+ report "Out of range parameter passed to ARCSIN"
|
|
|
cd5c5cd |
severity ERROR;
|
|
|
cd5c5cd |
return x;
|
|
|
cd5c5cd |
else
|
|
|
cd5c5cd |
return c_asin(x);
|
|
|
cd5c5cd |
end if;
|
|
|
cd5c5cd |
- end ASIN;
|
|
|
cd5c5cd |
+ end ARCSIN;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function c_acos (x : real ) return real;
|
|
|
cd5c5cd |
attribute foreign of c_acos : function is "VHPIDIRECT acos";
|
|
|
cd5c5cd |
@@ -318,24 +343,24 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end c_acos;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ACOS (x : REAL) return REAL is
|
|
|
cd5c5cd |
+ function ARCCOS (x : REAL) return REAL is
|
|
|
cd5c5cd |
-- returns 0 < acos X < PI; | X | <= 1
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
if abs x > 1.0 then
|
|
|
cd5c5cd |
assert false
|
|
|
cd5c5cd |
- report "Out of range parameter passed to ACOS"
|
|
|
cd5c5cd |
+ report "Out of range parameter passed to ARCCOS"
|
|
|
cd5c5cd |
severity ERROR;
|
|
|
cd5c5cd |
return x;
|
|
|
cd5c5cd |
else
|
|
|
cd5c5cd |
return c_acos(x);
|
|
|
cd5c5cd |
end if;
|
|
|
cd5c5cd |
- end ACOS;
|
|
|
cd5c5cd |
+ end ARCCOS;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ATAN (x : REAL) return REAL is
|
|
|
cd5c5cd |
+ function ARCTAN (x : REAL) return REAL is
|
|
|
cd5c5cd |
-- returns -PI/2 < atan X < PI/2
|
|
|
cd5c5cd |
- begin
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
- end ATAN;
|
|
|
cd5c5cd |
+ end ARCTAN;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function c_atan2 (x : real; y : real) return real;
|
|
|
cd5c5cd |
attribute foreign of c_atan2 : function is "VHPIDIRECT atan2";
|
|
|
cd5c5cd |
@@ -345,7 +370,7 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end c_atan2;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ATAN2 (x : REAL; y : REAL) return REAL is
|
|
|
cd5c5cd |
+ function ARCTAN (x : REAL; y : REAL) return REAL is
|
|
|
cd5c5cd |
-- returns atan (X/Y); -PI < atan2(X,Y) < PI; Y /= 0.0
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
if y = 0.0 and x = 0.0 then
|
|
|
cd5c5cd |
@@ -356,7 +381,7 @@
|
|
|
cd5c5cd |
else
|
|
|
cd5c5cd |
return c_atan2(x,y);
|
|
|
cd5c5cd |
end if;
|
|
|
cd5c5cd |
- end ATAN2;
|
|
|
cd5c5cd |
+ end ARCTAN;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function SINH (X : real) return real is
|
|
|
cd5c5cd |
@@ -377,11 +402,11 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end TANH;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ASINH (X : real) return real is
|
|
|
cd5c5cd |
+ function ARCSINH (X : real) return real is
|
|
|
cd5c5cd |
-- returns ln( X + sqrt( X**2 + 1))
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
- end ASINH;
|
|
|
cd5c5cd |
+ end ARCSINH;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function c_acosh (x : real ) return real;
|
|
|
cd5c5cd |
attribute foreign of c_acosh : function is "VHPIDIRECT acosh";
|
|
|
cd5c5cd |
@@ -391,16 +416,16 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end c_acosh;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ACOSH (X : real) return real is
|
|
|
cd5c5cd |
+ function ARCCOSH (X : real) return real is
|
|
|
cd5c5cd |
-- returns ln( X + sqrt( X**2 - 1)); X >= 1
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
if abs x >= 1.0 then
|
|
|
cd5c5cd |
- assert false report "Out of range parameter passed to ACOSH"
|
|
|
cd5c5cd |
+ assert false report "Out of range parameter passed to ARCCOSH"
|
|
|
cd5c5cd |
severity ERROR;
|
|
|
cd5c5cd |
return x;
|
|
|
cd5c5cd |
end if;
|
|
|
cd5c5cd |
return c_acosh(x);
|
|
|
cd5c5cd |
- end ACOSH;
|
|
|
cd5c5cd |
+ end ARCCOSH;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function c_atanh (x : real ) return real;
|
|
|
cd5c5cd |
attribute foreign of c_atanh : function is "VHPIDIRECT atanh";
|
|
|
cd5c5cd |
@@ -410,15 +435,107 @@
|
|
|
cd5c5cd |
assert false severity failure;
|
|
|
cd5c5cd |
end c_atanh;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
- function ATANH (X : real) return real is
|
|
|
cd5c5cd |
+ function ARCTANH (X : real) return real is
|
|
|
cd5c5cd |
-- returns (ln( (1 + X)/(1 - X)))/2 ; | X | < 1
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
if abs x < 1.0 then
|
|
|
cd5c5cd |
- assert false report "Out of range parameter passed to ATANH"
|
|
|
cd5c5cd |
+ assert false report "Out of range parameter passed to ARCTANH"
|
|
|
cd5c5cd |
severity ERROR;
|
|
|
cd5c5cd |
return x;
|
|
|
cd5c5cd |
end if;
|
|
|
cd5c5cd |
return c_atanh(x);
|
|
|
cd5c5cd |
- end ATANH;
|
|
|
cd5c5cd |
+ end ARCTANH;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ -- Compatibility; will be removed in the future!
|
|
|
cd5c5cd |
+ shared variable fmax_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable fmin_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable asin_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable acos_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable atan_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable atan2_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable asinh_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable acosh_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+ shared variable atanh_compat_warn : boolean := false;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function FMAX (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert fmax_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.FMAX is not a standards compliant function and will be removed in the future; use REALMAX instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ fmax_compat_warn := true;
|
|
|
cd5c5cd |
+ return REALMAX(X, Y);
|
|
|
cd5c5cd |
+ end FMAX;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function FMIN (X, Y : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert fmin_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.FMIN is not a standards compliant function and will be removed in the future; use REALMIN instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ fmin_compat_warn := true;
|
|
|
cd5c5cd |
+ return REALMIN(X, Y);
|
|
|
cd5c5cd |
+ end FMIN;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ASIN (X : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert asin_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ASIN is not a standards compliant function and will be removed in the future; use ARCSIN instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ asin_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCSIN(X);
|
|
|
cd5c5cd |
+ end ASIN;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ACOS (X : real ) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert acos_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ACOS is not a standards compliant function and will be removed in the future; use ARCCOS instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ acos_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCCOS(X);
|
|
|
cd5c5cd |
+ end ACOS;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATAN (X : real) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert atan_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ATAN is not a standards compliant function and will be removed in the future; use ARCTAN instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ atan_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCTAN(X);
|
|
|
cd5c5cd |
+ end ATAN;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATAN2 (X : real; Y : real) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert atan2_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ATAN2 is not a standards compliant function and will be removed in the future; use ARCTAN instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ atan2_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCTAN(X, Y);
|
|
|
cd5c5cd |
+ end ATAN2;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ASINH (X : real) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert asinh_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ASINH is not a standards compliant function and will be removed in the future; use ARCSINH instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ asinh_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCSINH(X);
|
|
|
cd5c5cd |
+ end ASINH;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ACOSH (X : real) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert acosh_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ACOSH is not a standards compliant function and will be removed in the future; use ARCCOSH instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ acosh_compat_warn := true;
|
|
|
cd5c5cd |
+ return ACOSH(X);
|
|
|
cd5c5cd |
+ end ACOSH;
|
|
|
cd5c5cd |
+
|
|
|
cd5c5cd |
+ impure function ATANH (X : real) return real is
|
|
|
cd5c5cd |
+ begin
|
|
|
cd5c5cd |
+ assert atanh_compat_warn
|
|
|
cd5c5cd |
+ report "MATH_REAL.ATANH is not a standards compliant function and will be removed in the future; use ARCTANH instead"
|
|
|
cd5c5cd |
+ severity note;
|
|
|
cd5c5cd |
+ atanh_compat_warn := true;
|
|
|
cd5c5cd |
+ return ARCTANH(X);
|
|
|
cd5c5cd |
+ end ATANH;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
end MATH_REAL;
|
|
|
cd5c5cd |
--- vhdl/libraries/ieee/math_complex-body.vhdl.orig 2009-04-02 12:08:47.000000000 +0200
|
|
|
cd5c5cd |
+++ vhdl/libraries/ieee/math_complex-body.vhdl 2009-04-02 12:09:18.000000000 +0200
|
|
|
cd5c5cd |
@@ -119,7 +119,7 @@
|
|
|
cd5c5cd |
function COMPLEX_TO_POLAR(Z: in complex ) return complex_polar is
|
|
|
cd5c5cd |
-- converts complex to complex_polar
|
|
|
cd5c5cd |
begin
|
|
|
cd5c5cd |
- return COMPLEX_POLAR'(sqrt(z.re**2 + z.im**2),atan2(z.re,z.im));
|
|
|
cd5c5cd |
+ return COMPLEX_POLAR'(sqrt(z.re**2 + z.im**2),ARCTAN(z.re,z.im));
|
|
|
cd5c5cd |
end COMPLEX_TO_POLAR;
|
|
|
cd5c5cd |
|
|
|
cd5c5cd |
function POLAR_TO_COMPLEX(Z: in complex_polar ) return complex is
|