1 /* $NetBSD: t_log.c,v 1.12 2014/11/04 00:20:19 justin Exp $ */
4 * Copyright (c) 2011 The NetBSD Foundation, Inc.
7 * This code is derived from software contributed to The NetBSD Foundation
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
31 #include <sys/cdefs.h>
32 __RCSID("$NetBSD: t_log.c,v 1.12 2014/11/04 00:20:19 justin Exp $");
44 ATF_TC_HEAD(log10_base, tc)
46 atf_tc_set_md_var(tc, "descr", "Test log10(10) == 1");
49 ATF_TC_BODY(log10_base, tc)
51 ATF_CHECK(log10(10.0) == 1.0);
55 ATF_TC_HEAD(log10_nan, tc)
57 atf_tc_set_md_var(tc, "descr", "Test log10(NaN) == NaN");
60 ATF_TC_BODY(log10_nan, tc)
62 const double x = 0.0L / 0.0L;
64 ATF_CHECK(isnan(x) != 0);
65 ATF_CHECK(isnan(log10(x)) != 0);
68 ATF_TC(log10_inf_neg);
69 ATF_TC_HEAD(log10_inf_neg, tc)
71 atf_tc_set_md_var(tc, "descr", "Test log10(-Inf) == NaN");
74 ATF_TC_BODY(log10_inf_neg, tc)
76 const double x = -1.0L / 0.0L;
77 const double y = log10(x);
79 ATF_CHECK(isnan(y) != 0);
82 ATF_TC(log10_inf_pos);
83 ATF_TC_HEAD(log10_inf_pos, tc)
85 atf_tc_set_md_var(tc, "descr", "Test log10(+Inf) == +Inf");
88 ATF_TC_BODY(log10_inf_pos, tc)
90 const double x = 1.0L / 0.0L;
92 ATF_CHECK(log10(x) == x);
95 ATF_TC(log10_one_pos);
96 ATF_TC_HEAD(log10_one_pos, tc)
98 atf_tc_set_md_var(tc, "descr", "Test log10(1.0) == +0.0");
101 ATF_TC_BODY(log10_one_pos, tc)
103 const double x = log10(1.0);
104 const double y = 0.0L;
107 ATF_CHECK(signbit(x) == 0);
108 ATF_CHECK(signbit(y) == 0);
111 ATF_TC(log10_zero_neg);
112 ATF_TC_HEAD(log10_zero_neg, tc)
114 atf_tc_set_md_var(tc, "descr", "Test log10(-0.0) == -HUGE_VAL");
117 ATF_TC_BODY(log10_zero_neg, tc)
119 const double x = -0.0L;
121 ATF_CHECK(log10(x) == -HUGE_VAL);
124 ATF_TC(log10_zero_pos);
125 ATF_TC_HEAD(log10_zero_pos, tc)
127 atf_tc_set_md_var(tc, "descr", "Test log10(+0.0) == -HUGE_VAL");
130 ATF_TC_BODY(log10_zero_pos, tc)
132 const double x = 0.0L;
134 ATF_CHECK(log10(x) == -HUGE_VAL);
141 ATF_TC_HEAD(log10f_base, tc)
143 atf_tc_set_md_var(tc, "descr", "Test log10f(10) == 1");
146 ATF_TC_BODY(log10f_base, tc)
148 ATF_CHECK(log10f(10.0) == 1.0);
152 ATF_TC_HEAD(log10f_nan, tc)
154 atf_tc_set_md_var(tc, "descr", "Test log10f(NaN) == NaN");
157 ATF_TC_BODY(log10f_nan, tc)
159 const float x = 0.0L / 0.0L;
161 ATF_CHECK(isnan(x) != 0);
162 ATF_CHECK(isnan(log10f(x)) != 0);
165 ATF_TC(log10f_inf_neg);
166 ATF_TC_HEAD(log10f_inf_neg, tc)
168 atf_tc_set_md_var(tc, "descr", "Test log10f(-Inf) == NaN");
171 ATF_TC_BODY(log10f_inf_neg, tc)
173 const float x = -1.0L / 0.0L;
174 const float y = log10f(x);
176 ATF_CHECK(isnan(y) != 0);
179 ATF_TC(log10f_inf_pos);
180 ATF_TC_HEAD(log10f_inf_pos, tc)
182 atf_tc_set_md_var(tc, "descr", "Test log10f(+Inf) == +Inf");
185 ATF_TC_BODY(log10f_inf_pos, tc)
187 const float x = 1.0L / 0.0L;
189 #if defined(__alpha__)
190 atf_tc_expect_fail("PR port-alpha/46301");
193 ATF_CHECK(log10f(x) == x);
196 ATF_TC(log10f_one_pos);
197 ATF_TC_HEAD(log10f_one_pos, tc)
199 atf_tc_set_md_var(tc, "descr", "Test log10f(1.0) == +0.0");
202 ATF_TC_BODY(log10f_one_pos, tc)
204 const float x = log10f(1.0);
205 const float y = 0.0L;
208 ATF_CHECK(signbit(x) == 0);
209 ATF_CHECK(signbit(y) == 0);
212 ATF_TC(log10f_zero_neg);
213 ATF_TC_HEAD(log10f_zero_neg, tc)
215 atf_tc_set_md_var(tc, "descr", "Test log10f(-0.0) == -HUGE_VALF");
218 ATF_TC_BODY(log10f_zero_neg, tc)
220 const float x = -0.0L;
222 ATF_CHECK(log10f(x) == -HUGE_VALF);
225 ATF_TC(log10f_zero_pos);
226 ATF_TC_HEAD(log10f_zero_pos, tc)
228 atf_tc_set_md_var(tc, "descr", "Test log10f(+0.0) == -HUGE_VALF");
231 ATF_TC_BODY(log10f_zero_pos, tc)
233 const float x = 0.0L;
235 ATF_CHECK(log10f(x) == -HUGE_VALF);
242 ATF_TC_HEAD(log1p_nan, tc)
244 atf_tc_set_md_var(tc, "descr", "Test log1p(NaN) == NaN");
247 ATF_TC_BODY(log1p_nan, tc)
249 const double x = 0.0L / 0.0L;
251 ATF_CHECK(isnan(x) != 0);
252 ATF_CHECK(isnan(log1p(x)) != 0);
255 ATF_TC(log1p_inf_neg);
256 ATF_TC_HEAD(log1p_inf_neg, tc)
258 atf_tc_set_md_var(tc, "descr", "Test log1p(-Inf) == NaN");
261 ATF_TC_BODY(log1p_inf_neg, tc)
263 const double x = -1.0L / 0.0L;
264 const double y = log1p(x);
267 atf_tc_expect_fail("PR lib/45362");
268 atf_tc_fail("log1p(-Inf) != NaN");
272 ATF_TC(log1p_inf_pos);
273 ATF_TC_HEAD(log1p_inf_pos, tc)
275 atf_tc_set_md_var(tc, "descr", "Test log1p(+Inf) == +Inf");
278 ATF_TC_BODY(log1p_inf_pos, tc)
280 const double x = 1.0L / 0.0L;
282 ATF_CHECK(log1p(x) == x);
285 ATF_TC(log1p_one_neg);
286 ATF_TC_HEAD(log1p_one_neg, tc)
288 atf_tc_set_md_var(tc, "descr", "Test log1p(-1.0) == -HUGE_VAL");
291 ATF_TC_BODY(log1p_one_neg, tc)
293 const double x = log1p(-1.0);
295 if (x != -HUGE_VAL) {
296 atf_tc_expect_fail("PR lib/45362");
297 atf_tc_fail("log1p(-1.0) != -HUGE_VAL");
301 ATF_TC(log1p_zero_neg);
302 ATF_TC_HEAD(log1p_zero_neg, tc)
304 atf_tc_set_md_var(tc, "descr", "Test log1p(-0.0) == -0.0");
307 ATF_TC_BODY(log1p_zero_neg, tc)
309 const double x = -0.0L;
311 ATF_CHECK(log1p(x) == x);
314 ATF_TC(log1p_zero_pos);
315 ATF_TC_HEAD(log1p_zero_pos, tc)
317 atf_tc_set_md_var(tc, "descr", "Test log1p(+0.0) == +0.0");
320 ATF_TC_BODY(log1p_zero_pos, tc)
322 const double x = 0.0L;
324 ATF_CHECK(log1p(x) == x);
331 ATF_TC_HEAD(log1pf_nan, tc)
333 atf_tc_set_md_var(tc, "descr", "Test log1pf(NaN) == NaN");
336 ATF_TC_BODY(log1pf_nan, tc)
338 const float x = 0.0L / 0.0L;
340 ATF_CHECK(isnan(x) != 0);
341 ATF_CHECK(isnan(log1pf(x)) != 0);
344 ATF_TC(log1pf_inf_neg);
345 ATF_TC_HEAD(log1pf_inf_neg, tc)
347 atf_tc_set_md_var(tc, "descr", "Test log1pf(-Inf) == NaN");
350 ATF_TC_BODY(log1pf_inf_neg, tc)
352 const float x = -1.0L / 0.0L;
353 const float y = log1pf(x);
356 atf_tc_expect_fail("PR lib/45362");
357 atf_tc_fail("log1pf(-Inf) != NaN");
361 ATF_TC(log1pf_inf_pos);
362 ATF_TC_HEAD(log1pf_inf_pos, tc)
364 atf_tc_set_md_var(tc, "descr", "Test log1pf(+Inf) == +Inf");
367 ATF_TC_BODY(log1pf_inf_pos, tc)
369 const float x = 1.0L / 0.0L;
371 ATF_CHECK(log1pf(x) == x);
374 ATF_TC(log1pf_one_neg);
375 ATF_TC_HEAD(log1pf_one_neg, tc)
377 atf_tc_set_md_var(tc, "descr", "Test log1pf(-1.0) == -HUGE_VALF");
380 ATF_TC_BODY(log1pf_one_neg, tc)
382 const float x = log1pf(-1.0);
384 if (x != -HUGE_VALF) {
385 atf_tc_expect_fail("PR lib/45362");
386 atf_tc_fail("log1pf(-1.0) != -HUGE_VALF");
390 ATF_TC(log1pf_zero_neg);
391 ATF_TC_HEAD(log1pf_zero_neg, tc)
393 atf_tc_set_md_var(tc, "descr", "Test log1pf(-0.0) == -0.0");
396 ATF_TC_BODY(log1pf_zero_neg, tc)
398 const float x = -0.0L;
400 ATF_CHECK(log1pf(x) == x);
403 ATF_TC(log1pf_zero_pos);
404 ATF_TC_HEAD(log1pf_zero_pos, tc)
406 atf_tc_set_md_var(tc, "descr", "Test log1pf(+0.0) == +0.0");
409 ATF_TC_BODY(log1pf_zero_pos, tc)
411 const float x = 0.0L;
413 ATF_CHECK(log1pf(x) == x);
420 ATF_TC_HEAD(log2_base, tc)
422 atf_tc_set_md_var(tc, "descr", "Test log2(2) == 1");
425 ATF_TC_BODY(log2_base, tc)
427 ATF_CHECK(log2(2.0) == 1.0);
431 ATF_TC_HEAD(log2_nan, tc)
433 atf_tc_set_md_var(tc, "descr", "Test log2(NaN) == NaN");
436 ATF_TC_BODY(log2_nan, tc)
438 const double x = 0.0L / 0.0L;
440 ATF_CHECK(isnan(x) != 0);
441 ATF_CHECK(isnan(log2(x)) != 0);
444 ATF_TC(log2_inf_neg);
445 ATF_TC_HEAD(log2_inf_neg, tc)
447 atf_tc_set_md_var(tc, "descr", "Test log2(-Inf) == NaN");
450 ATF_TC_BODY(log2_inf_neg, tc)
452 const double x = -1.0L / 0.0L;
453 const double y = log2(x);
455 ATF_CHECK(isnan(y) != 0);
458 ATF_TC(log2_inf_pos);
459 ATF_TC_HEAD(log2_inf_pos, tc)
461 atf_tc_set_md_var(tc, "descr", "Test log2(+Inf) == +Inf");
464 ATF_TC_BODY(log2_inf_pos, tc)
466 const double x = 1.0L / 0.0L;
468 ATF_CHECK(log2(x) == x);
471 ATF_TC(log2_one_pos);
472 ATF_TC_HEAD(log2_one_pos, tc)
474 atf_tc_set_md_var(tc, "descr", "Test log2(1.0) == +0.0");
477 ATF_TC_BODY(log2_one_pos, tc)
479 const double x = log2(1.0);
480 const double y = 0.0L;
483 ATF_CHECK(signbit(x) == 0);
484 ATF_CHECK(signbit(y) == 0);
487 ATF_TC(log2_zero_neg);
488 ATF_TC_HEAD(log2_zero_neg, tc)
490 atf_tc_set_md_var(tc, "descr", "Test log2(-0.0) == -HUGE_VAL");
493 ATF_TC_BODY(log2_zero_neg, tc)
495 const double x = -0.0L;
497 ATF_CHECK(log2(x) == -HUGE_VAL);
500 ATF_TC(log2_zero_pos);
501 ATF_TC_HEAD(log2_zero_pos, tc)
503 atf_tc_set_md_var(tc, "descr", "Test log2(+0.0) == -HUGE_VAL");
506 ATF_TC_BODY(log2_zero_pos, tc)
508 const double x = 0.0L;
510 ATF_CHECK(log2(x) == -HUGE_VAL);
517 ATF_TC_HEAD(log2f_base, tc)
519 atf_tc_set_md_var(tc, "descr", "Test log2f(2) == 1");
522 ATF_TC_BODY(log2f_base, tc)
524 ATF_CHECK(log2f(2.0) == 1.0);
528 ATF_TC_HEAD(log2f_nan, tc)
530 atf_tc_set_md_var(tc, "descr", "Test log2f(NaN) == NaN");
533 ATF_TC_BODY(log2f_nan, tc)
535 const float x = 0.0L / 0.0L;
537 ATF_CHECK(isnan(x) != 0);
538 ATF_CHECK(isnan(log2f(x)) != 0);
541 ATF_TC(log2f_inf_neg);
542 ATF_TC_HEAD(log2f_inf_neg, tc)
544 atf_tc_set_md_var(tc, "descr", "Test log2f(-Inf) == NaN");
547 ATF_TC_BODY(log2f_inf_neg, tc)
549 const float x = -1.0L / 0.0L;
550 const float y = log2f(x);
552 ATF_CHECK(isnan(y) != 0);
555 ATF_TC(log2f_inf_pos);
556 ATF_TC_HEAD(log2f_inf_pos, tc)
558 atf_tc_set_md_var(tc, "descr", "Test log2f(+Inf) == +Inf");
561 ATF_TC_BODY(log2f_inf_pos, tc)
563 const float x = 1.0L / 0.0L;
565 #if defined(__alpha__)
566 atf_tc_expect_fail("PR port-alpha/46301");
569 ATF_CHECK(log2f(x) == x);
572 ATF_TC(log2f_one_pos);
573 ATF_TC_HEAD(log2f_one_pos, tc)
575 atf_tc_set_md_var(tc, "descr", "Test log2f(1.0) == +0.0");
578 ATF_TC_BODY(log2f_one_pos, tc)
580 const float x = log2f(1.0);
581 const float y = 0.0L;
584 ATF_CHECK(signbit(x) == 0);
585 ATF_CHECK(signbit(y) == 0);
588 ATF_TC(log2f_zero_neg);
589 ATF_TC_HEAD(log2f_zero_neg, tc)
591 atf_tc_set_md_var(tc, "descr", "Test log2f(-0.0) == -HUGE_VALF");
594 ATF_TC_BODY(log2f_zero_neg, tc)
596 const float x = -0.0L;
598 ATF_CHECK(log2f(x) == -HUGE_VALF);
601 ATF_TC(log2f_zero_pos);
602 ATF_TC_HEAD(log2f_zero_pos, tc)
604 atf_tc_set_md_var(tc, "descr", "Test log2f(+0.0) == -HUGE_VALF");
607 ATF_TC_BODY(log2f_zero_pos, tc)
609 const float x = 0.0L;
611 ATF_CHECK(log2f(x) == -HUGE_VALF);
618 ATF_TC_HEAD(log_base, tc)
620 atf_tc_set_md_var(tc, "descr", "Test log(e) == 1");
623 ATF_TC_BODY(log_base, tc)
625 const double eps = 1.0e-38;
627 if (fabs(log(M_E) - 1.0) > eps)
628 atf_tc_fail_nonfatal("log(e) != 1");
632 ATF_TC_HEAD(log_nan, tc)
634 atf_tc_set_md_var(tc, "descr", "Test log(NaN) == NaN");
637 ATF_TC_BODY(log_nan, tc)
639 const double x = 0.0L / 0.0L;
641 ATF_CHECK(isnan(x) != 0);
642 ATF_CHECK(isnan(log(x)) != 0);
646 ATF_TC_HEAD(log_inf_neg, tc)
648 atf_tc_set_md_var(tc, "descr", "Test log(-Inf) == NaN");
651 ATF_TC_BODY(log_inf_neg, tc)
653 const double x = -1.0L / 0.0L;
654 const double y = log(x);
656 ATF_CHECK(isnan(y) != 0);
660 ATF_TC_HEAD(log_inf_pos, tc)
662 atf_tc_set_md_var(tc, "descr", "Test log(+Inf) == +Inf");
665 ATF_TC_BODY(log_inf_pos, tc)
667 const double x = 1.0L / 0.0L;
669 ATF_CHECK(log(x) == x);
673 ATF_TC_HEAD(log_one_pos, tc)
675 atf_tc_set_md_var(tc, "descr", "Test log(1.0) == +0.0");
678 ATF_TC_BODY(log_one_pos, tc)
680 const double x = log(1.0);
681 const double y = 0.0L;
684 ATF_CHECK(signbit(x) == 0);
685 ATF_CHECK(signbit(y) == 0);
688 ATF_TC(log_zero_neg);
689 ATF_TC_HEAD(log_zero_neg, tc)
691 atf_tc_set_md_var(tc, "descr", "Test log(-0.0) == -HUGE_VAL");
694 ATF_TC_BODY(log_zero_neg, tc)
696 const double x = -0.0L;
698 ATF_CHECK(log(x) == -HUGE_VAL);
701 ATF_TC(log_zero_pos);
702 ATF_TC_HEAD(log_zero_pos, tc)
704 atf_tc_set_md_var(tc, "descr", "Test log(+0.0) == -HUGE_VAL");
707 ATF_TC_BODY(log_zero_pos, tc)
709 const double x = 0.0L;
711 ATF_CHECK(log(x) == -HUGE_VAL);
718 ATF_TC_HEAD(logf_base, tc)
720 atf_tc_set_md_var(tc, "descr", "Test logf(e) == 1");
723 ATF_TC_BODY(logf_base, tc)
725 const float eps = 1.0e-7;
727 if (fabsf(logf(M_E) - 1.0f) > eps)
728 atf_tc_fail_nonfatal("logf(e) != 1");
732 ATF_TC_HEAD(logf_nan, tc)
734 atf_tc_set_md_var(tc, "descr", "Test logf(NaN) == NaN");
737 ATF_TC_BODY(logf_nan, tc)
739 const float x = 0.0L / 0.0L;
741 ATF_CHECK(isnan(x) != 0);
742 ATF_CHECK(isnan(logf(x)) != 0);
745 ATF_TC(logf_inf_neg);
746 ATF_TC_HEAD(logf_inf_neg, tc)
748 atf_tc_set_md_var(tc, "descr", "Test logf(-Inf) == NaN");
751 ATF_TC_BODY(logf_inf_neg, tc)
753 const float x = -1.0L / 0.0L;
754 const float y = logf(x);
756 ATF_CHECK(isnan(y) != 0);
759 ATF_TC(logf_inf_pos);
760 ATF_TC_HEAD(logf_inf_pos, tc)
762 atf_tc_set_md_var(tc, "descr", "Test logf(+Inf) == +Inf");
765 ATF_TC_BODY(logf_inf_pos, tc)
767 const float x = 1.0L / 0.0L;
769 #if defined(__alpha__)
770 atf_tc_expect_fail("PR port-alpha/46301");
773 ATF_CHECK(logf(x) == x);
776 ATF_TC(logf_one_pos);
777 ATF_TC_HEAD(logf_one_pos, tc)
779 atf_tc_set_md_var(tc, "descr", "Test logf(1.0) == +0.0");
782 ATF_TC_BODY(logf_one_pos, tc)
784 const float x = logf(1.0);
785 const float y = 0.0L;
788 ATF_CHECK(signbit(x) == 0);
789 ATF_CHECK(signbit(y) == 0);
792 ATF_TC(logf_zero_neg);
793 ATF_TC_HEAD(logf_zero_neg, tc)
795 atf_tc_set_md_var(tc, "descr", "Test logf(-0.0) == -HUGE_VALF");
798 ATF_TC_BODY(logf_zero_neg, tc)
800 const float x = -0.0L;
802 ATF_CHECK(logf(x) == -HUGE_VALF);
805 ATF_TC(logf_zero_pos);
806 ATF_TC_HEAD(logf_zero_pos, tc)
808 atf_tc_set_md_var(tc, "descr", "Test logf(+0.0) == -HUGE_VALF");
811 ATF_TC_BODY(logf_zero_pos, tc)
813 const float x = 0.0L;
815 ATF_CHECK(logf(x) == -HUGE_VALF);
821 ATF_TP_ADD_TC(tp, log10_base);
822 ATF_TP_ADD_TC(tp, log10_nan);
823 ATF_TP_ADD_TC(tp, log10_inf_neg);
824 ATF_TP_ADD_TC(tp, log10_inf_pos);
825 ATF_TP_ADD_TC(tp, log10_one_pos);
826 ATF_TP_ADD_TC(tp, log10_zero_neg);
827 ATF_TP_ADD_TC(tp, log10_zero_pos);
829 ATF_TP_ADD_TC(tp, log10f_base);
830 ATF_TP_ADD_TC(tp, log10f_nan);
831 ATF_TP_ADD_TC(tp, log10f_inf_neg);
832 ATF_TP_ADD_TC(tp, log10f_inf_pos);
833 ATF_TP_ADD_TC(tp, log10f_one_pos);
834 ATF_TP_ADD_TC(tp, log10f_zero_neg);
835 ATF_TP_ADD_TC(tp, log10f_zero_pos);
837 ATF_TP_ADD_TC(tp, log1p_nan);
838 ATF_TP_ADD_TC(tp, log1p_inf_neg);
839 ATF_TP_ADD_TC(tp, log1p_inf_pos);
840 ATF_TP_ADD_TC(tp, log1p_one_neg);
841 ATF_TP_ADD_TC(tp, log1p_zero_neg);
842 ATF_TP_ADD_TC(tp, log1p_zero_pos);
844 ATF_TP_ADD_TC(tp, log1pf_nan);
845 ATF_TP_ADD_TC(tp, log1pf_inf_neg);
846 ATF_TP_ADD_TC(tp, log1pf_inf_pos);
847 ATF_TP_ADD_TC(tp, log1pf_one_neg);
848 ATF_TP_ADD_TC(tp, log1pf_zero_neg);
849 ATF_TP_ADD_TC(tp, log1pf_zero_pos);
851 ATF_TP_ADD_TC(tp, log2_base);
852 ATF_TP_ADD_TC(tp, log2_nan);
853 ATF_TP_ADD_TC(tp, log2_inf_neg);
854 ATF_TP_ADD_TC(tp, log2_inf_pos);
855 ATF_TP_ADD_TC(tp, log2_one_pos);
856 ATF_TP_ADD_TC(tp, log2_zero_neg);
857 ATF_TP_ADD_TC(tp, log2_zero_pos);
859 ATF_TP_ADD_TC(tp, log2f_base);
860 ATF_TP_ADD_TC(tp, log2f_nan);
861 ATF_TP_ADD_TC(tp, log2f_inf_neg);
862 ATF_TP_ADD_TC(tp, log2f_inf_pos);
863 ATF_TP_ADD_TC(tp, log2f_one_pos);
864 ATF_TP_ADD_TC(tp, log2f_zero_neg);
865 ATF_TP_ADD_TC(tp, log2f_zero_pos);
867 ATF_TP_ADD_TC(tp, log_base);
868 ATF_TP_ADD_TC(tp, log_nan);
869 ATF_TP_ADD_TC(tp, log_inf_neg);
870 ATF_TP_ADD_TC(tp, log_inf_pos);
871 ATF_TP_ADD_TC(tp, log_one_pos);
872 ATF_TP_ADD_TC(tp, log_zero_neg);
873 ATF_TP_ADD_TC(tp, log_zero_pos);
875 ATF_TP_ADD_TC(tp, logf_base);
876 ATF_TP_ADD_TC(tp, logf_nan);
877 ATF_TP_ADD_TC(tp, logf_inf_neg);
878 ATF_TP_ADD_TC(tp, logf_inf_pos);
879 ATF_TP_ADD_TC(tp, logf_one_pos);
880 ATF_TP_ADD_TC(tp, logf_zero_neg);
881 ATF_TP_ADD_TC(tp, logf_zero_pos);
883 return atf_no_error();