1*6897da5cSDirk Helbig /****************************************************************************** 2*6897da5cSDirk Helbig * 3*6897da5cSDirk Helbig * Copyright 2024 Google LLC 4*6897da5cSDirk Helbig * 5*6897da5cSDirk Helbig * Licensed under the Apache License, Version 2.0 (the "License"); 6*6897da5cSDirk Helbig * you may not use this file except in compliance with the License. 7*6897da5cSDirk Helbig * You may obtain a copy of the License at: 8*6897da5cSDirk Helbig * 9*6897da5cSDirk Helbig * http://www.apache.org/licenses/LICENSE-2.0 10*6897da5cSDirk Helbig * 11*6897da5cSDirk Helbig * Unless required by applicable law or agreed to in writing, software 12*6897da5cSDirk Helbig * distributed under the License is distributed on an "AS IS" BASIS, 13*6897da5cSDirk Helbig * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*6897da5cSDirk Helbig * See the License for the specific language governing permissions and 15*6897da5cSDirk Helbig * limitations under the License. 16*6897da5cSDirk Helbig * 17*6897da5cSDirk Helbig ******************************************************************************/ 18*6897da5cSDirk Helbig 19*6897da5cSDirk Helbig #ifndef __LC3_MATH_H 20*6897da5cSDirk Helbig #define __LC3_MATH_H 21*6897da5cSDirk Helbig 22*6897da5cSDirk Helbig #define INFINITY __builtin_inff() 23*6897da5cSDirk Helbig 24*6897da5cSDirk Helbig #define floorf __builtin_floorf 25*6897da5cSDirk Helbig #define truncf __builtin_truncf 26*6897da5cSDirk Helbig roundf(float x)27*6897da5cSDirk Helbigstatic inline float roundf(float x) 28*6897da5cSDirk Helbig { return x >= 0 ? truncf(x + 0.5f) : truncf(x - 0.5f); } 29*6897da5cSDirk Helbig 30*6897da5cSDirk Helbig #define fabsf __builtin_fabsf 31*6897da5cSDirk Helbig #define fmaxf __builtin_fmaxf 32*6897da5cSDirk Helbig #define fminf __builtin_fminf 33*6897da5cSDirk Helbig 34*6897da5cSDirk Helbig #define log10f __builtin_log10f 35*6897da5cSDirk Helbig #define sqrtf __builtin_sqrtf 36*6897da5cSDirk Helbig 37*6897da5cSDirk Helbig #endif /* __LC3_MATH_H */ 38