Lines Matching full:powf

1 //===-- Unittests for powf ------------------------------------------------===//
11 #include "src/math/powf.h"
37 inf, LIBC_NAMESPACE::powf(zero, neg_odd_integer), FE_DIVBYZERO);
39 inf, LIBC_NAMESPACE::powf(zero, neg_even_integer), FE_DIVBYZERO);
41 inf, LIBC_NAMESPACE::powf(zero, neg_non_integer), FE_DIVBYZERO);
42 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(zero, pos_odd_integer));
43 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(zero, pos_even_integer));
44 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(zero, pos_non_integer));
45 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(zero, one_half));
46 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(zero, zero));
47 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(zero, neg_zero));
48 EXPECT_FP_EQ(0.0f, LIBC_NAMESPACE::powf(zero, inf));
49 EXPECT_FP_EQ_WITH_EXCEPTION(inf, LIBC_NAMESPACE::powf(zero, neg_inf),
51 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(zero, aNaN));
55 neg_inf, LIBC_NAMESPACE::powf(neg_zero, neg_odd_integer), FE_DIVBYZERO);
57 inf, LIBC_NAMESPACE::powf(neg_zero, neg_even_integer), FE_DIVBYZERO);
59 inf, LIBC_NAMESPACE::powf(neg_zero, neg_non_integer), FE_DIVBYZERO);
60 EXPECT_FP_EQ(neg_zero, LIBC_NAMESPACE::powf(neg_zero, pos_odd_integer));
61 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_zero, pos_even_integer));
62 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_zero, pos_non_integer));
63 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_zero, one_half));
64 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(neg_zero, zero));
65 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(neg_zero, neg_zero));
66 EXPECT_FP_EQ(0.0f, LIBC_NAMESPACE::powf(neg_zero, inf));
67 EXPECT_FP_EQ_WITH_EXCEPTION(inf, LIBC_NAMESPACE::powf(neg_zero, neg_inf),
69 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(neg_zero, aNaN));
72 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, zero));
73 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, neg_zero));
74 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, 1.0f));
75 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, -1.0f));
76 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, neg_odd_integer));
77 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, neg_even_integer));
78 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, neg_non_integer));
79 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, pos_odd_integer));
80 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, pos_even_integer));
81 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, pos_non_integer));
82 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, inf));
83 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, neg_inf));
84 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(1.0f, aNaN));
87 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, zero));
88 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, neg_zero));
89 EXPECT_FP_EQ(-1.0f, LIBC_NAMESPACE::powf(-1.0f, 1.0f));
90 EXPECT_FP_EQ(-1.0f, LIBC_NAMESPACE::powf(-1.0f, -1.0f));
91 EXPECT_FP_EQ(-1.0f, LIBC_NAMESPACE::powf(-1.0f, neg_odd_integer));
92 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, neg_even_integer));
94 LIBC_NAMESPACE::powf(-1.0f, neg_non_integer), FE_INVALID);
95 EXPECT_FP_EQ(-1.0f, LIBC_NAMESPACE::powf(-1.0f, pos_odd_integer));
96 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, pos_even_integer));
98 LIBC_NAMESPACE::powf(-1.0f, pos_non_integer), FE_INVALID);
99 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, inf));
100 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(-1.0f, neg_inf));
101 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(-1.0f, aNaN));
104 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(inf, zero));
105 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(inf, neg_zero));
106 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, 1.0f));
107 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(inf, -1.0f));
108 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(inf, neg_odd_integer));
109 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(inf, neg_even_integer));
110 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(inf, neg_non_integer));
111 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, pos_odd_integer));
112 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, pos_even_integer));
113 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, pos_non_integer));
114 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, one_half));
115 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(inf, inf));
116 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(inf, neg_inf));
117 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(inf, aNaN));
120 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(neg_inf, zero));
121 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(neg_inf, neg_zero));
122 EXPECT_FP_EQ(neg_inf, LIBC_NAMESPACE::powf(neg_inf, 1.0f));
123 EXPECT_FP_EQ(neg_zero, LIBC_NAMESPACE::powf(neg_inf, -1.0f));
124 EXPECT_FP_EQ(neg_zero, LIBC_NAMESPACE::powf(neg_inf, neg_odd_integer));
125 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_inf, neg_even_integer));
126 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_inf, neg_non_integer));
127 EXPECT_FP_EQ(neg_inf, LIBC_NAMESPACE::powf(neg_inf, pos_odd_integer));
128 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(neg_inf, pos_even_integer));
129 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(neg_inf, pos_non_integer));
130 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(neg_inf, one_half));
131 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(neg_inf, inf));
132 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(neg_inf, neg_inf));
133 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(neg_inf, aNaN));
136 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(aNaN, zero));
137 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(aNaN, neg_zero));
138 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, 1.0f));
139 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, -1.0f));
140 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, neg_odd_integer));
141 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, neg_even_integer));
142 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, neg_non_integer));
143 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, pos_odd_integer));
144 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, pos_even_integer));
145 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, pos_non_integer));
146 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, inf));
147 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, neg_inf));
148 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(aNaN, aNaN));
151 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(0.1f, inf));
152 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(-0.1f, inf));
153 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(1.1f, inf));
154 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(-1.1f, inf));
157 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(0.1f, neg_inf));
158 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::powf(-0.1f, neg_inf));
159 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(1.1f, neg_inf));
160 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::powf(-1.1f, neg_inf));
163 EXPECT_FP_EQ(0x1.0p15f, LIBC_NAMESPACE::powf(2.0f, 15.0f));
164 EXPECT_FP_EQ(0x1.0p126f, LIBC_NAMESPACE::powf(2.0f, 126.0f));
165 EXPECT_FP_EQ(0x1.0p-45f, LIBC_NAMESPACE::powf(2.0f, -45.0f));
166 EXPECT_FP_EQ(0x1.0p-126f, LIBC_NAMESPACE::powf(2.0f, -126.0f));
167 EXPECT_FP_EQ(0x1.0p-149f, LIBC_NAMESPACE::powf(2.0f, -149.0f));
170 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(10.0f, 0.0f));
171 EXPECT_FP_EQ(10.0f, LIBC_NAMESPACE::powf(10.0f, 1.0f));
172 EXPECT_FP_EQ(100.0f, LIBC_NAMESPACE::powf(10.0f, 2.0f));
173 EXPECT_FP_EQ(1000.0f, LIBC_NAMESPACE::powf(10.0f, 3.0f));
174 EXPECT_FP_EQ(10000.0f, LIBC_NAMESPACE::powf(10.0f, 4.0f));
175 EXPECT_FP_EQ(100000.0f, LIBC_NAMESPACE::powf(10.0f, 5.0f));
176 EXPECT_FP_EQ(1000000.0f, LIBC_NAMESPACE::powf(10.0f, 6.0f));
177 EXPECT_FP_EQ(10000000.0f, LIBC_NAMESPACE::powf(10.0f, 7.0f));
178 EXPECT_FP_EQ(100000000.0f, LIBC_NAMESPACE::powf(10.0f, 8.0f));
179 EXPECT_FP_EQ(1000000000.0f, LIBC_NAMESPACE::powf(10.0f, 9.0f));
180 EXPECT_FP_EQ(10000000000.0f, LIBC_NAMESPACE::powf(10.0f, 10.0f));
185 EXPECT_FP_EQ_WITH_EXCEPTION(inf, LIBC_NAMESPACE::powf(3.1f, 201.0f),
189 EXPECT_FP_EQ_WITH_EXCEPTION(0.0f, LIBC_NAMESPACE::powf(3.1f, -201.0f),
194 EXPECT_FP_EQ(-0.0f, LIBC_NAMESPACE::powf(-0.015625f, 25.0f));
195 EXPECT_FP_EQ(0.0f, LIBC_NAMESPACE::powf(-0.015625f, 26.0f));
205 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::powf(-min_denormal, 0.5f));
206 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(2.0f, min_denormal));
212 EXPECT_FP_EQ(0.0f, LIBC_NAMESPACE::powf(-min_denormal, 0.5f));
213 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(2.0f, min_denormal));
219 EXPECT_FP_EQ(0.0f, LIBC_NAMESPACE::powf(-min_denormal, 0.5f));
220 EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::powf(2.0f, min_denormal));