xref: /aosp_15_r20/external/musl/src/math/powf_data.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker /*
2*c9945492SAndroid Build Coastguard Worker  * Copyright (c) 2017-2018, Arm Limited.
3*c9945492SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*c9945492SAndroid Build Coastguard Worker  */
5*c9945492SAndroid Build Coastguard Worker #ifndef _POWF_DATA_H
6*c9945492SAndroid Build Coastguard Worker #define _POWF_DATA_H
7*c9945492SAndroid Build Coastguard Worker 
8*c9945492SAndroid Build Coastguard Worker #include "libm.h"
9*c9945492SAndroid Build Coastguard Worker #include "exp2f_data.h"
10*c9945492SAndroid Build Coastguard Worker 
11*c9945492SAndroid Build Coastguard Worker #define POWF_LOG2_TABLE_BITS 4
12*c9945492SAndroid Build Coastguard Worker #define POWF_LOG2_POLY_ORDER 5
13*c9945492SAndroid Build Coastguard Worker #if TOINT_INTRINSICS
14*c9945492SAndroid Build Coastguard Worker #define POWF_SCALE_BITS EXP2F_TABLE_BITS
15*c9945492SAndroid Build Coastguard Worker #else
16*c9945492SAndroid Build Coastguard Worker #define POWF_SCALE_BITS 0
17*c9945492SAndroid Build Coastguard Worker #endif
18*c9945492SAndroid Build Coastguard Worker #define POWF_SCALE ((double)(1 << POWF_SCALE_BITS))
19*c9945492SAndroid Build Coastguard Worker extern hidden const struct powf_log2_data {
20*c9945492SAndroid Build Coastguard Worker 	struct {
21*c9945492SAndroid Build Coastguard Worker 		double invc, logc;
22*c9945492SAndroid Build Coastguard Worker 	} tab[1 << POWF_LOG2_TABLE_BITS];
23*c9945492SAndroid Build Coastguard Worker 	double poly[POWF_LOG2_POLY_ORDER];
24*c9945492SAndroid Build Coastguard Worker } __powf_log2_data;
25*c9945492SAndroid Build Coastguard Worker 
26*c9945492SAndroid Build Coastguard Worker #endif
27