1*c9945492SAndroid Build Coastguard Worker /* 2*c9945492SAndroid Build Coastguard Worker * Copyright (c) 2018, Arm Limited. 3*c9945492SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 4*c9945492SAndroid Build Coastguard Worker */ 5*c9945492SAndroid Build Coastguard Worker #ifndef _LOG2_DATA_H 6*c9945492SAndroid Build Coastguard Worker #define _LOG2_DATA_H 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #include <features.h> 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker #define LOG2_TABLE_BITS 6 11*c9945492SAndroid Build Coastguard Worker #define LOG2_POLY_ORDER 7 12*c9945492SAndroid Build Coastguard Worker #define LOG2_POLY1_ORDER 11 13*c9945492SAndroid Build Coastguard Worker extern hidden const struct log2_data { 14*c9945492SAndroid Build Coastguard Worker double invln2hi; 15*c9945492SAndroid Build Coastguard Worker double invln2lo; 16*c9945492SAndroid Build Coastguard Worker double poly[LOG2_POLY_ORDER - 1]; 17*c9945492SAndroid Build Coastguard Worker double poly1[LOG2_POLY1_ORDER - 1]; 18*c9945492SAndroid Build Coastguard Worker struct { 19*c9945492SAndroid Build Coastguard Worker double invc, logc; 20*c9945492SAndroid Build Coastguard Worker } tab[1 << LOG2_TABLE_BITS]; 21*c9945492SAndroid Build Coastguard Worker #if !__FP_FAST_FMA 22*c9945492SAndroid Build Coastguard Worker struct { 23*c9945492SAndroid Build Coastguard Worker double chi, clo; 24*c9945492SAndroid Build Coastguard Worker } tab2[1 << LOG2_TABLE_BITS]; 25*c9945492SAndroid Build Coastguard Worker #endif 26*c9945492SAndroid Build Coastguard Worker } __log2_data; 27*c9945492SAndroid Build Coastguard Worker 28*c9945492SAndroid Build Coastguard Worker #endif 29