Add more tests for float and double interval
This commit is contained in:
parent
f87b4394d3
commit
7059836e21
4 changed files with 1496 additions and 700 deletions
44
src/tests/interval/check.h
Normal file
44
src/tests/interval/check.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
// Check F(I.lower()) \in F(I) and F(I.upper()) \in F(I).
|
||||
#define check_bop(T, f, i, c) { \
|
||||
cout << #f << "(" << #i << " " << i << ", " << c << ") = "; \
|
||||
interval<T> tmp = f(i, c); \
|
||||
cout << tmp << endl; \
|
||||
if(!i.is_lower_inf()) { \
|
||||
numeric_traits<T>::set_rounding(false); \
|
||||
T l = i.lower(); \
|
||||
numeric_traits<T>::f(l, c); \
|
||||
cout << "\t" << #f << "(" << i.lower() << ", " << c << ") = " << l << endl; \
|
||||
lean_assert(tmp.is_lower_inf() || \
|
||||
((tmp.lower() <= l) && (tmp.is_upper_inf() || (l <= tmp.upper())))); \
|
||||
} \
|
||||
if(!i.is_upper_inf()) { \
|
||||
numeric_traits<T>::set_rounding(true); \
|
||||
T u = i.upper(); \
|
||||
numeric_traits<T>::f(u, c); \
|
||||
cout << "\t" << #f << "(" << i.upper() << ", " << c << ") = " << u << endl; \
|
||||
lean_assert(tmp.is_upper_inf() || \
|
||||
((tmp.is_lower_inf() || (tmp.lower() <= u)) && (u <= tmp.upper()))); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define check_uop(T, f, i) { \
|
||||
cout << #f << "(" << #i << " " << i << ") = "; \
|
||||
interval<T> tmp = f(i); \
|
||||
cout << tmp << endl; \
|
||||
if(!i.is_lower_inf()) { \
|
||||
numeric_traits<T>::set_rounding(false); \
|
||||
T l = i.lower(); \
|
||||
numeric_traits<T>::f(l); \
|
||||
cout << "\t" << #f << "(" << i.lower() << ") = " << l << endl; \
|
||||
lean_assert(tmp.is_lower_inf() || \
|
||||
((tmp.lower() <= l) && (tmp.is_upper_inf() || (l <= tmp.upper())))); \
|
||||
} \
|
||||
if(!i.is_upper_inf()) { \
|
||||
numeric_traits<T>::set_rounding(true); \
|
||||
T u = i.upper(); \
|
||||
numeric_traits<T>::f(u); \
|
||||
cout << "\t" << #f << "(" << i.upper() << ") = " << u << endl; \
|
||||
lean_assert(tmp.is_upper_inf() || \
|
||||
((tmp.is_lower_inf() || (tmp.lower() <= u)) && (u <= tmp.upper()))); \
|
||||
} \
|
||||
}
|
|
@ -8,8 +8,8 @@ Author: Soonho Kong
|
|||
#include "test.h"
|
||||
#include "trace.h"
|
||||
#include "double.h"
|
||||
#include "mpfp.h"
|
||||
#include "interval_def.h"
|
||||
#include "check.h"
|
||||
|
||||
using namespace lean;
|
||||
|
||||
|
@ -24,7 +24,7 @@ void print_result(T1 a, std::string const & op, T2 b, T3 r) {
|
|||
cout << a << " " << op << " " << b << " = " << r << endl;
|
||||
}
|
||||
|
||||
static void mpfp_interval_arith() {
|
||||
static void double_interval_arith() {
|
||||
di i1(1.0, 2.0);
|
||||
di i2(3.0, 4.0);
|
||||
di i3(-10.0, -5.0);
|
||||
|
@ -124,7 +124,7 @@ static void mpfp_interval_arith() {
|
|||
print_result(c1, "/", i5, c1 / i5);
|
||||
}
|
||||
|
||||
static void mpfp_interval_inf1() {
|
||||
static void double_interval_inf1() {
|
||||
di i1(1.0, 2.0);
|
||||
di inf;
|
||||
di ozero_pinf;
|
||||
|
@ -272,7 +272,7 @@ static void mpfp_interval_inf1() {
|
|||
lean_assert(czero_pinf / ozero_pinf == czero_pinf);
|
||||
}
|
||||
|
||||
static void mpfp_interval_inf2() {
|
||||
static void double_interval_inf2() {
|
||||
di i1(1.0, 2.0);
|
||||
di i2(3.0, 4.0);
|
||||
di i3(-10.0, -5.0);
|
||||
|
@ -320,22 +320,54 @@ static void mpfp_interval_inf2() {
|
|||
lean_assert(zero * inf == zero);lean_assert(inf * zero == zero);
|
||||
}
|
||||
|
||||
static void mpfp_interval_trans() {
|
||||
static void double_interval_trans() {
|
||||
di i1(1.0, 2.0);
|
||||
di i2(3.0, 4.0);
|
||||
di i3(-10.0, -5.0);
|
||||
di i4(-3.0, +4.0);
|
||||
di i5(5.0, 8.0);
|
||||
di i6(0.3, 1.67);
|
||||
di i7(1.8, 3.5);
|
||||
di i8(3.5, 4.9);
|
||||
di i9(-3.15, -2.0);
|
||||
di i10(-0.99, 0.5);
|
||||
di i11(-0.8, -0.5);
|
||||
di i12(-0.3, 0.2);
|
||||
di i13(0.5, 0.9);
|
||||
di i14(-0.1, 0.8);
|
||||
di i15(-0.4, -0.3);
|
||||
|
||||
di oi1(1.0, 2.0);
|
||||
di oi2(3.0, 4.0);
|
||||
di oi3(-10.0, -5.0);
|
||||
di oi4(-3.0, +4.0);
|
||||
di oi5(5.0, 8.0);
|
||||
oi1.set_is_lower_open(true); oi1.set_is_upper_open(true);
|
||||
oi2.set_is_lower_open(true); oi2.set_is_upper_open(true);
|
||||
oi3.set_is_lower_open(true); oi3.set_is_upper_open(true);
|
||||
oi4.set_is_lower_open(true); oi4.set_is_upper_open(true);
|
||||
oi5.set_is_lower_open(true); oi5.set_is_upper_open(true);
|
||||
di oi6(0.3, 1.67);
|
||||
di oi7(1.8, 3.5);
|
||||
di oi8(3.5, 4.9);
|
||||
di oi9(-3.15, -2.0);
|
||||
di oi10(-3.19, -1.0);
|
||||
di oi11(-0.8, -0.5);
|
||||
di oi12(-0.3, 0.2);
|
||||
di oi13(0.5, 0.9);
|
||||
di oi14(-0.1, 0.8);
|
||||
di oi15(-0.4, -0.3);
|
||||
|
||||
oi1.set_is_lower_open(true); oi1.set_is_upper_open(true);
|
||||
oi2.set_is_lower_open(true); oi2.set_is_upper_open(true);
|
||||
oi3.set_is_lower_open(true); oi3.set_is_upper_open(true);
|
||||
oi4.set_is_lower_open(true); oi4.set_is_upper_open(true);
|
||||
oi5.set_is_lower_open(true); oi5.set_is_upper_open(true);
|
||||
oi6.set_is_lower_open(true); oi6.set_is_upper_open(true);
|
||||
oi7.set_is_lower_open(true); oi7.set_is_upper_open(true);
|
||||
oi8.set_is_lower_open(true); oi8.set_is_upper_open(true);
|
||||
oi9.set_is_lower_open(true); oi9.set_is_upper_open(true);
|
||||
oi10.set_is_lower_open(true); oi10.set_is_upper_open(true);
|
||||
oi11.set_is_lower_open(true); oi11.set_is_upper_open(true);
|
||||
oi12.set_is_lower_open(true); oi12.set_is_upper_open(true);
|
||||
oi13.set_is_lower_open(true); oi13.set_is_upper_open(true);
|
||||
oi14.set_is_lower_open(true); oi14.set_is_upper_open(true);
|
||||
oi15.set_is_lower_open(true); oi15.set_is_upper_open(true);
|
||||
|
||||
di inf;
|
||||
di ozero_pinf;
|
||||
|
@ -356,157 +388,487 @@ static void mpfp_interval_trans() {
|
|||
// double c5 = -0.3;
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "power" << "(" << i1 << ", " << 3 << ") = " << power(i1, 3) << endl;
|
||||
cout << "power" << "(" << i2 << ", " << 3 << ") = " << power(i2, 3) << endl;
|
||||
cout << "power" << "(" << i3 << ", " << 3 << ") = " << power(i3, 3) << endl;
|
||||
cout << "power" << "(" << i4 << ", " << 3 << ") = " << power(i4, 3) << endl;
|
||||
cout << "power" << "(" << i5 << ", " << 3 << ") = " << power(i5, 3) << endl;
|
||||
cout << "power" << "(" << oi1 << ", " << 3 << ") = " << power(oi1, 3) << endl;
|
||||
cout << "power" << "(" << oi2 << ", " << 3 << ") = " << power(oi2, 3) << endl;
|
||||
cout << "power" << "(" << oi3 << ", " << 3 << ") = " << power(oi3, 3) << endl;
|
||||
cout << "power" << "(" << oi4 << ", " << 3 << ") = " << power(oi4, 3) << endl;
|
||||
cout << "power" << "(" << oi5 << ", " << 3 << ") = " << power(oi5, 3) << endl;
|
||||
cout << "power" << "(" << inf << ", " << 3 << ") = " << power(inf, 3) << endl;
|
||||
cout << "power" << "(" << ozero_ninf << ", " << 3 << ") = " << power(ozero_ninf, 3) << endl;
|
||||
cout << "power" << "(" << ozero_pinf << ", " << 3 << ") = " << power(ozero_pinf, 3) << endl;
|
||||
cout << "power" << "(" << czero_ninf << ", " << 3 << ") = " << power(czero_ninf, 3) << endl;
|
||||
cout << "power" << "(" << czero_pinf << ", " << 3 << ") = " << power(czero_pinf, 3) << endl;
|
||||
check_bop(double, power, i1, 3u);
|
||||
check_bop(double, power, i2, 3u);
|
||||
check_bop(double, power, i3, 3u);
|
||||
check_bop(double, power, i4, 3u);
|
||||
check_bop(double, power, i5, 3u);
|
||||
check_bop(double, power, i6, 3u);
|
||||
check_bop(double, power, i7, 3u);
|
||||
check_bop(double, power, i8, 3u);
|
||||
check_bop(double, power, i9, 3u);
|
||||
check_bop(double, power, i10, 3u);
|
||||
check_bop(double, power, i11, 3u);
|
||||
check_bop(double, power, i12, 3u);
|
||||
check_bop(double, power, i13, 3u);
|
||||
check_bop(double, power, i14, 3u);
|
||||
check_bop(double, power, i15, 3u);
|
||||
check_bop(double, power, oi1, 3u);
|
||||
check_bop(double, power, oi2, 3u);
|
||||
check_bop(double, power, oi3, 3u);
|
||||
check_bop(double, power, oi4, 3u);
|
||||
check_bop(double, power, oi5, 3u);
|
||||
check_bop(double, power, oi6, 3u);
|
||||
check_bop(double, power, oi7, 3u);
|
||||
check_bop(double, power, oi8, 3u);
|
||||
check_bop(double, power, oi9, 3u);
|
||||
check_bop(double, power, oi10, 3u);
|
||||
check_bop(double, power, oi11, 3u);
|
||||
check_bop(double, power, oi12, 3u);
|
||||
check_bop(double, power, oi13, 3u);
|
||||
check_bop(double, power, oi14, 3u);
|
||||
check_bop(double, power, oi15, 3u);
|
||||
check_bop(double, power, inf, 3u);
|
||||
check_bop(double, power, ozero_ninf, 3u);
|
||||
check_bop(double, power, ozero_pinf, 3u);
|
||||
check_bop(double, power, czero_ninf, 3u);
|
||||
check_bop(double, power, czero_pinf, 3u);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp" << "(" << i1 << ") = " << exp(i1) << endl;
|
||||
cout << "exp" << "(" << i2 << ") = " << exp(i2) << endl;
|
||||
cout << "exp" << "(" << i3 << ") = " << exp(i3) << endl;
|
||||
cout << "exp" << "(" << i4 << ") = " << exp(i4) << endl;
|
||||
cout << "exp" << "(" << i5 << ") = " << exp(i5) << endl;
|
||||
cout << "exp" << "(" << oi1 << ") = " << exp(oi1) << endl;
|
||||
cout << "exp" << "(" << oi2 << ") = " << exp(oi2) << endl;
|
||||
cout << "exp" << "(" << oi3 << ") = " << exp(oi3) << endl;
|
||||
cout << "exp" << "(" << oi4 << ") = " << exp(oi4) << endl;
|
||||
cout << "exp" << "(" << oi5 << ") = " << exp(oi5) << endl;
|
||||
cout << "exp" << "(" << ozero_pinf << ") = " << exp(ozero_pinf) << endl;
|
||||
cout << "exp" << "(" << ozero_ninf << ") = " << exp(ozero_ninf) << endl;
|
||||
cout << "exp" << "(" << czero_pinf << ") = " << exp(czero_pinf) << endl;
|
||||
cout << "exp" << "(" << czero_ninf << ") = " << exp(czero_ninf) << endl;
|
||||
cout << "exp" << "(" << inf << ") = " << exp(inf) << endl;
|
||||
check_uop(double, exp, i1);
|
||||
check_uop(double, exp, i2);
|
||||
check_uop(double, exp, i3);
|
||||
check_uop(double, exp, i4);
|
||||
check_uop(double, exp, i5);
|
||||
check_uop(double, exp, i6);
|
||||
check_uop(double, exp, i7);
|
||||
check_uop(double, exp, i8);
|
||||
check_uop(double, exp, i9);
|
||||
check_uop(double, exp, i10);
|
||||
check_uop(double, exp, i11);
|
||||
check_uop(double, exp, i12);
|
||||
check_uop(double, exp, i13);
|
||||
check_uop(double, exp, i14);
|
||||
check_uop(double, exp, i15);
|
||||
check_uop(double, exp, oi1);
|
||||
check_uop(double, exp, oi2);
|
||||
check_uop(double, exp, oi3);
|
||||
check_uop(double, exp, oi4);
|
||||
check_uop(double, exp, oi5);
|
||||
check_uop(double, exp, oi6);
|
||||
check_uop(double, exp, oi7);
|
||||
check_uop(double, exp, oi8);
|
||||
check_uop(double, exp, oi9);
|
||||
check_uop(double, exp, oi10);
|
||||
check_uop(double, exp, oi11);
|
||||
check_uop(double, exp, oi12);
|
||||
check_uop(double, exp, oi13);
|
||||
check_uop(double, exp, oi14);
|
||||
check_uop(double, exp, oi15);
|
||||
check_uop(double, exp, inf);
|
||||
check_uop(double, exp, ozero_pinf);
|
||||
check_uop(double, exp, ozero_ninf);
|
||||
check_uop(double, exp, czero_pinf);
|
||||
check_uop(double, exp, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp2" << "(" << i1 << ") = " << exp2(i1) << endl;
|
||||
cout << "exp2" << "(" << i2 << ") = " << exp2(i2) << endl;
|
||||
cout << "exp2" << "(" << i3 << ") = " << exp2(i3) << endl;
|
||||
cout << "exp2" << "(" << i4 << ") = " << exp2(i4) << endl;
|
||||
cout << "exp2" << "(" << i5 << ") = " << exp2(i5) << endl;
|
||||
cout << "exp2" << "(" << oi1 << ") = " << exp2(oi1) << endl;
|
||||
cout << "exp2" << "(" << oi2 << ") = " << exp2(oi2) << endl;
|
||||
cout << "exp2" << "(" << oi3 << ") = " << exp2(oi3) << endl;
|
||||
cout << "exp2" << "(" << oi4 << ") = " << exp2(oi4) << endl;
|
||||
cout << "exp2" << "(" << oi5 << ") = " << exp2(oi5) << endl;
|
||||
cout << "exp2" << "(" << ozero_pinf << ") = " << exp2(ozero_pinf) << endl;
|
||||
cout << "exp2" << "(" << ozero_ninf << ") = " << exp2(ozero_ninf) << endl;
|
||||
cout << "exp2" << "(" << czero_pinf << ") = " << exp2(czero_pinf) << endl;
|
||||
cout << "exp2" << "(" << czero_ninf << ") = " << exp2(czero_ninf) << endl;
|
||||
cout << "exp2" << "(" << inf << ") = " << exp2(inf) << endl;
|
||||
check_uop(double, exp2, i1);
|
||||
check_uop(double, exp2, i2);
|
||||
check_uop(double, exp2, i3);
|
||||
check_uop(double, exp2, i4);
|
||||
check_uop(double, exp2, i5);
|
||||
check_uop(double, exp2, i6);
|
||||
check_uop(double, exp2, i7);
|
||||
check_uop(double, exp2, i8);
|
||||
check_uop(double, exp2, i9);
|
||||
check_uop(double, exp2, i10);
|
||||
check_uop(double, exp2, i11);
|
||||
check_uop(double, exp2, i12);
|
||||
check_uop(double, exp2, i13);
|
||||
check_uop(double, exp2, i14);
|
||||
check_uop(double, exp2, i15);
|
||||
check_uop(double, exp2, oi1);
|
||||
check_uop(double, exp2, oi2);
|
||||
check_uop(double, exp2, oi3);
|
||||
check_uop(double, exp2, oi4);
|
||||
check_uop(double, exp2, oi5);
|
||||
check_uop(double, exp2, oi6);
|
||||
check_uop(double, exp2, oi7);
|
||||
check_uop(double, exp2, oi8);
|
||||
check_uop(double, exp2, oi9);
|
||||
check_uop(double, exp2, oi10);
|
||||
check_uop(double, exp2, oi11);
|
||||
check_uop(double, exp2, oi12);
|
||||
check_uop(double, exp2, oi13);
|
||||
check_uop(double, exp2, oi14);
|
||||
check_uop(double, exp2, oi15);
|
||||
check_uop(double, exp2, inf);
|
||||
check_uop(double, exp2, ozero_pinf);
|
||||
check_uop(double, exp2, ozero_ninf);
|
||||
check_uop(double, exp2, czero_pinf);
|
||||
check_uop(double, exp2, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp10" << "(" << i1 << ") = " << exp10(i1) << endl;
|
||||
cout << "exp10" << "(" << i2 << ") = " << exp10(i2) << endl;
|
||||
cout << "exp10" << "(" << i3 << ") = " << exp10(i3) << endl;
|
||||
cout << "exp10" << "(" << i4 << ") = " << exp10(i4) << endl;
|
||||
cout << "exp10" << "(" << i5 << ") = " << exp10(i5) << endl;
|
||||
cout << "exp10" << "(" << oi1 << ") = " << exp10(oi1) << endl;
|
||||
cout << "exp10" << "(" << oi2 << ") = " << exp10(oi2) << endl;
|
||||
cout << "exp10" << "(" << oi3 << ") = " << exp10(oi3) << endl;
|
||||
cout << "exp10" << "(" << oi4 << ") = " << exp10(oi4) << endl;
|
||||
cout << "exp10" << "(" << oi5 << ") = " << exp10(oi5) << endl;
|
||||
cout << "exp10" << "(" << ozero_pinf << ") = " << exp10(ozero_pinf) << endl;
|
||||
cout << "exp10" << "(" << ozero_ninf << ") = " << exp10(ozero_ninf) << endl;
|
||||
cout << "exp10" << "(" << czero_pinf << ") = " << exp10(czero_pinf) << endl;
|
||||
cout << "exp10" << "(" << czero_ninf << ") = " << exp10(czero_ninf) << endl;
|
||||
cout << "exp10" << "(" << inf << ") = " << exp10(inf) << endl;
|
||||
check_uop(double, exp10, i1);
|
||||
check_uop(double, exp10, i2);
|
||||
check_uop(double, exp10, i3);
|
||||
check_uop(double, exp10, i4);
|
||||
check_uop(double, exp10, i5);
|
||||
check_uop(double, exp10, i6);
|
||||
check_uop(double, exp10, i7);
|
||||
check_uop(double, exp10, i8);
|
||||
check_uop(double, exp10, i9);
|
||||
check_uop(double, exp10, i10);
|
||||
check_uop(double, exp10, i11);
|
||||
check_uop(double, exp10, i12);
|
||||
check_uop(double, exp10, i13);
|
||||
check_uop(double, exp10, i14);
|
||||
check_uop(double, exp10, i15);
|
||||
check_uop(double, exp10, oi1);
|
||||
check_uop(double, exp10, oi2);
|
||||
check_uop(double, exp10, oi3);
|
||||
check_uop(double, exp10, oi4);
|
||||
check_uop(double, exp10, oi5);
|
||||
check_uop(double, exp10, oi6);
|
||||
check_uop(double, exp10, oi7);
|
||||
check_uop(double, exp10, oi8);
|
||||
check_uop(double, exp10, oi9);
|
||||
check_uop(double, exp10, oi10);
|
||||
check_uop(double, exp10, oi11);
|
||||
check_uop(double, exp10, oi12);
|
||||
check_uop(double, exp10, oi13);
|
||||
check_uop(double, exp10, oi14);
|
||||
check_uop(double, exp10, oi15);
|
||||
check_uop(double, exp10, inf);
|
||||
check_uop(double, exp10, ozero_pinf);
|
||||
check_uop(double, exp10, ozero_ninf);
|
||||
check_uop(double, exp10, czero_pinf);
|
||||
check_uop(double, exp10, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log" << "(" << i1 << ") = " << log(i1) << endl;
|
||||
cout << "log" << "(" << i2 << ") = " << log(i2) << endl;
|
||||
cout << "log" << "(" << i5 << ") = " << log(i5) << endl;
|
||||
cout << "log" << "(" << oi1 << ") = " << log(oi1) << endl;
|
||||
cout << "log" << "(" << oi2 << ") = " << log(oi2) << endl;
|
||||
cout << "log" << "(" << oi5 << ") = " << log(oi5) << endl;
|
||||
cout << "log" << "(" << ozero_pinf << ") = " << log(ozero_pinf) << endl;
|
||||
check_uop(double, log, i1);
|
||||
check_uop(double, log, i2);
|
||||
check_uop(double, log, i5);
|
||||
check_uop(double, log, i6);
|
||||
check_uop(double, log, i7);
|
||||
check_uop(double, log, i8);
|
||||
check_uop(double, log, oi1);
|
||||
check_uop(double, log, oi2);
|
||||
check_uop(double, log, oi5);
|
||||
check_uop(double, log, oi6);
|
||||
check_uop(double, log, oi7);
|
||||
check_uop(double, log, oi8);
|
||||
check_uop(double, log, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log2" << "(" << i1 << ") = " << log2(i1) << endl;
|
||||
cout << "log2" << "(" << i2 << ") = " << log2(i2) << endl;
|
||||
cout << "log2" << "(" << i5 << ") = " << log2(i5) << endl;
|
||||
cout << "log2" << "(" << oi1 << ") = " << log2(oi1) << endl;
|
||||
cout << "log2" << "(" << oi2 << ") = " << log2(oi2) << endl;
|
||||
cout << "log2" << "(" << oi5 << ") = " << log2(oi5) << endl;
|
||||
cout << "log2" << "(" << ozero_pinf << ") = " << log2(ozero_pinf) << endl;
|
||||
check_uop(double, log2, i1);
|
||||
check_uop(double, log2, i2);
|
||||
check_uop(double, log2, i5);
|
||||
check_uop(double, log2, i6);
|
||||
check_uop(double, log2, i7);
|
||||
check_uop(double, log2, i8);
|
||||
check_uop(double, log2, oi1);
|
||||
check_uop(double, log2, oi2);
|
||||
check_uop(double, log2, oi5);
|
||||
check_uop(double, log2, oi6);
|
||||
check_uop(double, log2, oi7);
|
||||
check_uop(double, log2, oi8);
|
||||
check_uop(double, log2, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log10" << "(" << i1 << ") = " << log10(i1) << endl;
|
||||
cout << "log10" << "(" << i2 << ") = " << log10(i2) << endl;
|
||||
cout << "log10" << "(" << i5 << ") = " << log10(i5) << endl;
|
||||
cout << "log10" << "(" << oi1 << ") = " << log10(oi1) << endl;
|
||||
cout << "log10" << "(" << oi2 << ") = " << log10(oi2) << endl;
|
||||
cout << "log10" << "(" << oi5 << ") = " << log10(oi5) << endl;
|
||||
cout << "log10" << "(" << ozero_pinf << ") = " << log10(ozero_pinf) << endl;
|
||||
check_uop(double, log10, i1);
|
||||
check_uop(double, log10, i2);
|
||||
check_uop(double, log10, i5);
|
||||
check_uop(double, log10, i6);
|
||||
check_uop(double, log10, i7);
|
||||
check_uop(double, log10, i8);
|
||||
check_uop(double, log10, oi1);
|
||||
check_uop(double, log10, oi2);
|
||||
check_uop(double, log10, oi5);
|
||||
check_uop(double, log10, oi6);
|
||||
check_uop(double, log10, oi7);
|
||||
check_uop(double, log10, oi8);
|
||||
check_uop(double, log10, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "sin" << "(" << i1 << ") = " << sin(i1) << endl;
|
||||
cout << "sin" << "(" << i2 << ") = " << sin(i2) << endl;
|
||||
cout << "sin" << "(" << i3 << ") = " << sin(i3) << endl;
|
||||
cout << "sin" << "(" << i4 << ") = " << sin(i4) << endl;
|
||||
cout << "sin" << "(" << i5 << ") = " << sin(i5) << endl;
|
||||
cout << "sin" << "(" << oi1 << ") = " << sin(oi1) << endl;
|
||||
cout << "sin" << "(" << oi2 << ") = " << sin(oi2) << endl;
|
||||
cout << "sin" << "(" << oi3 << ") = " << sin(oi3) << endl;
|
||||
cout << "sin" << "(" << oi4 << ") = " << sin(oi4) << endl;
|
||||
cout << "sin" << "(" << oi5 << ") = " << sin(oi5) << endl;
|
||||
cout << "sin" << "(" << ozero_pinf << ") = " << sin(ozero_pinf) << endl;
|
||||
cout << "sin" << "(" << ozero_ninf << ") = " << sin(ozero_ninf) << endl;
|
||||
cout << "sin" << "(" << czero_pinf << ") = " << sin(czero_pinf) << endl;
|
||||
cout << "sin" << "(" << czero_ninf << ") = " << sin(czero_ninf) << endl;
|
||||
cout << "sin" << "(" << inf << ") = " << sin(inf) << endl;
|
||||
check_uop(double, sin, i1);
|
||||
check_uop(double, sin, i2);
|
||||
check_uop(double, sin, i3);
|
||||
check_uop(double, sin, i4);
|
||||
check_uop(double, sin, i5);
|
||||
check_uop(double, sin, i6);
|
||||
check_uop(double, sin, i7);
|
||||
check_uop(double, sin, i8);
|
||||
check_uop(double, sin, i9);
|
||||
check_uop(double, sin, i10);
|
||||
check_uop(double, sin, i11);
|
||||
check_uop(double, sin, i12);
|
||||
check_uop(double, sin, i13);
|
||||
check_uop(double, sin, i14);
|
||||
check_uop(double, sin, i15);
|
||||
check_uop(double, sin, oi1);
|
||||
check_uop(double, sin, oi2);
|
||||
check_uop(double, sin, oi3);
|
||||
check_uop(double, sin, oi4);
|
||||
check_uop(double, sin, oi5);
|
||||
check_uop(double, sin, oi6);
|
||||
check_uop(double, sin, oi7);
|
||||
check_uop(double, sin, oi8);
|
||||
check_uop(double, sin, oi9);
|
||||
check_uop(double, sin, oi10);
|
||||
check_uop(double, sin, oi11);
|
||||
check_uop(double, sin, oi12);
|
||||
check_uop(double, sin, oi13);
|
||||
check_uop(double, sin, oi14);
|
||||
check_uop(double, sin, oi15);
|
||||
check_uop(double, sin, inf);
|
||||
check_uop(double, sin, ozero_pinf);
|
||||
check_uop(double, sin, ozero_ninf);
|
||||
check_uop(double, sin, czero_pinf);
|
||||
check_uop(double, sin, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "cos" << "(" << i1 << ") = " << cos(i1) << endl;
|
||||
cout << "cos" << "(" << i2 << ") = " << cos(i2) << endl;
|
||||
cout << "cos" << "(" << i3 << ") = " << cos(i3) << endl;
|
||||
cout << "cos" << "(" << i4 << ") = " << cos(i4) << endl;
|
||||
cout << "cos" << "(" << i5 << ") = " << cos(i5) << endl;
|
||||
cout << "cos" << "(" << oi1 << ") = " << cos(oi1) << endl;
|
||||
cout << "cos" << "(" << oi2 << ") = " << cos(oi2) << endl;
|
||||
cout << "cos" << "(" << oi3 << ") = " << cos(oi3) << endl;
|
||||
cout << "cos" << "(" << oi4 << ") = " << cos(oi4) << endl;
|
||||
cout << "cos" << "(" << oi5 << ") = " << cos(oi5) << endl;
|
||||
cout << "cos" << "(" << ozero_pinf << ") = " << cos(ozero_pinf) << endl;
|
||||
cout << "cos" << "(" << ozero_ninf << ") = " << cos(ozero_ninf) << endl;
|
||||
cout << "cos" << "(" << czero_pinf << ") = " << cos(czero_pinf) << endl;
|
||||
cout << "cos" << "(" << czero_ninf << ") = " << cos(czero_ninf) << endl;
|
||||
cout << "cos" << "(" << inf << ") = " << cos(inf) << endl;
|
||||
check_uop(double, cos, i1);
|
||||
check_uop(double, cos, i2);
|
||||
check_uop(double, cos, i3);
|
||||
check_uop(double, cos, i4);
|
||||
check_uop(double, cos, i5);
|
||||
check_uop(double, cos, i6);
|
||||
check_uop(double, cos, i7);
|
||||
check_uop(double, cos, i8);
|
||||
check_uop(double, cos, i9);
|
||||
check_uop(double, cos, i10);
|
||||
check_uop(double, cos, i11);
|
||||
check_uop(double, cos, i12);
|
||||
check_uop(double, cos, i13);
|
||||
check_uop(double, cos, i14);
|
||||
check_uop(double, cos, i15);
|
||||
check_uop(double, cos, oi1);
|
||||
check_uop(double, cos, oi2);
|
||||
check_uop(double, cos, oi3);
|
||||
check_uop(double, cos, oi4);
|
||||
check_uop(double, cos, oi5);
|
||||
check_uop(double, cos, oi6);
|
||||
check_uop(double, cos, oi7);
|
||||
check_uop(double, cos, oi8);
|
||||
check_uop(double, cos, oi9);
|
||||
check_uop(double, cos, oi10);
|
||||
check_uop(double, cos, oi11);
|
||||
check_uop(double, cos, oi12);
|
||||
check_uop(double, cos, oi13);
|
||||
check_uop(double, cos, oi14);
|
||||
check_uop(double, cos, oi15);
|
||||
check_uop(double, cos, inf);
|
||||
check_uop(double, cos, ozero_pinf);
|
||||
check_uop(double, cos, ozero_ninf);
|
||||
check_uop(double, cos, czero_pinf);
|
||||
check_uop(double, cos, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "tan" << "(" << i1 << ") = " << tan(i1) << endl;
|
||||
cout << "tan" << "(" << i2 << ") = " << tan(i2) << endl;
|
||||
cout << "tan" << "(" << i3 << ") = " << tan(i3) << endl;
|
||||
cout << "tan" << "(" << i4 << ") = " << tan(i4) << endl;
|
||||
cout << "tan" << "(" << i5 << ") = " << tan(i5) << endl;
|
||||
cout << "tan" << "(" << oi1 << ") = " << tan(oi1) << endl;
|
||||
cout << "tan" << "(" << oi2 << ") = " << tan(oi2) << endl;
|
||||
cout << "tan" << "(" << oi3 << ") = " << tan(oi3) << endl;
|
||||
cout << "tan" << "(" << oi4 << ") = " << tan(oi4) << endl;
|
||||
cout << "tan" << "(" << oi5 << ") = " << tan(oi5) << endl;
|
||||
cout << "tan" << "(" << ozero_pinf << ") = " << tan(ozero_pinf) << endl;
|
||||
cout << "tan" << "(" << ozero_ninf << ") = " << tan(ozero_ninf) << endl;
|
||||
cout << "tan" << "(" << czero_pinf << ") = " << tan(czero_pinf) << endl;
|
||||
cout << "tan" << "(" << czero_ninf << ") = " << tan(czero_ninf) << endl;
|
||||
cout << "tan" << "(" << inf << ") = " << tan(inf) << endl;
|
||||
check_uop(double, tan, i1);
|
||||
check_uop(double, tan, i2);
|
||||
check_uop(double, tan, i3);
|
||||
check_uop(double, tan, i4);
|
||||
check_uop(double, tan, i5);
|
||||
check_uop(double, tan, i6);
|
||||
check_uop(double, tan, i7);
|
||||
check_uop(double, tan, i8);
|
||||
check_uop(double, tan, i9);
|
||||
check_uop(double, tan, i10);
|
||||
check_uop(double, tan, i11);
|
||||
check_uop(double, tan, i12);
|
||||
check_uop(double, tan, i13);
|
||||
check_uop(double, tan, i14);
|
||||
check_uop(double, tan, i15);
|
||||
check_uop(double, tan, oi1);
|
||||
check_uop(double, tan, oi2);
|
||||
check_uop(double, tan, oi3);
|
||||
check_uop(double, tan, oi4);
|
||||
check_uop(double, tan, oi5);
|
||||
check_uop(double, tan, oi6);
|
||||
check_uop(double, tan, oi7);
|
||||
check_uop(double, tan, oi8);
|
||||
check_uop(double, tan, oi9);
|
||||
check_uop(double, tan, oi10);
|
||||
check_uop(double, tan, oi11);
|
||||
check_uop(double, tan, oi12);
|
||||
check_uop(double, tan, oi13);
|
||||
check_uop(double, tan, oi14);
|
||||
check_uop(double, tan, oi15);
|
||||
check_uop(double, tan, inf);
|
||||
check_uop(double, tan, ozero_pinf);
|
||||
check_uop(double, tan, ozero_ninf);
|
||||
check_uop(double, tan, czero_pinf);
|
||||
check_uop(double, tan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, asin, i11);
|
||||
check_uop(double, asin, i12);
|
||||
check_uop(double, asin, i13);
|
||||
check_uop(double, asin, i14);
|
||||
check_uop(double, asin, i15);
|
||||
check_uop(double, asin, oi11);
|
||||
check_uop(double, asin, oi12);
|
||||
check_uop(double, asin, oi13);
|
||||
check_uop(double, asin, oi14);
|
||||
check_uop(double, asin, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, acos, i11);
|
||||
check_uop(double, acos, i12);
|
||||
check_uop(double, acos, i13);
|
||||
check_uop(double, acos, i14);
|
||||
check_uop(double, acos, i15);
|
||||
check_uop(double, acos, oi11);
|
||||
check_uop(double, acos, oi12);
|
||||
check_uop(double, acos, oi13);
|
||||
check_uop(double, acos, oi14);
|
||||
check_uop(double, acos, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, atan, i1);
|
||||
check_uop(double, atan, i2);
|
||||
check_uop(double, atan, i3);
|
||||
check_uop(double, atan, i4);
|
||||
check_uop(double, atan, i5);
|
||||
check_uop(double, atan, i6);
|
||||
check_uop(double, atan, i7);
|
||||
check_uop(double, atan, i8);
|
||||
check_uop(double, atan, i9);
|
||||
check_uop(double, atan, i10);
|
||||
check_uop(double, atan, i11);
|
||||
check_uop(double, atan, i12);
|
||||
check_uop(double, atan, i13);
|
||||
check_uop(double, atan, i14);
|
||||
check_uop(double, atan, i15);
|
||||
check_uop(double, atan, oi1);
|
||||
check_uop(double, atan, oi2);
|
||||
check_uop(double, atan, oi3);
|
||||
check_uop(double, atan, oi4);
|
||||
check_uop(double, atan, oi5);
|
||||
check_uop(double, atan, oi6);
|
||||
check_uop(double, atan, oi7);
|
||||
check_uop(double, atan, oi8);
|
||||
check_uop(double, atan, oi9);
|
||||
check_uop(double, atan, oi10);
|
||||
check_uop(double, atan, oi11);
|
||||
check_uop(double, atan, oi12);
|
||||
check_uop(double, atan, oi13);
|
||||
check_uop(double, atan, oi14);
|
||||
check_uop(double, atan, oi15);
|
||||
check_uop(double, atan, inf);
|
||||
check_uop(double, atan, ozero_pinf);
|
||||
check_uop(double, atan, ozero_ninf);
|
||||
check_uop(double, atan, czero_pinf);
|
||||
check_uop(double, atan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, sinh, i1);
|
||||
check_uop(double, sinh, i2);
|
||||
check_uop(double, sinh, i3);
|
||||
check_uop(double, sinh, i4);
|
||||
check_uop(double, sinh, i5);
|
||||
check_uop(double, sinh, i6);
|
||||
check_uop(double, sinh, i7);
|
||||
check_uop(double, sinh, i8);
|
||||
check_uop(double, sinh, i9);
|
||||
check_uop(double, sinh, i10);
|
||||
check_uop(double, sinh, i11);
|
||||
check_uop(double, sinh, i12);
|
||||
check_uop(double, sinh, i13);
|
||||
check_uop(double, sinh, i14);
|
||||
check_uop(double, sinh, i15);
|
||||
check_uop(double, sinh, oi1);
|
||||
check_uop(double, sinh, oi2);
|
||||
check_uop(double, sinh, oi3);
|
||||
check_uop(double, sinh, oi4);
|
||||
check_uop(double, sinh, oi5);
|
||||
check_uop(double, sinh, oi6);
|
||||
check_uop(double, sinh, oi7);
|
||||
check_uop(double, sinh, oi8);
|
||||
check_uop(double, sinh, oi9);
|
||||
check_uop(double, sinh, oi10);
|
||||
check_uop(double, sinh, oi11);
|
||||
check_uop(double, sinh, oi12);
|
||||
check_uop(double, sinh, oi13);
|
||||
check_uop(double, sinh, oi14);
|
||||
check_uop(double, sinh, oi15);
|
||||
check_uop(double, sinh, inf);
|
||||
check_uop(double, sinh, ozero_pinf);
|
||||
check_uop(double, sinh, ozero_ninf);
|
||||
check_uop(double, sinh, czero_pinf);
|
||||
check_uop(double, sinh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, cosh, i1);
|
||||
check_uop(double, cosh, i2);
|
||||
check_uop(double, cosh, i3);
|
||||
check_uop(double, cosh, i4);
|
||||
check_uop(double, cosh, i5);
|
||||
check_uop(double, cosh, i6);
|
||||
check_uop(double, cosh, i7);
|
||||
check_uop(double, cosh, i8);
|
||||
check_uop(double, cosh, i9);
|
||||
check_uop(double, cosh, i10);
|
||||
check_uop(double, cosh, i11);
|
||||
check_uop(double, cosh, i12);
|
||||
check_uop(double, cosh, i13);
|
||||
check_uop(double, cosh, i14);
|
||||
check_uop(double, cosh, i15);
|
||||
check_uop(double, cosh, oi1);
|
||||
check_uop(double, cosh, oi2);
|
||||
check_uop(double, cosh, oi3);
|
||||
check_uop(double, cosh, oi4);
|
||||
check_uop(double, cosh, oi5);
|
||||
check_uop(double, cosh, oi6);
|
||||
check_uop(double, cosh, oi7);
|
||||
check_uop(double, cosh, oi8);
|
||||
check_uop(double, cosh, oi9);
|
||||
check_uop(double, cosh, oi10);
|
||||
check_uop(double, cosh, oi11);
|
||||
check_uop(double, cosh, oi12);
|
||||
check_uop(double, cosh, oi13);
|
||||
check_uop(double, cosh, oi14);
|
||||
check_uop(double, cosh, oi15);
|
||||
check_uop(double, cosh, inf);
|
||||
check_uop(double, cosh, ozero_pinf);
|
||||
check_uop(double, cosh, ozero_ninf);
|
||||
check_uop(double, cosh, czero_pinf);
|
||||
check_uop(double, cosh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(double, tanh, i1);
|
||||
check_uop(double, tanh, i2);
|
||||
check_uop(double, tanh, i3);
|
||||
check_uop(double, tanh, i4);
|
||||
check_uop(double, tanh, i5);
|
||||
check_uop(double, tanh, i6);
|
||||
check_uop(double, tanh, i7);
|
||||
check_uop(double, tanh, i8);
|
||||
check_uop(double, tanh, i9);
|
||||
check_uop(double, tanh, i10);
|
||||
check_uop(double, tanh, i11);
|
||||
check_uop(double, tanh, i12);
|
||||
check_uop(double, tanh, i13);
|
||||
check_uop(double, tanh, i14);
|
||||
check_uop(double, tanh, i15);
|
||||
check_uop(double, tanh, oi1);
|
||||
check_uop(double, tanh, oi2);
|
||||
check_uop(double, tanh, oi3);
|
||||
check_uop(double, tanh, oi4);
|
||||
check_uop(double, tanh, oi5);
|
||||
check_uop(double, tanh, oi6);
|
||||
check_uop(double, tanh, oi7);
|
||||
check_uop(double, tanh, oi8);
|
||||
check_uop(double, tanh, oi9);
|
||||
check_uop(double, tanh, oi10);
|
||||
check_uop(double, tanh, oi11);
|
||||
check_uop(double, tanh, oi12);
|
||||
check_uop(double, tanh, oi13);
|
||||
check_uop(double, tanh, oi14);
|
||||
check_uop(double, tanh, oi15);
|
||||
check_uop(double, tanh, inf);
|
||||
check_uop(double, tanh, ozero_pinf);
|
||||
check_uop(double, tanh, ozero_ninf);
|
||||
check_uop(double, tanh, czero_pinf);
|
||||
check_uop(double, tanh, czero_ninf);
|
||||
}
|
||||
|
||||
int main() {
|
||||
enable_trace("numerics");
|
||||
mpfp_interval_arith();
|
||||
mpfp_interval_inf1();
|
||||
mpfp_interval_inf2();
|
||||
mpfp_interval_trans();
|
||||
double_interval_arith();
|
||||
double_interval_inf1();
|
||||
double_interval_inf2();
|
||||
double_interval_trans();
|
||||
return has_violations() ? 1 : 0;
|
||||
}
|
||||
|
|
|
@ -8,8 +8,9 @@ Author: Soonho Kong
|
|||
#include "test.h"
|
||||
#include "trace.h"
|
||||
#include "float.h"
|
||||
#include "mpfp.h"
|
||||
#include "interval_def.h"
|
||||
#include "check.h"
|
||||
#include <cmath>
|
||||
|
||||
using namespace lean;
|
||||
|
||||
|
@ -17,15 +18,13 @@ using std::cout;
|
|||
using std::endl;
|
||||
|
||||
typedef interval<float> flti;
|
||||
typedef interval<double> di;
|
||||
typedef interval<mpfp> fi;
|
||||
|
||||
template<typename T1, typename T2, typename T3>
|
||||
void print_result(T1 a, std::string const & op, T2 b, T3 r) {
|
||||
cout << a << " " << op << " " << b << " = " << r << endl;
|
||||
}
|
||||
|
||||
static void mpfp_interval_arith() {
|
||||
static void float_interval_arith() {
|
||||
flti i1(1.0, 2.0);
|
||||
flti i2(3.0, 4.0);
|
||||
flti i3(-10.0, -5.0);
|
||||
|
@ -125,7 +124,7 @@ static void mpfp_interval_arith() {
|
|||
print_result(c1, "/", i5, c1 / i5);
|
||||
}
|
||||
|
||||
static void mpfp_interval_inf1() {
|
||||
static void float_interval_inf1() {
|
||||
flti i1(1.0, 2.0);
|
||||
flti inf;
|
||||
flti ozero_pinf;
|
||||
|
@ -148,7 +147,7 @@ static void mpfp_interval_inf1() {
|
|||
lean_assert(i1 * czero_ninf == czero_ninf); lean_assert(czero_ninf * i1 == czero_ninf);
|
||||
lean_assert(i1 * czero_pinf == czero_pinf); lean_assert(czero_pinf * i1 == czero_pinf);
|
||||
|
||||
cout << "=== Adfltition between [0, +oo), (-oo, 0], (0, +oo), (-oo, 0) ===" << endl;
|
||||
cout << "=== Addition between [0, +oo), (-oo, 0], (0, +oo), (-oo, 0) ===" << endl;
|
||||
cout << ozero_ninf << " + " << ozero_ninf << " = " << ozero_ninf + ozero_ninf << endl;
|
||||
cout << ozero_ninf << " + " << ozero_pinf << " = " << ozero_ninf + ozero_pinf << endl;
|
||||
cout << ozero_ninf << " + " << czero_ninf << " = " << ozero_ninf + czero_ninf << endl;
|
||||
|
@ -253,7 +252,7 @@ static void mpfp_interval_inf1() {
|
|||
lean_assert(czero_pinf * czero_ninf == czero_ninf);
|
||||
lean_assert(czero_pinf * czero_pinf == czero_pinf);
|
||||
|
||||
cout << "=== Fltivision between [0, +oo), (-oo, 0], (0, +oo), (-oo, 0) ===" << endl;
|
||||
cout << "=== Division between [0, +oo), (-oo, 0], (0, +oo), (-oo, 0) ===" << endl;
|
||||
cout << ozero_ninf << " / " << ozero_ninf << " = " << ozero_ninf / ozero_ninf << endl;
|
||||
cout << ozero_ninf << " / " << ozero_pinf << " = " << ozero_ninf / ozero_pinf << endl;
|
||||
cout << ozero_pinf << " / " << ozero_ninf << " = " << ozero_pinf / ozero_ninf << endl;
|
||||
|
@ -273,7 +272,7 @@ static void mpfp_interval_inf1() {
|
|||
lean_assert(czero_pinf / ozero_pinf == czero_pinf);
|
||||
}
|
||||
|
||||
static void mpfp_interval_inf2() {
|
||||
static void float_interval_inf2() {
|
||||
flti i1(1.0, 2.0);
|
||||
flti i2(3.0, 4.0);
|
||||
flti i3(-10.0, -5.0);
|
||||
|
@ -321,22 +320,54 @@ static void mpfp_interval_inf2() {
|
|||
lean_assert(zero * inf == zero);lean_assert(inf * zero == zero);
|
||||
}
|
||||
|
||||
static void mpfp_interval_trans() {
|
||||
static void float_interval_trans() {
|
||||
flti i1(1.0, 2.0);
|
||||
flti i2(3.0, 4.0);
|
||||
flti i3(-10.0, -5.0);
|
||||
flti i4(-3.0, +4.0);
|
||||
flti i5(5.0, 8.0);
|
||||
flti i6(0.3, 1.67);
|
||||
flti i7(1.8, 3.5);
|
||||
flti i8(3.5, 4.9);
|
||||
flti i9(-3.15, -2.0);
|
||||
flti i10(-0.99, 0.5);
|
||||
flti i11(-0.8, -0.5);
|
||||
flti i12(-0.3, 0.2);
|
||||
flti i13(0.5, 0.9);
|
||||
flti i14(-0.1, 0.8);
|
||||
flti i15(-0.4, -0.3);
|
||||
|
||||
flti oi1(1.0, 2.0);
|
||||
flti oi2(3.0, 4.0);
|
||||
flti oi3(-10.0, -5.0);
|
||||
flti oi4(-3.0, +4.0);
|
||||
flti oi5(5.0, 8.0);
|
||||
oi1.set_is_lower_open(true); oi1.set_is_upper_open(true);
|
||||
oi2.set_is_lower_open(true); oi2.set_is_upper_open(true);
|
||||
oi3.set_is_lower_open(true); oi3.set_is_upper_open(true);
|
||||
oi4.set_is_lower_open(true); oi4.set_is_upper_open(true);
|
||||
oi5.set_is_lower_open(true); oi5.set_is_upper_open(true);
|
||||
flti oi6(0.3, 1.67);
|
||||
flti oi7(1.8, 3.5);
|
||||
flti oi8(3.5, 4.9);
|
||||
flti oi9(-3.15, -2.0);
|
||||
flti oi10(-3.19, -1.0);
|
||||
flti oi11(-0.8, -0.5);
|
||||
flti oi12(-0.3, 0.2);
|
||||
flti oi13(0.5, 0.9);
|
||||
flti oi14(-0.1, 0.8);
|
||||
flti oi15(-0.4, -0.3);
|
||||
|
||||
oi1.set_is_lower_open(true); oi1.set_is_upper_open(true);
|
||||
oi2.set_is_lower_open(true); oi2.set_is_upper_open(true);
|
||||
oi3.set_is_lower_open(true); oi3.set_is_upper_open(true);
|
||||
oi4.set_is_lower_open(true); oi4.set_is_upper_open(true);
|
||||
oi5.set_is_lower_open(true); oi5.set_is_upper_open(true);
|
||||
oi6.set_is_lower_open(true); oi6.set_is_upper_open(true);
|
||||
oi7.set_is_lower_open(true); oi7.set_is_upper_open(true);
|
||||
oi8.set_is_lower_open(true); oi8.set_is_upper_open(true);
|
||||
oi9.set_is_lower_open(true); oi9.set_is_upper_open(true);
|
||||
oi10.set_is_lower_open(true); oi10.set_is_upper_open(true);
|
||||
oi11.set_is_lower_open(true); oi11.set_is_upper_open(true);
|
||||
oi12.set_is_lower_open(true); oi12.set_is_upper_open(true);
|
||||
oi13.set_is_lower_open(true); oi13.set_is_upper_open(true);
|
||||
oi14.set_is_lower_open(true); oi14.set_is_upper_open(true);
|
||||
oi15.set_is_lower_open(true); oi15.set_is_upper_open(true);
|
||||
|
||||
flti inf;
|
||||
flti ozero_pinf;
|
||||
|
@ -357,157 +388,487 @@ static void mpfp_interval_trans() {
|
|||
// float c5 = -0.3;
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "power" << "(" << i1 << ", " << 3 << ") = " << power(i1, 3) << endl;
|
||||
cout << "power" << "(" << i2 << ", " << 3 << ") = " << power(i2, 3) << endl;
|
||||
cout << "power" << "(" << i3 << ", " << 3 << ") = " << power(i3, 3) << endl;
|
||||
cout << "power" << "(" << i4 << ", " << 3 << ") = " << power(i4, 3) << endl;
|
||||
cout << "power" << "(" << i5 << ", " << 3 << ") = " << power(i5, 3) << endl;
|
||||
cout << "power" << "(" << oi1 << ", " << 3 << ") = " << power(oi1, 3) << endl;
|
||||
cout << "power" << "(" << oi2 << ", " << 3 << ") = " << power(oi2, 3) << endl;
|
||||
cout << "power" << "(" << oi3 << ", " << 3 << ") = " << power(oi3, 3) << endl;
|
||||
cout << "power" << "(" << oi4 << ", " << 3 << ") = " << power(oi4, 3) << endl;
|
||||
cout << "power" << "(" << oi5 << ", " << 3 << ") = " << power(oi5, 3) << endl;
|
||||
cout << "power" << "(" << inf << ", " << 3 << ") = " << power(inf, 3) << endl;
|
||||
cout << "power" << "(" << ozero_ninf << ", " << 3 << ") = " << power(ozero_ninf, 3) << endl;
|
||||
cout << "power" << "(" << ozero_pinf << ", " << 3 << ") = " << power(ozero_pinf, 3) << endl;
|
||||
cout << "power" << "(" << czero_ninf << ", " << 3 << ") = " << power(czero_ninf, 3) << endl;
|
||||
cout << "power" << "(" << czero_pinf << ", " << 3 << ") = " << power(czero_pinf, 3) << endl;
|
||||
check_bop(float, power, i1, 3u);
|
||||
check_bop(float, power, i2, 3u);
|
||||
check_bop(float, power, i3, 3u);
|
||||
check_bop(float, power, i4, 3u);
|
||||
check_bop(float, power, i5, 3u);
|
||||
check_bop(float, power, i6, 3u);
|
||||
check_bop(float, power, i7, 3u);
|
||||
check_bop(float, power, i8, 3u);
|
||||
check_bop(float, power, i9, 3u);
|
||||
check_bop(float, power, i10, 3u);
|
||||
check_bop(float, power, i11, 3u);
|
||||
check_bop(float, power, i12, 3u);
|
||||
check_bop(float, power, i13, 3u);
|
||||
check_bop(float, power, i14, 3u);
|
||||
check_bop(float, power, i15, 3u);
|
||||
check_bop(float, power, oi1, 3u);
|
||||
check_bop(float, power, oi2, 3u);
|
||||
check_bop(float, power, oi3, 3u);
|
||||
check_bop(float, power, oi4, 3u);
|
||||
check_bop(float, power, oi5, 3u);
|
||||
check_bop(float, power, oi6, 3u);
|
||||
check_bop(float, power, oi7, 3u);
|
||||
check_bop(float, power, oi8, 3u);
|
||||
check_bop(float, power, oi9, 3u);
|
||||
check_bop(float, power, oi10, 3u);
|
||||
check_bop(float, power, oi11, 3u);
|
||||
check_bop(float, power, oi12, 3u);
|
||||
check_bop(float, power, oi13, 3u);
|
||||
check_bop(float, power, oi14, 3u);
|
||||
check_bop(float, power, oi15, 3u);
|
||||
check_bop(float, power, inf, 3u);
|
||||
check_bop(float, power, ozero_ninf, 3u);
|
||||
check_bop(float, power, ozero_pinf, 3u);
|
||||
check_bop(float, power, czero_ninf, 3u);
|
||||
check_bop(float, power, czero_pinf, 3u);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp" << "(" << i1 << ") = " << exp(i1) << endl;
|
||||
cout << "exp" << "(" << i2 << ") = " << exp(i2) << endl;
|
||||
cout << "exp" << "(" << i3 << ") = " << exp(i3) << endl;
|
||||
cout << "exp" << "(" << i4 << ") = " << exp(i4) << endl;
|
||||
cout << "exp" << "(" << i5 << ") = " << exp(i5) << endl;
|
||||
cout << "exp" << "(" << oi1 << ") = " << exp(oi1) << endl;
|
||||
cout << "exp" << "(" << oi2 << ") = " << exp(oi2) << endl;
|
||||
cout << "exp" << "(" << oi3 << ") = " << exp(oi3) << endl;
|
||||
cout << "exp" << "(" << oi4 << ") = " << exp(oi4) << endl;
|
||||
cout << "exp" << "(" << oi5 << ") = " << exp(oi5) << endl;
|
||||
cout << "exp" << "(" << ozero_pinf << ") = " << exp(ozero_pinf) << endl;
|
||||
cout << "exp" << "(" << ozero_ninf << ") = " << exp(ozero_ninf) << endl;
|
||||
cout << "exp" << "(" << czero_pinf << ") = " << exp(czero_pinf) << endl;
|
||||
cout << "exp" << "(" << czero_ninf << ") = " << exp(czero_ninf) << endl;
|
||||
cout << "exp" << "(" << inf << ") = " << exp(inf) << endl;
|
||||
check_uop(float, exp, i1);
|
||||
check_uop(float, exp, i2);
|
||||
check_uop(float, exp, i3);
|
||||
check_uop(float, exp, i4);
|
||||
check_uop(float, exp, i5);
|
||||
check_uop(float, exp, i6);
|
||||
check_uop(float, exp, i7);
|
||||
check_uop(float, exp, i8);
|
||||
check_uop(float, exp, i9);
|
||||
check_uop(float, exp, i10);
|
||||
check_uop(float, exp, i11);
|
||||
check_uop(float, exp, i12);
|
||||
check_uop(float, exp, i13);
|
||||
check_uop(float, exp, i14);
|
||||
check_uop(float, exp, i15);
|
||||
check_uop(float, exp, oi1);
|
||||
check_uop(float, exp, oi2);
|
||||
check_uop(float, exp, oi3);
|
||||
check_uop(float, exp, oi4);
|
||||
check_uop(float, exp, oi5);
|
||||
check_uop(float, exp, oi6);
|
||||
check_uop(float, exp, oi7);
|
||||
check_uop(float, exp, oi8);
|
||||
check_uop(float, exp, oi9);
|
||||
check_uop(float, exp, oi10);
|
||||
check_uop(float, exp, oi11);
|
||||
check_uop(float, exp, oi12);
|
||||
check_uop(float, exp, oi13);
|
||||
check_uop(float, exp, oi14);
|
||||
check_uop(float, exp, oi15);
|
||||
check_uop(float, exp, inf);
|
||||
check_uop(float, exp, ozero_pinf);
|
||||
check_uop(float, exp, ozero_ninf);
|
||||
check_uop(float, exp, czero_pinf);
|
||||
check_uop(float, exp, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp2" << "(" << i1 << ") = " << exp2(i1) << endl;
|
||||
cout << "exp2" << "(" << i2 << ") = " << exp2(i2) << endl;
|
||||
cout << "exp2" << "(" << i3 << ") = " << exp2(i3) << endl;
|
||||
cout << "exp2" << "(" << i4 << ") = " << exp2(i4) << endl;
|
||||
cout << "exp2" << "(" << i5 << ") = " << exp2(i5) << endl;
|
||||
cout << "exp2" << "(" << oi1 << ") = " << exp2(oi1) << endl;
|
||||
cout << "exp2" << "(" << oi2 << ") = " << exp2(oi2) << endl;
|
||||
cout << "exp2" << "(" << oi3 << ") = " << exp2(oi3) << endl;
|
||||
cout << "exp2" << "(" << oi4 << ") = " << exp2(oi4) << endl;
|
||||
cout << "exp2" << "(" << oi5 << ") = " << exp2(oi5) << endl;
|
||||
cout << "exp2" << "(" << ozero_pinf << ") = " << exp2(ozero_pinf) << endl;
|
||||
cout << "exp2" << "(" << ozero_ninf << ") = " << exp2(ozero_ninf) << endl;
|
||||
cout << "exp2" << "(" << czero_pinf << ") = " << exp2(czero_pinf) << endl;
|
||||
cout << "exp2" << "(" << czero_ninf << ") = " << exp2(czero_ninf) << endl;
|
||||
cout << "exp2" << "(" << inf << ") = " << exp2(inf) << endl;
|
||||
check_uop(float, exp2, i1);
|
||||
check_uop(float, exp2, i2);
|
||||
check_uop(float, exp2, i3);
|
||||
check_uop(float, exp2, i4);
|
||||
check_uop(float, exp2, i5);
|
||||
check_uop(float, exp2, i6);
|
||||
check_uop(float, exp2, i7);
|
||||
check_uop(float, exp2, i8);
|
||||
check_uop(float, exp2, i9);
|
||||
check_uop(float, exp2, i10);
|
||||
check_uop(float, exp2, i11);
|
||||
check_uop(float, exp2, i12);
|
||||
check_uop(float, exp2, i13);
|
||||
check_uop(float, exp2, i14);
|
||||
check_uop(float, exp2, i15);
|
||||
check_uop(float, exp2, oi1);
|
||||
check_uop(float, exp2, oi2);
|
||||
check_uop(float, exp2, oi3);
|
||||
check_uop(float, exp2, oi4);
|
||||
check_uop(float, exp2, oi5);
|
||||
check_uop(float, exp2, oi6);
|
||||
check_uop(float, exp2, oi7);
|
||||
check_uop(float, exp2, oi8);
|
||||
check_uop(float, exp2, oi9);
|
||||
check_uop(float, exp2, oi10);
|
||||
check_uop(float, exp2, oi11);
|
||||
check_uop(float, exp2, oi12);
|
||||
check_uop(float, exp2, oi13);
|
||||
check_uop(float, exp2, oi14);
|
||||
check_uop(float, exp2, oi15);
|
||||
check_uop(float, exp2, inf);
|
||||
check_uop(float, exp2, ozero_pinf);
|
||||
check_uop(float, exp2, ozero_ninf);
|
||||
check_uop(float, exp2, czero_pinf);
|
||||
check_uop(float, exp2, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "exp10" << "(" << i1 << ") = " << exp10(i1) << endl;
|
||||
cout << "exp10" << "(" << i2 << ") = " << exp10(i2) << endl;
|
||||
cout << "exp10" << "(" << i3 << ") = " << exp10(i3) << endl;
|
||||
cout << "exp10" << "(" << i4 << ") = " << exp10(i4) << endl;
|
||||
cout << "exp10" << "(" << i5 << ") = " << exp10(i5) << endl;
|
||||
cout << "exp10" << "(" << oi1 << ") = " << exp10(oi1) << endl;
|
||||
cout << "exp10" << "(" << oi2 << ") = " << exp10(oi2) << endl;
|
||||
cout << "exp10" << "(" << oi3 << ") = " << exp10(oi3) << endl;
|
||||
cout << "exp10" << "(" << oi4 << ") = " << exp10(oi4) << endl;
|
||||
cout << "exp10" << "(" << oi5 << ") = " << exp10(oi5) << endl;
|
||||
cout << "exp10" << "(" << ozero_pinf << ") = " << exp10(ozero_pinf) << endl;
|
||||
cout << "exp10" << "(" << ozero_ninf << ") = " << exp10(ozero_ninf) << endl;
|
||||
cout << "exp10" << "(" << czero_pinf << ") = " << exp10(czero_pinf) << endl;
|
||||
cout << "exp10" << "(" << czero_ninf << ") = " << exp10(czero_ninf) << endl;
|
||||
cout << "exp10" << "(" << inf << ") = " << exp10(inf) << endl;
|
||||
check_uop(float, exp10, i1);
|
||||
check_uop(float, exp10, i2);
|
||||
check_uop(float, exp10, i3);
|
||||
check_uop(float, exp10, i4);
|
||||
check_uop(float, exp10, i5);
|
||||
check_uop(float, exp10, i6);
|
||||
check_uop(float, exp10, i7);
|
||||
check_uop(float, exp10, i8);
|
||||
check_uop(float, exp10, i9);
|
||||
check_uop(float, exp10, i10);
|
||||
check_uop(float, exp10, i11);
|
||||
check_uop(float, exp10, i12);
|
||||
check_uop(float, exp10, i13);
|
||||
check_uop(float, exp10, i14);
|
||||
check_uop(float, exp10, i15);
|
||||
check_uop(float, exp10, oi1);
|
||||
check_uop(float, exp10, oi2);
|
||||
check_uop(float, exp10, oi3);
|
||||
check_uop(float, exp10, oi4);
|
||||
check_uop(float, exp10, oi5);
|
||||
check_uop(float, exp10, oi6);
|
||||
check_uop(float, exp10, oi7);
|
||||
check_uop(float, exp10, oi8);
|
||||
check_uop(float, exp10, oi9);
|
||||
check_uop(float, exp10, oi10);
|
||||
check_uop(float, exp10, oi11);
|
||||
check_uop(float, exp10, oi12);
|
||||
check_uop(float, exp10, oi13);
|
||||
check_uop(float, exp10, oi14);
|
||||
check_uop(float, exp10, oi15);
|
||||
check_uop(float, exp10, inf);
|
||||
check_uop(float, exp10, ozero_pinf);
|
||||
check_uop(float, exp10, ozero_ninf);
|
||||
check_uop(float, exp10, czero_pinf);
|
||||
check_uop(float, exp10, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log" << "(" << i1 << ") = " << log(i1) << endl;
|
||||
cout << "log" << "(" << i2 << ") = " << log(i2) << endl;
|
||||
cout << "log" << "(" << i5 << ") = " << log(i5) << endl;
|
||||
cout << "log" << "(" << oi1 << ") = " << log(oi1) << endl;
|
||||
cout << "log" << "(" << oi2 << ") = " << log(oi2) << endl;
|
||||
cout << "log" << "(" << oi5 << ") = " << log(oi5) << endl;
|
||||
cout << "log" << "(" << ozero_pinf << ") = " << log(ozero_pinf) << endl;
|
||||
check_uop(float, log, i1);
|
||||
check_uop(float, log, i2);
|
||||
check_uop(float, log, i5);
|
||||
check_uop(float, log, i6);
|
||||
check_uop(float, log, i7);
|
||||
check_uop(float, log, i8);
|
||||
check_uop(float, log, oi1);
|
||||
check_uop(float, log, oi2);
|
||||
check_uop(float, log, oi5);
|
||||
check_uop(float, log, oi6);
|
||||
check_uop(float, log, oi7);
|
||||
check_uop(float, log, oi8);
|
||||
check_uop(float, log, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log2" << "(" << i1 << ") = " << log2(i1) << endl;
|
||||
cout << "log2" << "(" << i2 << ") = " << log2(i2) << endl;
|
||||
cout << "log2" << "(" << i5 << ") = " << log2(i5) << endl;
|
||||
cout << "log2" << "(" << oi1 << ") = " << log2(oi1) << endl;
|
||||
cout << "log2" << "(" << oi2 << ") = " << log2(oi2) << endl;
|
||||
cout << "log2" << "(" << oi5 << ") = " << log2(oi5) << endl;
|
||||
cout << "log2" << "(" << ozero_pinf << ") = " << log2(ozero_pinf) << endl;
|
||||
check_uop(float, log2, i1);
|
||||
check_uop(float, log2, i2);
|
||||
check_uop(float, log2, i5);
|
||||
check_uop(float, log2, i6);
|
||||
check_uop(float, log2, i7);
|
||||
check_uop(float, log2, i8);
|
||||
check_uop(float, log2, oi1);
|
||||
check_uop(float, log2, oi2);
|
||||
check_uop(float, log2, oi5);
|
||||
check_uop(float, log2, oi6);
|
||||
check_uop(float, log2, oi7);
|
||||
check_uop(float, log2, oi8);
|
||||
check_uop(float, log2, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "log10" << "(" << i1 << ") = " << log10(i1) << endl;
|
||||
cout << "log10" << "(" << i2 << ") = " << log10(i2) << endl;
|
||||
cout << "log10" << "(" << i5 << ") = " << log10(i5) << endl;
|
||||
cout << "log10" << "(" << oi1 << ") = " << log10(oi1) << endl;
|
||||
cout << "log10" << "(" << oi2 << ") = " << log10(oi2) << endl;
|
||||
cout << "log10" << "(" << oi5 << ") = " << log10(oi5) << endl;
|
||||
cout << "log10" << "(" << ozero_pinf << ") = " << log10(ozero_pinf) << endl;
|
||||
check_uop(float, log10, i1);
|
||||
check_uop(float, log10, i2);
|
||||
check_uop(float, log10, i5);
|
||||
check_uop(float, log10, i6);
|
||||
check_uop(float, log10, i7);
|
||||
check_uop(float, log10, i8);
|
||||
check_uop(float, log10, oi1);
|
||||
check_uop(float, log10, oi2);
|
||||
check_uop(float, log10, oi5);
|
||||
check_uop(float, log10, oi6);
|
||||
check_uop(float, log10, oi7);
|
||||
check_uop(float, log10, oi8);
|
||||
check_uop(float, log10, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "sin" << "(" << i1 << ") = " << sin(i1) << endl;
|
||||
cout << "sin" << "(" << i2 << ") = " << sin(i2) << endl;
|
||||
cout << "sin" << "(" << i3 << ") = " << sin(i3) << endl;
|
||||
cout << "sin" << "(" << i4 << ") = " << sin(i4) << endl;
|
||||
cout << "sin" << "(" << i5 << ") = " << sin(i5) << endl;
|
||||
cout << "sin" << "(" << oi1 << ") = " << sin(oi1) << endl;
|
||||
cout << "sin" << "(" << oi2 << ") = " << sin(oi2) << endl;
|
||||
cout << "sin" << "(" << oi3 << ") = " << sin(oi3) << endl;
|
||||
cout << "sin" << "(" << oi4 << ") = " << sin(oi4) << endl;
|
||||
cout << "sin" << "(" << oi5 << ") = " << sin(oi5) << endl;
|
||||
cout << "sin" << "(" << ozero_pinf << ") = " << sin(ozero_pinf) << endl;
|
||||
cout << "sin" << "(" << ozero_ninf << ") = " << sin(ozero_ninf) << endl;
|
||||
cout << "sin" << "(" << czero_pinf << ") = " << sin(czero_pinf) << endl;
|
||||
cout << "sin" << "(" << czero_ninf << ") = " << sin(czero_ninf) << endl;
|
||||
cout << "sin" << "(" << inf << ") = " << sin(inf) << endl;
|
||||
check_uop(float, sin, i1);
|
||||
check_uop(float, sin, i2);
|
||||
check_uop(float, sin, i3);
|
||||
check_uop(float, sin, i4);
|
||||
check_uop(float, sin, i5);
|
||||
check_uop(float, sin, i6);
|
||||
check_uop(float, sin, i7);
|
||||
check_uop(float, sin, i8);
|
||||
check_uop(float, sin, i9);
|
||||
check_uop(float, sin, i10);
|
||||
check_uop(float, sin, i11);
|
||||
check_uop(float, sin, i12);
|
||||
check_uop(float, sin, i13);
|
||||
check_uop(float, sin, i14);
|
||||
check_uop(float, sin, i15);
|
||||
check_uop(float, sin, oi1);
|
||||
check_uop(float, sin, oi2);
|
||||
check_uop(float, sin, oi3);
|
||||
check_uop(float, sin, oi4);
|
||||
check_uop(float, sin, oi5);
|
||||
check_uop(float, sin, oi6);
|
||||
check_uop(float, sin, oi7);
|
||||
check_uop(float, sin, oi8);
|
||||
check_uop(float, sin, oi9);
|
||||
check_uop(float, sin, oi10);
|
||||
check_uop(float, sin, oi11);
|
||||
check_uop(float, sin, oi12);
|
||||
check_uop(float, sin, oi13);
|
||||
check_uop(float, sin, oi14);
|
||||
check_uop(float, sin, oi15);
|
||||
check_uop(float, sin, inf);
|
||||
check_uop(float, sin, ozero_pinf);
|
||||
check_uop(float, sin, ozero_ninf);
|
||||
check_uop(float, sin, czero_pinf);
|
||||
check_uop(float, sin, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "cos" << "(" << i1 << ") = " << cos(i1) << endl;
|
||||
cout << "cos" << "(" << i2 << ") = " << cos(i2) << endl;
|
||||
cout << "cos" << "(" << i3 << ") = " << cos(i3) << endl;
|
||||
cout << "cos" << "(" << i4 << ") = " << cos(i4) << endl;
|
||||
cout << "cos" << "(" << i5 << ") = " << cos(i5) << endl;
|
||||
cout << "cos" << "(" << oi1 << ") = " << cos(oi1) << endl;
|
||||
cout << "cos" << "(" << oi2 << ") = " << cos(oi2) << endl;
|
||||
cout << "cos" << "(" << oi3 << ") = " << cos(oi3) << endl;
|
||||
cout << "cos" << "(" << oi4 << ") = " << cos(oi4) << endl;
|
||||
cout << "cos" << "(" << oi5 << ") = " << cos(oi5) << endl;
|
||||
cout << "cos" << "(" << ozero_pinf << ") = " << cos(ozero_pinf) << endl;
|
||||
cout << "cos" << "(" << ozero_ninf << ") = " << cos(ozero_ninf) << endl;
|
||||
cout << "cos" << "(" << czero_pinf << ") = " << cos(czero_pinf) << endl;
|
||||
cout << "cos" << "(" << czero_ninf << ") = " << cos(czero_ninf) << endl;
|
||||
cout << "cos" << "(" << inf << ") = " << cos(inf) << endl;
|
||||
check_uop(float, cos, i1);
|
||||
check_uop(float, cos, i2);
|
||||
check_uop(float, cos, i3);
|
||||
check_uop(float, cos, i4);
|
||||
check_uop(float, cos, i5);
|
||||
check_uop(float, cos, i6);
|
||||
check_uop(float, cos, i7);
|
||||
check_uop(float, cos, i8);
|
||||
check_uop(float, cos, i9);
|
||||
check_uop(float, cos, i10);
|
||||
check_uop(float, cos, i11);
|
||||
check_uop(float, cos, i12);
|
||||
check_uop(float, cos, i13);
|
||||
check_uop(float, cos, i14);
|
||||
check_uop(float, cos, i15);
|
||||
check_uop(float, cos, oi1);
|
||||
check_uop(float, cos, oi2);
|
||||
check_uop(float, cos, oi3);
|
||||
check_uop(float, cos, oi4);
|
||||
check_uop(float, cos, oi5);
|
||||
check_uop(float, cos, oi6);
|
||||
check_uop(float, cos, oi7);
|
||||
check_uop(float, cos, oi8);
|
||||
check_uop(float, cos, oi9);
|
||||
check_uop(float, cos, oi10);
|
||||
check_uop(float, cos, oi11);
|
||||
check_uop(float, cos, oi12);
|
||||
check_uop(float, cos, oi13);
|
||||
check_uop(float, cos, oi14);
|
||||
check_uop(float, cos, oi15);
|
||||
check_uop(float, cos, inf);
|
||||
check_uop(float, cos, ozero_pinf);
|
||||
check_uop(float, cos, ozero_ninf);
|
||||
check_uop(float, cos, czero_pinf);
|
||||
check_uop(float, cos, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
cout << "tan" << "(" << i1 << ") = " << tan(i1) << endl;
|
||||
cout << "tan" << "(" << i2 << ") = " << tan(i2) << endl;
|
||||
cout << "tan" << "(" << i3 << ") = " << tan(i3) << endl;
|
||||
cout << "tan" << "(" << i4 << ") = " << tan(i4) << endl;
|
||||
cout << "tan" << "(" << i5 << ") = " << tan(i5) << endl;
|
||||
cout << "tan" << "(" << oi1 << ") = " << tan(oi1) << endl;
|
||||
cout << "tan" << "(" << oi2 << ") = " << tan(oi2) << endl;
|
||||
cout << "tan" << "(" << oi3 << ") = " << tan(oi3) << endl;
|
||||
cout << "tan" << "(" << oi4 << ") = " << tan(oi4) << endl;
|
||||
cout << "tan" << "(" << oi5 << ") = " << tan(oi5) << endl;
|
||||
cout << "tan" << "(" << ozero_pinf << ") = " << tan(ozero_pinf) << endl;
|
||||
cout << "tan" << "(" << ozero_ninf << ") = " << tan(ozero_ninf) << endl;
|
||||
cout << "tan" << "(" << czero_pinf << ") = " << tan(czero_pinf) << endl;
|
||||
cout << "tan" << "(" << czero_ninf << ") = " << tan(czero_ninf) << endl;
|
||||
cout << "tan" << "(" << inf << ") = " << tan(inf) << endl;
|
||||
check_uop(float, tan, i1);
|
||||
check_uop(float, tan, i2);
|
||||
check_uop(float, tan, i3);
|
||||
check_uop(float, tan, i4);
|
||||
check_uop(float, tan, i5);
|
||||
check_uop(float, tan, i6);
|
||||
check_uop(float, tan, i7);
|
||||
check_uop(float, tan, i8);
|
||||
check_uop(float, tan, i9);
|
||||
check_uop(float, tan, i10);
|
||||
check_uop(float, tan, i11);
|
||||
check_uop(float, tan, i12);
|
||||
check_uop(float, tan, i13);
|
||||
check_uop(float, tan, i14);
|
||||
check_uop(float, tan, i15);
|
||||
check_uop(float, tan, oi1);
|
||||
check_uop(float, tan, oi2);
|
||||
check_uop(float, tan, oi3);
|
||||
check_uop(float, tan, oi4);
|
||||
check_uop(float, tan, oi5);
|
||||
check_uop(float, tan, oi6);
|
||||
check_uop(float, tan, oi7);
|
||||
check_uop(float, tan, oi8);
|
||||
check_uop(float, tan, oi9);
|
||||
check_uop(float, tan, oi10);
|
||||
check_uop(float, tan, oi11);
|
||||
check_uop(float, tan, oi12);
|
||||
check_uop(float, tan, oi13);
|
||||
check_uop(float, tan, oi14);
|
||||
check_uop(float, tan, oi15);
|
||||
check_uop(float, tan, inf);
|
||||
check_uop(float, tan, ozero_pinf);
|
||||
check_uop(float, tan, ozero_ninf);
|
||||
check_uop(float, tan, czero_pinf);
|
||||
check_uop(float, tan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, asin, i11);
|
||||
check_uop(float, asin, i12);
|
||||
check_uop(float, asin, i13);
|
||||
check_uop(float, asin, i14);
|
||||
check_uop(float, asin, i15);
|
||||
check_uop(float, asin, oi11);
|
||||
check_uop(float, asin, oi12);
|
||||
check_uop(float, asin, oi13);
|
||||
check_uop(float, asin, oi14);
|
||||
check_uop(float, asin, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, acos, i11);
|
||||
check_uop(float, acos, i12);
|
||||
check_uop(float, acos, i13);
|
||||
check_uop(float, acos, i14);
|
||||
check_uop(float, acos, i15);
|
||||
check_uop(float, acos, oi11);
|
||||
check_uop(float, acos, oi12);
|
||||
check_uop(float, acos, oi13);
|
||||
check_uop(float, acos, oi14);
|
||||
check_uop(float, acos, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, atan, i1);
|
||||
check_uop(float, atan, i2);
|
||||
check_uop(float, atan, i3);
|
||||
check_uop(float, atan, i4);
|
||||
check_uop(float, atan, i5);
|
||||
check_uop(float, atan, i6);
|
||||
check_uop(float, atan, i7);
|
||||
check_uop(float, atan, i8);
|
||||
check_uop(float, atan, i9);
|
||||
check_uop(float, atan, i10);
|
||||
check_uop(float, atan, i11);
|
||||
check_uop(float, atan, i12);
|
||||
check_uop(float, atan, i13);
|
||||
check_uop(float, atan, i14);
|
||||
check_uop(float, atan, i15);
|
||||
check_uop(float, atan, oi1);
|
||||
check_uop(float, atan, oi2);
|
||||
check_uop(float, atan, oi3);
|
||||
check_uop(float, atan, oi4);
|
||||
check_uop(float, atan, oi5);
|
||||
check_uop(float, atan, oi6);
|
||||
check_uop(float, atan, oi7);
|
||||
check_uop(float, atan, oi8);
|
||||
check_uop(float, atan, oi9);
|
||||
check_uop(float, atan, oi10);
|
||||
check_uop(float, atan, oi11);
|
||||
check_uop(float, atan, oi12);
|
||||
check_uop(float, atan, oi13);
|
||||
check_uop(float, atan, oi14);
|
||||
check_uop(float, atan, oi15);
|
||||
check_uop(float, atan, inf);
|
||||
check_uop(float, atan, ozero_pinf);
|
||||
check_uop(float, atan, ozero_ninf);
|
||||
check_uop(float, atan, czero_pinf);
|
||||
check_uop(float, atan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, sinh, i1);
|
||||
check_uop(float, sinh, i2);
|
||||
check_uop(float, sinh, i3);
|
||||
check_uop(float, sinh, i4);
|
||||
check_uop(float, sinh, i5);
|
||||
check_uop(float, sinh, i6);
|
||||
check_uop(float, sinh, i7);
|
||||
check_uop(float, sinh, i8);
|
||||
check_uop(float, sinh, i9);
|
||||
check_uop(float, sinh, i10);
|
||||
check_uop(float, sinh, i11);
|
||||
check_uop(float, sinh, i12);
|
||||
check_uop(float, sinh, i13);
|
||||
check_uop(float, sinh, i14);
|
||||
check_uop(float, sinh, i15);
|
||||
check_uop(float, sinh, oi1);
|
||||
check_uop(float, sinh, oi2);
|
||||
check_uop(float, sinh, oi3);
|
||||
check_uop(float, sinh, oi4);
|
||||
check_uop(float, sinh, oi5);
|
||||
check_uop(float, sinh, oi6);
|
||||
check_uop(float, sinh, oi7);
|
||||
check_uop(float, sinh, oi8);
|
||||
check_uop(float, sinh, oi9);
|
||||
check_uop(float, sinh, oi10);
|
||||
check_uop(float, sinh, oi11);
|
||||
check_uop(float, sinh, oi12);
|
||||
check_uop(float, sinh, oi13);
|
||||
check_uop(float, sinh, oi14);
|
||||
check_uop(float, sinh, oi15);
|
||||
check_uop(float, sinh, inf);
|
||||
check_uop(float, sinh, ozero_pinf);
|
||||
check_uop(float, sinh, ozero_ninf);
|
||||
check_uop(float, sinh, czero_pinf);
|
||||
check_uop(float, sinh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, cosh, i1);
|
||||
check_uop(float, cosh, i2);
|
||||
check_uop(float, cosh, i3);
|
||||
check_uop(float, cosh, i4);
|
||||
check_uop(float, cosh, i5);
|
||||
check_uop(float, cosh, i6);
|
||||
check_uop(float, cosh, i7);
|
||||
check_uop(float, cosh, i8);
|
||||
check_uop(float, cosh, i9);
|
||||
check_uop(float, cosh, i10);
|
||||
check_uop(float, cosh, i11);
|
||||
check_uop(float, cosh, i12);
|
||||
check_uop(float, cosh, i13);
|
||||
check_uop(float, cosh, i14);
|
||||
check_uop(float, cosh, i15);
|
||||
check_uop(float, cosh, oi1);
|
||||
check_uop(float, cosh, oi2);
|
||||
check_uop(float, cosh, oi3);
|
||||
check_uop(float, cosh, oi4);
|
||||
check_uop(float, cosh, oi5);
|
||||
check_uop(float, cosh, oi6);
|
||||
check_uop(float, cosh, oi7);
|
||||
check_uop(float, cosh, oi8);
|
||||
check_uop(float, cosh, oi9);
|
||||
check_uop(float, cosh, oi10);
|
||||
check_uop(float, cosh, oi11);
|
||||
check_uop(float, cosh, oi12);
|
||||
check_uop(float, cosh, oi13);
|
||||
check_uop(float, cosh, oi14);
|
||||
check_uop(float, cosh, oi15);
|
||||
check_uop(float, cosh, inf);
|
||||
check_uop(float, cosh, ozero_pinf);
|
||||
check_uop(float, cosh, ozero_ninf);
|
||||
check_uop(float, cosh, czero_pinf);
|
||||
check_uop(float, cosh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(float, tanh, i1);
|
||||
check_uop(float, tanh, i2);
|
||||
check_uop(float, tanh, i3);
|
||||
check_uop(float, tanh, i4);
|
||||
check_uop(float, tanh, i5);
|
||||
check_uop(float, tanh, i6);
|
||||
check_uop(float, tanh, i7);
|
||||
check_uop(float, tanh, i8);
|
||||
check_uop(float, tanh, i9);
|
||||
check_uop(float, tanh, i10);
|
||||
check_uop(float, tanh, i11);
|
||||
check_uop(float, tanh, i12);
|
||||
check_uop(float, tanh, i13);
|
||||
check_uop(float, tanh, i14);
|
||||
check_uop(float, tanh, i15);
|
||||
check_uop(float, tanh, oi1);
|
||||
check_uop(float, tanh, oi2);
|
||||
check_uop(float, tanh, oi3);
|
||||
check_uop(float, tanh, oi4);
|
||||
check_uop(float, tanh, oi5);
|
||||
check_uop(float, tanh, oi6);
|
||||
check_uop(float, tanh, oi7);
|
||||
check_uop(float, tanh, oi8);
|
||||
check_uop(float, tanh, oi9);
|
||||
check_uop(float, tanh, oi10);
|
||||
check_uop(float, tanh, oi11);
|
||||
check_uop(float, tanh, oi12);
|
||||
check_uop(float, tanh, oi13);
|
||||
check_uop(float, tanh, oi14);
|
||||
check_uop(float, tanh, oi15);
|
||||
check_uop(float, tanh, inf);
|
||||
check_uop(float, tanh, ozero_pinf);
|
||||
check_uop(float, tanh, ozero_ninf);
|
||||
check_uop(float, tanh, czero_pinf);
|
||||
check_uop(float, tanh, czero_ninf);
|
||||
}
|
||||
|
||||
int main() {
|
||||
enable_trace("numerics");
|
||||
mpfp_interval_arith();
|
||||
mpfp_interval_inf1();
|
||||
mpfp_interval_inf2();
|
||||
mpfp_interval_trans();
|
||||
float_interval_arith();
|
||||
float_interval_inf1();
|
||||
float_interval_inf2();
|
||||
float_interval_trans();
|
||||
return has_violations() ? 1 : 0;
|
||||
}
|
||||
|
|
|
@ -10,54 +10,13 @@ Author: Soonho Kong
|
|||
#include "double.h"
|
||||
#include "mpfp.h"
|
||||
#include "interval_def.h"
|
||||
#include "check.h"
|
||||
|
||||
using namespace lean;
|
||||
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
|
||||
// Check F(I.lower()) \in F(I) and F(I.upper()) \in F(I).
|
||||
#define check_bop(f, i, c) { \
|
||||
cout << #f << "(" << #i << " " << i << ", " << c << ") = "; \
|
||||
fi tmp = f(i, c); \
|
||||
cout << tmp << endl; \
|
||||
if(!i.is_lower_inf()) { \
|
||||
numeric_traits<mpfp>::set_rounding(false); \
|
||||
mpfp l = f(i.lower(), c); \
|
||||
cout << "\t" << #f << "(" << i.lower() << ", " << c << ") = " << l << endl; \
|
||||
lean_assert(tmp.is_lower_inf() || \
|
||||
((tmp.lower() <= l) && (tmp.is_upper_inf() || (l <= tmp.upper())))); \
|
||||
} \
|
||||
if(!i.is_upper_inf()) { \
|
||||
numeric_traits<mpfp>::set_rounding(true); \
|
||||
mpfp u = f(i.upper(), c); \
|
||||
cout << "\t" << #f << "(" << i.upper() << ", " << c << ") = " << u << endl; \
|
||||
lean_assert(tmp.is_upper_inf() || \
|
||||
((tmp.is_lower_inf() || (tmp.lower() <= u)) && (u <= tmp.upper()))); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define check_uop(f, i) { \
|
||||
cout << #f << "(" << #i << " " << i << ") = "; \
|
||||
fi tmp = f(i); \
|
||||
cout << tmp << endl; \
|
||||
if(!i.is_lower_inf()) { \
|
||||
numeric_traits<mpfp>::set_rounding(false); \
|
||||
mpfp l = f(i.lower()); \
|
||||
cout << "\t" << #f << "(" << i.lower() << ") = " << l << endl; \
|
||||
lean_assert(tmp.is_lower_inf() || \
|
||||
((tmp.lower() <= l) && (tmp.is_upper_inf() || (l <= tmp.upper())))); \
|
||||
} \
|
||||
if(!i.is_upper_inf()) { \
|
||||
numeric_traits<mpfp>::set_rounding(true); \
|
||||
mpfp u = f(i.upper()); \
|
||||
cout << "\t" << #f << "(" << i.upper() << ") = " << u << endl; \
|
||||
lean_assert(tmp.is_upper_inf() || \
|
||||
((tmp.is_lower_inf() || (tmp.lower() <= u)) && (u <= tmp.upper()))); \
|
||||
} \
|
||||
}
|
||||
|
||||
typedef interval<double> di;
|
||||
typedef interval<mpfp> fi;
|
||||
|
||||
|
@ -430,410 +389,480 @@ static void mpfp_interval_trans() {
|
|||
mpfp c5(-0.3);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_bop(power, i1, 3lu);
|
||||
check_bop(power, i2, 3lu);
|
||||
check_bop(power, i3, 3lu);
|
||||
check_bop(power, i4, 3lu);
|
||||
check_bop(power, i5, 3lu);
|
||||
check_bop(power, i6, 3lu);
|
||||
check_bop(power, i7, 3lu);
|
||||
check_bop(power, i8, 3lu);
|
||||
check_bop(power, i9, 3lu);
|
||||
check_bop(power, i10, 3lu);
|
||||
check_bop(power, i11, 3lu);
|
||||
check_bop(power, i12, 3lu);
|
||||
check_bop(power, i13, 3lu);
|
||||
check_bop(power, i14, 3lu);
|
||||
check_bop(power, i15, 3lu);
|
||||
check_bop(power, oi1, 3lu);
|
||||
check_bop(power, oi2, 3lu);
|
||||
check_bop(power, oi3, 3lu);
|
||||
check_bop(power, oi4, 3lu);
|
||||
check_bop(power, oi5, 3lu);
|
||||
check_bop(power, oi6, 3lu);
|
||||
check_bop(power, oi7, 3lu);
|
||||
check_bop(power, oi8, 3lu);
|
||||
check_bop(power, oi9, 3lu);
|
||||
check_bop(power, oi10, 3lu);
|
||||
check_bop(power, oi11, 3lu);
|
||||
check_bop(power, oi12, 3lu);
|
||||
check_bop(power, oi13, 3lu);
|
||||
check_bop(power, oi14, 3lu);
|
||||
check_bop(power, oi15, 3lu);
|
||||
check_bop(power, inf, 3lu);
|
||||
check_bop(power, ozero_ninf, 3lu);
|
||||
check_bop(power, ozero_pinf, 3lu);
|
||||
check_bop(power, czero_ninf, 3lu);
|
||||
check_bop(power, czero_pinf, 3lu);
|
||||
check_bop(mpfp, power, i1, 3lu);
|
||||
check_bop(mpfp, power, i2, 3lu);
|
||||
check_bop(mpfp, power, i3, 3lu);
|
||||
check_bop(mpfp, power, i4, 3lu);
|
||||
check_bop(mpfp, power, i5, 3lu);
|
||||
check_bop(mpfp, power, i6, 3lu);
|
||||
check_bop(mpfp, power, i7, 3lu);
|
||||
check_bop(mpfp, power, i8, 3lu);
|
||||
check_bop(mpfp, power, i9, 3lu);
|
||||
check_bop(mpfp, power, i10, 3lu);
|
||||
check_bop(mpfp, power, i11, 3lu);
|
||||
check_bop(mpfp, power, i12, 3lu);
|
||||
check_bop(mpfp, power, i13, 3lu);
|
||||
check_bop(mpfp, power, i14, 3lu);
|
||||
check_bop(mpfp, power, i15, 3lu);
|
||||
check_bop(mpfp, power, oi1, 3lu);
|
||||
check_bop(mpfp, power, oi2, 3lu);
|
||||
check_bop(mpfp, power, oi3, 3lu);
|
||||
check_bop(mpfp, power, oi4, 3lu);
|
||||
check_bop(mpfp, power, oi5, 3lu);
|
||||
check_bop(mpfp, power, oi6, 3lu);
|
||||
check_bop(mpfp, power, oi7, 3lu);
|
||||
check_bop(mpfp, power, oi8, 3lu);
|
||||
check_bop(mpfp, power, oi9, 3lu);
|
||||
check_bop(mpfp, power, oi10, 3lu);
|
||||
check_bop(mpfp, power, oi11, 3lu);
|
||||
check_bop(mpfp, power, oi12, 3lu);
|
||||
check_bop(mpfp, power, oi13, 3lu);
|
||||
check_bop(mpfp, power, oi14, 3lu);
|
||||
check_bop(mpfp, power, oi15, 3lu);
|
||||
check_bop(mpfp, power, inf, 3lu);
|
||||
check_bop(mpfp, power, ozero_ninf, 3lu);
|
||||
check_bop(mpfp, power, ozero_pinf, 3lu);
|
||||
check_bop(mpfp, power, czero_ninf, 3lu);
|
||||
check_bop(mpfp, power, czero_pinf, 3lu);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(exp, i1);
|
||||
check_uop(exp, i2);
|
||||
check_uop(exp, i3);
|
||||
check_uop(exp, i4);
|
||||
check_uop(exp, i5);
|
||||
check_uop(exp, i6);
|
||||
check_uop(exp, i7);
|
||||
check_uop(exp, i8);
|
||||
check_uop(exp, i9);
|
||||
check_uop(exp, i10);
|
||||
check_uop(exp, i11);
|
||||
check_uop(exp, i12);
|
||||
check_uop(exp, i13);
|
||||
check_uop(exp, i14);
|
||||
check_uop(exp, i15);
|
||||
check_uop(exp, oi1);
|
||||
check_uop(exp, oi2);
|
||||
check_uop(exp, oi3);
|
||||
check_uop(exp, oi4);
|
||||
check_uop(exp, oi5);
|
||||
check_uop(exp, oi6);
|
||||
check_uop(exp, oi7);
|
||||
check_uop(exp, oi8);
|
||||
check_uop(exp, oi9);
|
||||
check_uop(exp, oi10);
|
||||
check_uop(exp, oi11);
|
||||
check_uop(exp, oi12);
|
||||
check_uop(exp, oi13);
|
||||
check_uop(exp, oi14);
|
||||
check_uop(exp, oi15);
|
||||
check_uop(exp, inf);
|
||||
check_uop(exp, ozero_pinf);
|
||||
check_uop(exp, ozero_ninf);
|
||||
check_uop(exp, czero_pinf);
|
||||
check_uop(exp, czero_ninf);
|
||||
check_uop(mpfp, exp, i1);
|
||||
check_uop(mpfp, exp, i2);
|
||||
check_uop(mpfp, exp, i3);
|
||||
check_uop(mpfp, exp, i4);
|
||||
check_uop(mpfp, exp, i5);
|
||||
check_uop(mpfp, exp, i6);
|
||||
check_uop(mpfp, exp, i7);
|
||||
check_uop(mpfp, exp, i8);
|
||||
check_uop(mpfp, exp, i9);
|
||||
check_uop(mpfp, exp, i10);
|
||||
check_uop(mpfp, exp, i11);
|
||||
check_uop(mpfp, exp, i12);
|
||||
check_uop(mpfp, exp, i13);
|
||||
check_uop(mpfp, exp, i14);
|
||||
check_uop(mpfp, exp, i15);
|
||||
check_uop(mpfp, exp, oi1);
|
||||
check_uop(mpfp, exp, oi2);
|
||||
check_uop(mpfp, exp, oi3);
|
||||
check_uop(mpfp, exp, oi4);
|
||||
check_uop(mpfp, exp, oi5);
|
||||
check_uop(mpfp, exp, oi6);
|
||||
check_uop(mpfp, exp, oi7);
|
||||
check_uop(mpfp, exp, oi8);
|
||||
check_uop(mpfp, exp, oi9);
|
||||
check_uop(mpfp, exp, oi10);
|
||||
check_uop(mpfp, exp, oi11);
|
||||
check_uop(mpfp, exp, oi12);
|
||||
check_uop(mpfp, exp, oi13);
|
||||
check_uop(mpfp, exp, oi14);
|
||||
check_uop(mpfp, exp, oi15);
|
||||
check_uop(mpfp, exp, inf);
|
||||
check_uop(mpfp, exp, ozero_pinf);
|
||||
check_uop(mpfp, exp, ozero_ninf);
|
||||
check_uop(mpfp, exp, czero_pinf);
|
||||
check_uop(mpfp, exp, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(exp2, i1);
|
||||
check_uop(exp2, i2);
|
||||
check_uop(exp2, i3);
|
||||
check_uop(exp2, i4);
|
||||
check_uop(exp2, i5);
|
||||
check_uop(exp2, i6);
|
||||
check_uop(exp2, i7);
|
||||
check_uop(exp2, i8);
|
||||
check_uop(exp2, i9);
|
||||
check_uop(exp2, i10);
|
||||
check_uop(exp2, i11);
|
||||
check_uop(exp2, i12);
|
||||
check_uop(exp2, i13);
|
||||
check_uop(exp2, i14);
|
||||
check_uop(exp2, i15);
|
||||
check_uop(exp2, oi1);
|
||||
check_uop(exp2, oi2);
|
||||
check_uop(exp2, oi3);
|
||||
check_uop(exp2, oi4);
|
||||
check_uop(exp2, oi5);
|
||||
check_uop(exp2, oi6);
|
||||
check_uop(exp2, oi7);
|
||||
check_uop(exp2, oi8);
|
||||
check_uop(exp2, oi9);
|
||||
check_uop(exp2, oi10);
|
||||
check_uop(exp2, oi11);
|
||||
check_uop(exp2, oi12);
|
||||
check_uop(exp2, oi13);
|
||||
check_uop(exp2, oi14);
|
||||
check_uop(exp2, oi15);
|
||||
check_uop(exp2, inf);
|
||||
check_uop(exp2, ozero_pinf);
|
||||
check_uop(exp2, ozero_ninf);
|
||||
check_uop(exp2, czero_pinf);
|
||||
check_uop(exp2, czero_ninf);
|
||||
check_uop(mpfp, exp2, i1);
|
||||
check_uop(mpfp, exp2, i2);
|
||||
check_uop(mpfp, exp2, i3);
|
||||
check_uop(mpfp, exp2, i4);
|
||||
check_uop(mpfp, exp2, i5);
|
||||
check_uop(mpfp, exp2, i6);
|
||||
check_uop(mpfp, exp2, i7);
|
||||
check_uop(mpfp, exp2, i8);
|
||||
check_uop(mpfp, exp2, i9);
|
||||
check_uop(mpfp, exp2, i10);
|
||||
check_uop(mpfp, exp2, i11);
|
||||
check_uop(mpfp, exp2, i12);
|
||||
check_uop(mpfp, exp2, i13);
|
||||
check_uop(mpfp, exp2, i14);
|
||||
check_uop(mpfp, exp2, i15);
|
||||
check_uop(mpfp, exp2, oi1);
|
||||
check_uop(mpfp, exp2, oi2);
|
||||
check_uop(mpfp, exp2, oi3);
|
||||
check_uop(mpfp, exp2, oi4);
|
||||
check_uop(mpfp, exp2, oi5);
|
||||
check_uop(mpfp, exp2, oi6);
|
||||
check_uop(mpfp, exp2, oi7);
|
||||
check_uop(mpfp, exp2, oi8);
|
||||
check_uop(mpfp, exp2, oi9);
|
||||
check_uop(mpfp, exp2, oi10);
|
||||
check_uop(mpfp, exp2, oi11);
|
||||
check_uop(mpfp, exp2, oi12);
|
||||
check_uop(mpfp, exp2, oi13);
|
||||
check_uop(mpfp, exp2, oi14);
|
||||
check_uop(mpfp, exp2, oi15);
|
||||
check_uop(mpfp, exp2, inf);
|
||||
check_uop(mpfp, exp2, ozero_pinf);
|
||||
check_uop(mpfp, exp2, ozero_ninf);
|
||||
check_uop(mpfp, exp2, czero_pinf);
|
||||
check_uop(mpfp, exp2, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(exp10, i1);
|
||||
check_uop(exp10, i2);
|
||||
check_uop(exp10, i3);
|
||||
check_uop(exp10, i4);
|
||||
check_uop(exp10, i5);
|
||||
check_uop(exp10, i6);
|
||||
check_uop(exp10, i7);
|
||||
check_uop(exp10, i8);
|
||||
check_uop(exp10, i9);
|
||||
check_uop(exp10, i10);
|
||||
check_uop(exp10, i11);
|
||||
check_uop(exp10, i12);
|
||||
check_uop(exp10, i13);
|
||||
check_uop(exp10, i14);
|
||||
check_uop(exp10, i15);
|
||||
check_uop(exp10, oi1);
|
||||
check_uop(exp10, oi2);
|
||||
check_uop(exp10, oi3);
|
||||
check_uop(exp10, oi4);
|
||||
check_uop(exp10, oi5);
|
||||
check_uop(exp10, oi6);
|
||||
check_uop(exp10, oi7);
|
||||
check_uop(exp10, oi8);
|
||||
check_uop(exp10, oi9);
|
||||
check_uop(exp10, oi10);
|
||||
check_uop(exp10, oi11);
|
||||
check_uop(exp10, oi12);
|
||||
check_uop(exp10, oi13);
|
||||
check_uop(exp10, oi14);
|
||||
check_uop(exp10, oi15);
|
||||
check_uop(exp10, inf);
|
||||
check_uop(exp10, ozero_pinf);
|
||||
check_uop(exp10, ozero_ninf);
|
||||
check_uop(exp10, czero_pinf);
|
||||
check_uop(exp10, czero_ninf);
|
||||
check_uop(mpfp, exp10, i1);
|
||||
check_uop(mpfp, exp10, i2);
|
||||
check_uop(mpfp, exp10, i3);
|
||||
check_uop(mpfp, exp10, i4);
|
||||
check_uop(mpfp, exp10, i5);
|
||||
check_uop(mpfp, exp10, i6);
|
||||
check_uop(mpfp, exp10, i7);
|
||||
check_uop(mpfp, exp10, i8);
|
||||
check_uop(mpfp, exp10, i9);
|
||||
check_uop(mpfp, exp10, i10);
|
||||
check_uop(mpfp, exp10, i11);
|
||||
check_uop(mpfp, exp10, i12);
|
||||
check_uop(mpfp, exp10, i13);
|
||||
check_uop(mpfp, exp10, i14);
|
||||
check_uop(mpfp, exp10, i15);
|
||||
check_uop(mpfp, exp10, oi1);
|
||||
check_uop(mpfp, exp10, oi2);
|
||||
check_uop(mpfp, exp10, oi3);
|
||||
check_uop(mpfp, exp10, oi4);
|
||||
check_uop(mpfp, exp10, oi5);
|
||||
check_uop(mpfp, exp10, oi6);
|
||||
check_uop(mpfp, exp10, oi7);
|
||||
check_uop(mpfp, exp10, oi8);
|
||||
check_uop(mpfp, exp10, oi9);
|
||||
check_uop(mpfp, exp10, oi10);
|
||||
check_uop(mpfp, exp10, oi11);
|
||||
check_uop(mpfp, exp10, oi12);
|
||||
check_uop(mpfp, exp10, oi13);
|
||||
check_uop(mpfp, exp10, oi14);
|
||||
check_uop(mpfp, exp10, oi15);
|
||||
check_uop(mpfp, exp10, inf);
|
||||
check_uop(mpfp, exp10, ozero_pinf);
|
||||
check_uop(mpfp, exp10, ozero_ninf);
|
||||
check_uop(mpfp, exp10, czero_pinf);
|
||||
check_uop(mpfp, exp10, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(log, i1);
|
||||
check_uop(log, i2);
|
||||
check_uop(log, i5);
|
||||
check_uop(log, i6);
|
||||
check_uop(log, i7);
|
||||
check_uop(log, i8);
|
||||
check_uop(log, oi1);
|
||||
check_uop(log, oi2);
|
||||
check_uop(log, oi5);
|
||||
check_uop(log, oi6);
|
||||
check_uop(log, oi7);
|
||||
check_uop(log, oi8);
|
||||
check_uop(log, ozero_pinf);
|
||||
check_uop(mpfp, log, i1);
|
||||
check_uop(mpfp, log, i2);
|
||||
check_uop(mpfp, log, i5);
|
||||
check_uop(mpfp, log, i6);
|
||||
check_uop(mpfp, log, i7);
|
||||
check_uop(mpfp, log, i8);
|
||||
check_uop(mpfp, log, oi1);
|
||||
check_uop(mpfp, log, oi2);
|
||||
check_uop(mpfp, log, oi5);
|
||||
check_uop(mpfp, log, oi6);
|
||||
check_uop(mpfp, log, oi7);
|
||||
check_uop(mpfp, log, oi8);
|
||||
check_uop(mpfp, log, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(log2, i1);
|
||||
check_uop(log2, i2);
|
||||
check_uop(log2, i5);
|
||||
check_uop(log2, i6);
|
||||
check_uop(log2, i7);
|
||||
check_uop(log2, i8);
|
||||
check_uop(log2, oi1);
|
||||
check_uop(log2, oi2);
|
||||
check_uop(log2, oi5);
|
||||
check_uop(log2, oi6);
|
||||
check_uop(log2, oi7);
|
||||
check_uop(log2, oi8);
|
||||
check_uop(log2, ozero_pinf);
|
||||
check_uop(mpfp, log2, i1);
|
||||
check_uop(mpfp, log2, i2);
|
||||
check_uop(mpfp, log2, i5);
|
||||
check_uop(mpfp, log2, i6);
|
||||
check_uop(mpfp, log2, i7);
|
||||
check_uop(mpfp, log2, i8);
|
||||
check_uop(mpfp, log2, oi1);
|
||||
check_uop(mpfp, log2, oi2);
|
||||
check_uop(mpfp, log2, oi5);
|
||||
check_uop(mpfp, log2, oi6);
|
||||
check_uop(mpfp, log2, oi7);
|
||||
check_uop(mpfp, log2, oi8);
|
||||
check_uop(mpfp, log2, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(log10, i1);
|
||||
check_uop(log10, i2);
|
||||
check_uop(log10, i5);
|
||||
check_uop(log10, i6);
|
||||
check_uop(log10, i7);
|
||||
check_uop(log10, i8);
|
||||
check_uop(log10, oi1);
|
||||
check_uop(log10, oi2);
|
||||
check_uop(log10, oi5);
|
||||
check_uop(log10, oi6);
|
||||
check_uop(log10, oi7);
|
||||
check_uop(log10, oi8);
|
||||
check_uop(log10, ozero_pinf);
|
||||
check_uop(mpfp, log10, i1);
|
||||
check_uop(mpfp, log10, i2);
|
||||
check_uop(mpfp, log10, i5);
|
||||
check_uop(mpfp, log10, i6);
|
||||
check_uop(mpfp, log10, i7);
|
||||
check_uop(mpfp, log10, i8);
|
||||
check_uop(mpfp, log10, oi1);
|
||||
check_uop(mpfp, log10, oi2);
|
||||
check_uop(mpfp, log10, oi5);
|
||||
check_uop(mpfp, log10, oi6);
|
||||
check_uop(mpfp, log10, oi7);
|
||||
check_uop(mpfp, log10, oi8);
|
||||
check_uop(mpfp, log10, ozero_pinf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(sin, i1);
|
||||
check_uop(sin, i2);
|
||||
check_uop(sin, i3);
|
||||
check_uop(sin, i4);
|
||||
check_uop(sin, i5);
|
||||
check_uop(sin, i6);
|
||||
check_uop(sin, i7);
|
||||
check_uop(sin, i8);
|
||||
check_uop(sin, i9);
|
||||
check_uop(sin, i10);
|
||||
check_uop(sin, oi1);
|
||||
check_uop(sin, oi2);
|
||||
check_uop(sin, oi3);
|
||||
check_uop(sin, oi4);
|
||||
check_uop(sin, oi5);
|
||||
check_uop(sin, oi6);
|
||||
check_uop(sin, oi7);
|
||||
check_uop(sin, oi8);
|
||||
check_uop(sin, oi9);
|
||||
check_uop(sin, oi10);
|
||||
check_uop(sin, inf);
|
||||
check_uop(sin, ozero_pinf);
|
||||
check_uop(sin, ozero_ninf);
|
||||
check_uop(sin, czero_pinf);
|
||||
check_uop(sin, czero_ninf);
|
||||
check_uop(mpfp, sin, i1);
|
||||
check_uop(mpfp, sin, i2);
|
||||
check_uop(mpfp, sin, i3);
|
||||
check_uop(mpfp, sin, i4);
|
||||
check_uop(mpfp, sin, i5);
|
||||
check_uop(mpfp, sin, i6);
|
||||
check_uop(mpfp, sin, i7);
|
||||
check_uop(mpfp, sin, i8);
|
||||
check_uop(mpfp, sin, i9);
|
||||
check_uop(mpfp, sin, i10);
|
||||
check_uop(mpfp, sin, i11);
|
||||
check_uop(mpfp, sin, i12);
|
||||
check_uop(mpfp, sin, i13);
|
||||
check_uop(mpfp, sin, i14);
|
||||
check_uop(mpfp, sin, i15);
|
||||
check_uop(mpfp, sin, oi1);
|
||||
check_uop(mpfp, sin, oi2);
|
||||
check_uop(mpfp, sin, oi3);
|
||||
check_uop(mpfp, sin, oi4);
|
||||
check_uop(mpfp, sin, oi5);
|
||||
check_uop(mpfp, sin, oi6);
|
||||
check_uop(mpfp, sin, oi7);
|
||||
check_uop(mpfp, sin, oi8);
|
||||
check_uop(mpfp, sin, oi9);
|
||||
check_uop(mpfp, sin, oi10);
|
||||
check_uop(mpfp, sin, oi11);
|
||||
check_uop(mpfp, sin, oi12);
|
||||
check_uop(mpfp, sin, oi13);
|
||||
check_uop(mpfp, sin, oi14);
|
||||
check_uop(mpfp, sin, oi15);
|
||||
check_uop(mpfp, sin, inf);
|
||||
check_uop(mpfp, sin, ozero_pinf);
|
||||
check_uop(mpfp, sin, ozero_ninf);
|
||||
check_uop(mpfp, sin, czero_pinf);
|
||||
check_uop(mpfp, sin, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(cos, i1);
|
||||
check_uop(cos, i2);
|
||||
check_uop(cos, i3);
|
||||
check_uop(cos, i4);
|
||||
check_uop(cos, i5);
|
||||
check_uop(cos, i6);
|
||||
check_uop(cos, i7);
|
||||
check_uop(cos, i8);
|
||||
check_uop(cos, i9);
|
||||
check_uop(cos, i10);
|
||||
check_uop(cos, oi1);
|
||||
check_uop(cos, oi2);
|
||||
check_uop(cos, oi3);
|
||||
check_uop(cos, oi4);
|
||||
check_uop(cos, oi5);
|
||||
check_uop(cos, oi6);
|
||||
check_uop(cos, oi7);
|
||||
check_uop(cos, oi8);
|
||||
check_uop(cos, oi9);
|
||||
check_uop(cos, oi10);
|
||||
check_uop(cos, inf);
|
||||
check_uop(cos, ozero_pinf);
|
||||
check_uop(cos, ozero_ninf);
|
||||
check_uop(cos, czero_pinf);
|
||||
check_uop(cos, czero_ninf);
|
||||
check_uop(mpfp, cos, i1);
|
||||
check_uop(mpfp, cos, i2);
|
||||
check_uop(mpfp, cos, i3);
|
||||
check_uop(mpfp, cos, i4);
|
||||
check_uop(mpfp, cos, i5);
|
||||
check_uop(mpfp, cos, i6);
|
||||
check_uop(mpfp, cos, i7);
|
||||
check_uop(mpfp, cos, i8);
|
||||
check_uop(mpfp, cos, i9);
|
||||
check_uop(mpfp, cos, i10);
|
||||
check_uop(mpfp, cos, i11);
|
||||
check_uop(mpfp, cos, i12);
|
||||
check_uop(mpfp, cos, i13);
|
||||
check_uop(mpfp, cos, i14);
|
||||
check_uop(mpfp, cos, i15);
|
||||
check_uop(mpfp, cos, oi1);
|
||||
check_uop(mpfp, cos, oi2);
|
||||
check_uop(mpfp, cos, oi3);
|
||||
check_uop(mpfp, cos, oi4);
|
||||
check_uop(mpfp, cos, oi5);
|
||||
check_uop(mpfp, cos, oi6);
|
||||
check_uop(mpfp, cos, oi7);
|
||||
check_uop(mpfp, cos, oi8);
|
||||
check_uop(mpfp, cos, oi9);
|
||||
check_uop(mpfp, cos, oi10);
|
||||
check_uop(mpfp, cos, oi11);
|
||||
check_uop(mpfp, cos, oi12);
|
||||
check_uop(mpfp, cos, oi13);
|
||||
check_uop(mpfp, cos, oi14);
|
||||
check_uop(mpfp, cos, oi15);
|
||||
check_uop(mpfp, cos, inf);
|
||||
check_uop(mpfp, cos, ozero_pinf);
|
||||
check_uop(mpfp, cos, ozero_ninf);
|
||||
check_uop(mpfp, cos, czero_pinf);
|
||||
check_uop(mpfp, cos, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(tan, i1);
|
||||
check_uop(tan, i2);
|
||||
check_uop(tan, i3);
|
||||
check_uop(tan, i4);
|
||||
check_uop(tan, i5);
|
||||
check_uop(tan, i6);
|
||||
check_uop(tan, i7);
|
||||
check_uop(tan, i8);
|
||||
check_uop(tan, i9);
|
||||
check_uop(tan, i10);
|
||||
check_uop(tan, oi1);
|
||||
check_uop(tan, oi2);
|
||||
check_uop(tan, oi3);
|
||||
check_uop(tan, oi4);
|
||||
check_uop(tan, oi5);
|
||||
check_uop(tan, oi6);
|
||||
check_uop(tan, oi7);
|
||||
check_uop(tan, oi8);
|
||||
check_uop(tan, oi9);
|
||||
check_uop(tan, oi10);
|
||||
check_uop(tan, inf);
|
||||
check_uop(tan, ozero_pinf);
|
||||
check_uop(tan, ozero_ninf);
|
||||
check_uop(tan, czero_pinf);
|
||||
check_uop(tan, czero_ninf);
|
||||
check_uop(mpfp, tan, i1);
|
||||
check_uop(mpfp, tan, i2);
|
||||
check_uop(mpfp, tan, i3);
|
||||
check_uop(mpfp, tan, i4);
|
||||
check_uop(mpfp, tan, i5);
|
||||
check_uop(mpfp, tan, i6);
|
||||
check_uop(mpfp, tan, i7);
|
||||
check_uop(mpfp, tan, i8);
|
||||
check_uop(mpfp, tan, i9);
|
||||
check_uop(mpfp, tan, i10);
|
||||
check_uop(mpfp, tan, i11);
|
||||
check_uop(mpfp, tan, i12);
|
||||
check_uop(mpfp, tan, i13);
|
||||
check_uop(mpfp, tan, i14);
|
||||
check_uop(mpfp, tan, i15);
|
||||
check_uop(mpfp, tan, oi1);
|
||||
check_uop(mpfp, tan, oi2);
|
||||
check_uop(mpfp, tan, oi3);
|
||||
check_uop(mpfp, tan, oi4);
|
||||
check_uop(mpfp, tan, oi5);
|
||||
check_uop(mpfp, tan, oi6);
|
||||
check_uop(mpfp, tan, oi7);
|
||||
check_uop(mpfp, tan, oi8);
|
||||
check_uop(mpfp, tan, oi9);
|
||||
check_uop(mpfp, tan, oi10);
|
||||
check_uop(mpfp, tan, oi11);
|
||||
check_uop(mpfp, tan, oi12);
|
||||
check_uop(mpfp, tan, oi13);
|
||||
check_uop(mpfp, tan, oi14);
|
||||
check_uop(mpfp, tan, oi15);
|
||||
check_uop(mpfp, tan, inf);
|
||||
check_uop(mpfp, tan, ozero_pinf);
|
||||
check_uop(mpfp, tan, ozero_ninf);
|
||||
check_uop(mpfp, tan, czero_pinf);
|
||||
check_uop(mpfp, tan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(asin, i11);
|
||||
check_uop(asin, i12);
|
||||
check_uop(asin, i13);
|
||||
check_uop(asin, i14);
|
||||
check_uop(asin, i15);
|
||||
check_uop(asin, oi11);
|
||||
check_uop(asin, oi12);
|
||||
check_uop(asin, oi13);
|
||||
check_uop(asin, oi14);
|
||||
check_uop(asin, oi15);
|
||||
check_uop(mpfp, asin, i11);
|
||||
check_uop(mpfp, asin, i12);
|
||||
check_uop(mpfp, asin, i13);
|
||||
check_uop(mpfp, asin, i14);
|
||||
check_uop(mpfp, asin, i15);
|
||||
check_uop(mpfp, asin, oi11);
|
||||
check_uop(mpfp, asin, oi12);
|
||||
check_uop(mpfp, asin, oi13);
|
||||
check_uop(mpfp, asin, oi14);
|
||||
check_uop(mpfp, asin, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(acos, i11);
|
||||
check_uop(acos, i12);
|
||||
check_uop(acos, i13);
|
||||
check_uop(acos, i14);
|
||||
check_uop(acos, i15);
|
||||
check_uop(acos, oi11);
|
||||
check_uop(acos, oi12);
|
||||
check_uop(acos, oi13);
|
||||
check_uop(acos, oi14);
|
||||
check_uop(acos, oi15);
|
||||
check_uop(mpfp, acos, i11);
|
||||
check_uop(mpfp, acos, i12);
|
||||
check_uop(mpfp, acos, i13);
|
||||
check_uop(mpfp, acos, i14);
|
||||
check_uop(mpfp, acos, i15);
|
||||
check_uop(mpfp, acos, oi11);
|
||||
check_uop(mpfp, acos, oi12);
|
||||
check_uop(mpfp, acos, oi13);
|
||||
check_uop(mpfp, acos, oi14);
|
||||
check_uop(mpfp, acos, oi15);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(atan, i1);
|
||||
check_uop(atan, i2);
|
||||
check_uop(atan, i3);
|
||||
check_uop(atan, i4);
|
||||
check_uop(atan, i5);
|
||||
check_uop(atan, i6);
|
||||
check_uop(atan, i7);
|
||||
check_uop(atan, i8);
|
||||
check_uop(atan, i9);
|
||||
check_uop(atan, i10);
|
||||
check_uop(atan, oi1);
|
||||
check_uop(atan, oi2);
|
||||
check_uop(atan, oi3);
|
||||
check_uop(atan, oi4);
|
||||
check_uop(atan, oi5);
|
||||
check_uop(atan, oi6);
|
||||
check_uop(atan, oi7);
|
||||
check_uop(atan, oi8);
|
||||
check_uop(atan, oi9);
|
||||
check_uop(atan, oi10);
|
||||
check_uop(atan, inf);
|
||||
check_uop(atan, ozero_pinf);
|
||||
check_uop(atan, ozero_ninf);
|
||||
check_uop(atan, czero_pinf);
|
||||
check_uop(atan, czero_ninf);
|
||||
check_uop(mpfp, atan, i1);
|
||||
check_uop(mpfp, atan, i2);
|
||||
check_uop(mpfp, atan, i3);
|
||||
check_uop(mpfp, atan, i4);
|
||||
check_uop(mpfp, atan, i5);
|
||||
check_uop(mpfp, atan, i6);
|
||||
check_uop(mpfp, atan, i7);
|
||||
check_uop(mpfp, atan, i8);
|
||||
check_uop(mpfp, atan, i9);
|
||||
check_uop(mpfp, atan, i10);
|
||||
check_uop(mpfp, atan, i11);
|
||||
check_uop(mpfp, atan, i12);
|
||||
check_uop(mpfp, atan, i13);
|
||||
check_uop(mpfp, atan, i14);
|
||||
check_uop(mpfp, atan, i15);
|
||||
check_uop(mpfp, atan, oi1);
|
||||
check_uop(mpfp, atan, oi2);
|
||||
check_uop(mpfp, atan, oi3);
|
||||
check_uop(mpfp, atan, oi4);
|
||||
check_uop(mpfp, atan, oi5);
|
||||
check_uop(mpfp, atan, oi6);
|
||||
check_uop(mpfp, atan, oi7);
|
||||
check_uop(mpfp, atan, oi8);
|
||||
check_uop(mpfp, atan, oi9);
|
||||
check_uop(mpfp, atan, oi10);
|
||||
check_uop(mpfp, atan, oi11);
|
||||
check_uop(mpfp, atan, oi12);
|
||||
check_uop(mpfp, atan, oi13);
|
||||
check_uop(mpfp, atan, oi14);
|
||||
check_uop(mpfp, atan, oi15);
|
||||
check_uop(mpfp, atan, inf);
|
||||
check_uop(mpfp, atan, ozero_pinf);
|
||||
check_uop(mpfp, atan, ozero_ninf);
|
||||
check_uop(mpfp, atan, czero_pinf);
|
||||
check_uop(mpfp, atan, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(sinh, i1);
|
||||
check_uop(sinh, i2);
|
||||
check_uop(sinh, i3);
|
||||
check_uop(sinh, i4);
|
||||
check_uop(sinh, i5);
|
||||
check_uop(sinh, i6);
|
||||
check_uop(sinh, i7);
|
||||
check_uop(sinh, i8);
|
||||
check_uop(sinh, i9);
|
||||
check_uop(sinh, i10);
|
||||
check_uop(sinh, oi1);
|
||||
check_uop(sinh, oi2);
|
||||
check_uop(sinh, oi3);
|
||||
check_uop(sinh, oi4);
|
||||
check_uop(sinh, oi5);
|
||||
check_uop(sinh, oi6);
|
||||
check_uop(sinh, oi7);
|
||||
check_uop(sinh, oi8);
|
||||
check_uop(sinh, oi9);
|
||||
check_uop(sinh, oi10);
|
||||
check_uop(sinh, inf);
|
||||
check_uop(sinh, ozero_pinf);
|
||||
check_uop(sinh, ozero_ninf);
|
||||
check_uop(sinh, czero_pinf);
|
||||
check_uop(sinh, czero_ninf);
|
||||
check_uop(mpfp, sinh, i1);
|
||||
check_uop(mpfp, sinh, i2);
|
||||
check_uop(mpfp, sinh, i3);
|
||||
check_uop(mpfp, sinh, i4);
|
||||
check_uop(mpfp, sinh, i5);
|
||||
check_uop(mpfp, sinh, i6);
|
||||
check_uop(mpfp, sinh, i7);
|
||||
check_uop(mpfp, sinh, i8);
|
||||
check_uop(mpfp, sinh, i9);
|
||||
check_uop(mpfp, sinh, i10);
|
||||
check_uop(mpfp, sinh, i11);
|
||||
check_uop(mpfp, sinh, i12);
|
||||
check_uop(mpfp, sinh, i13);
|
||||
check_uop(mpfp, sinh, i14);
|
||||
check_uop(mpfp, sinh, i15);
|
||||
check_uop(mpfp, sinh, oi1);
|
||||
check_uop(mpfp, sinh, oi2);
|
||||
check_uop(mpfp, sinh, oi3);
|
||||
check_uop(mpfp, sinh, oi4);
|
||||
check_uop(mpfp, sinh, oi5);
|
||||
check_uop(mpfp, sinh, oi6);
|
||||
check_uop(mpfp, sinh, oi7);
|
||||
check_uop(mpfp, sinh, oi8);
|
||||
check_uop(mpfp, sinh, oi9);
|
||||
check_uop(mpfp, sinh, oi10);
|
||||
check_uop(mpfp, sinh, oi11);
|
||||
check_uop(mpfp, sinh, oi12);
|
||||
check_uop(mpfp, sinh, oi13);
|
||||
check_uop(mpfp, sinh, oi14);
|
||||
check_uop(mpfp, sinh, oi15);
|
||||
check_uop(mpfp, sinh, inf);
|
||||
check_uop(mpfp, sinh, ozero_pinf);
|
||||
check_uop(mpfp, sinh, ozero_ninf);
|
||||
check_uop(mpfp, sinh, czero_pinf);
|
||||
check_uop(mpfp, sinh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(cosh, i1);
|
||||
check_uop(cosh, i2);
|
||||
check_uop(cosh, i3);
|
||||
check_uop(cosh, i4);
|
||||
check_uop(cosh, i5);
|
||||
check_uop(cosh, i6);
|
||||
check_uop(cosh, i7);
|
||||
check_uop(cosh, i8);
|
||||
check_uop(cosh, i9);
|
||||
check_uop(cosh, i10);
|
||||
check_uop(cosh, oi1);
|
||||
check_uop(cosh, oi2);
|
||||
check_uop(cosh, oi3);
|
||||
check_uop(cosh, oi4);
|
||||
check_uop(cosh, oi5);
|
||||
check_uop(cosh, oi6);
|
||||
check_uop(cosh, oi7);
|
||||
check_uop(cosh, oi8);
|
||||
check_uop(cosh, oi9);
|
||||
check_uop(cosh, oi10);
|
||||
check_uop(cosh, inf);
|
||||
check_uop(cosh, ozero_pinf);
|
||||
check_uop(cosh, ozero_ninf);
|
||||
check_uop(cosh, czero_pinf);
|
||||
check_uop(cosh, czero_ninf);
|
||||
check_uop(mpfp, cosh, i1);
|
||||
check_uop(mpfp, cosh, i2);
|
||||
check_uop(mpfp, cosh, i3);
|
||||
check_uop(mpfp, cosh, i4);
|
||||
check_uop(mpfp, cosh, i5);
|
||||
check_uop(mpfp, cosh, i6);
|
||||
check_uop(mpfp, cosh, i7);
|
||||
check_uop(mpfp, cosh, i8);
|
||||
check_uop(mpfp, cosh, i9);
|
||||
check_uop(mpfp, cosh, i10);
|
||||
check_uop(mpfp, cosh, i11);
|
||||
check_uop(mpfp, cosh, i12);
|
||||
check_uop(mpfp, cosh, i13);
|
||||
check_uop(mpfp, cosh, i14);
|
||||
check_uop(mpfp, cosh, i15);
|
||||
check_uop(mpfp, cosh, oi1);
|
||||
check_uop(mpfp, cosh, oi2);
|
||||
check_uop(mpfp, cosh, oi3);
|
||||
check_uop(mpfp, cosh, oi4);
|
||||
check_uop(mpfp, cosh, oi5);
|
||||
check_uop(mpfp, cosh, oi6);
|
||||
check_uop(mpfp, cosh, oi7);
|
||||
check_uop(mpfp, cosh, oi8);
|
||||
check_uop(mpfp, cosh, oi9);
|
||||
check_uop(mpfp, cosh, oi10);
|
||||
check_uop(mpfp, cosh, oi11);
|
||||
check_uop(mpfp, cosh, oi12);
|
||||
check_uop(mpfp, cosh, oi13);
|
||||
check_uop(mpfp, cosh, oi14);
|
||||
check_uop(mpfp, cosh, oi15);
|
||||
check_uop(mpfp, cosh, inf);
|
||||
check_uop(mpfp, cosh, ozero_pinf);
|
||||
check_uop(mpfp, cosh, ozero_ninf);
|
||||
check_uop(mpfp, cosh, czero_pinf);
|
||||
check_uop(mpfp, cosh, czero_ninf);
|
||||
|
||||
cout << "=====================" << endl;
|
||||
check_uop(tanh, i1);
|
||||
check_uop(tanh, i2);
|
||||
check_uop(tanh, i3);
|
||||
check_uop(tanh, i4);
|
||||
check_uop(tanh, i5);
|
||||
check_uop(tanh, i6);
|
||||
check_uop(tanh, i7);
|
||||
check_uop(tanh, i8);
|
||||
check_uop(tanh, i9);
|
||||
check_uop(tanh, i10);
|
||||
check_uop(tanh, oi1);
|
||||
check_uop(tanh, oi2);
|
||||
check_uop(tanh, oi3);
|
||||
check_uop(tanh, oi4);
|
||||
check_uop(tanh, oi5);
|
||||
check_uop(tanh, oi6);
|
||||
check_uop(tanh, oi7);
|
||||
check_uop(tanh, oi8);
|
||||
check_uop(tanh, oi9);
|
||||
check_uop(tanh, oi10);
|
||||
check_uop(tanh, inf);
|
||||
check_uop(tanh, ozero_pinf);
|
||||
check_uop(tanh, ozero_ninf);
|
||||
check_uop(tanh, czero_pinf);
|
||||
check_uop(tanh, czero_ninf);
|
||||
check_uop(mpfp, tanh, i1);
|
||||
check_uop(mpfp, tanh, i2);
|
||||
check_uop(mpfp, tanh, i3);
|
||||
check_uop(mpfp, tanh, i4);
|
||||
check_uop(mpfp, tanh, i5);
|
||||
check_uop(mpfp, tanh, i6);
|
||||
check_uop(mpfp, tanh, i7);
|
||||
check_uop(mpfp, tanh, i8);
|
||||
check_uop(mpfp, tanh, i9);
|
||||
check_uop(mpfp, tanh, i10);
|
||||
check_uop(mpfp, tanh, i11);
|
||||
check_uop(mpfp, tanh, i12);
|
||||
check_uop(mpfp, tanh, i13);
|
||||
check_uop(mpfp, tanh, i14);
|
||||
check_uop(mpfp, tanh, i15);
|
||||
check_uop(mpfp, tanh, oi1);
|
||||
check_uop(mpfp, tanh, oi2);
|
||||
check_uop(mpfp, tanh, oi3);
|
||||
check_uop(mpfp, tanh, oi4);
|
||||
check_uop(mpfp, tanh, oi5);
|
||||
check_uop(mpfp, tanh, oi6);
|
||||
check_uop(mpfp, tanh, oi7);
|
||||
check_uop(mpfp, tanh, oi8);
|
||||
check_uop(mpfp, tanh, oi9);
|
||||
check_uop(mpfp, tanh, oi10);
|
||||
check_uop(mpfp, tanh, oi11);
|
||||
check_uop(mpfp, tanh, oi12);
|
||||
check_uop(mpfp, tanh, oi13);
|
||||
check_uop(mpfp, tanh, oi14);
|
||||
check_uop(mpfp, tanh, oi15);
|
||||
check_uop(mpfp, tanh, inf);
|
||||
check_uop(mpfp, tanh, ozero_pinf);
|
||||
check_uop(mpfp, tanh, ozero_ninf);
|
||||
check_uop(mpfp, tanh, czero_pinf);
|
||||
check_uop(mpfp, tanh, czero_ninf);
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
|
Loading…
Reference in a new issue