rsimd

Make SIMD instruction sets easier to use
git clone git://git.meso-star.fr/rsimd.git
Log | Files | Refs | README | LICENSE

mathX.h (2544B)


      1 /* Copyright (C) 2014-2019, 2021, 2023, 2025 Vincent Forest (vaplv@free.fr)
      2  *
      3  * The RSIMD library is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published
      5  * by the Free Software Foundation, either version 3 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * The RSIMD library is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with the RSIMD library. If not, see <http://www.gnu.org/licenses/>. */
     15 
     16 #include "rsimd.h"
     17 
     18 RSIMD_API RSIMD_vXf_T__
     19 RSIMD_vXf__(copysign)
     20   (const RSIMD_vXf_T__ x,
     21    const RSIMD_vXf_T__ y);
     22 
     23 RSIMD_API RSIMD_vXf_T__
     24 RSIMD_vXf__(floor)
     25   (const RSIMD_vXf_T__ x);
     26 
     27 RSIMD_API RSIMD_vXf_T__
     28 RSIMD_vXf__(pow)
     29   (const RSIMD_vXf_T__ x,
     30    const RSIMD_vXf_T__ y);
     31 
     32 /*******************************************************************************
     33  * Exponentatial functions
     34  ******************************************************************************/
     35 RSIMD_API RSIMD_vXf_T__
     36 RSIMD_vXf__(exp2)
     37   (const RSIMD_vXf_T__ x);
     38 
     39 RSIMD_API RSIMD_vXf_T__
     40 RSIMD_vXf__(exp)
     41   (const RSIMD_vXf_T__ x);
     42 
     43 RSIMD_API RSIMD_vXf_T__
     44 RSIMD_vXf__(exp10)
     45   (const RSIMD_vXf_T__ x);
     46 
     47 /*******************************************************************************
     48  * Log functions
     49  ******************************************************************************/
     50 RSIMD_API RSIMD_vXf_T__
     51 RSIMD_vXf__(log2)
     52   (const RSIMD_vXf_T__ x);
     53 
     54 RSIMD_API RSIMD_vXf_T__
     55 RSIMD_vXf__(log)
     56   (const RSIMD_vXf_T__ x);
     57 
     58 RSIMD_API RSIMD_vXf_T__
     59 RSIMD_vXf__(log10)
     60   (const RSIMD_vXf_T__ x);
     61 
     62 /*******************************************************************************
     63  * Trigonometric functions
     64  ******************************************************************************/
     65 RSIMD_API RSIMD_vXf_T__
     66 RSIMD_vXf__(sin)
     67   (const RSIMD_vXf_T__ v);
     68 
     69 RSIMD_API RSIMD_vXf_T__
     70 RSIMD_vXf__(asin)
     71   (const RSIMD_vXf_T__ v);
     72 
     73 RSIMD_API RSIMD_vXf_T__
     74 RSIMD_vXf__(cos)
     75   (const RSIMD_vXf_T__ v);
     76 
     77 RSIMD_API RSIMD_vXf_T__
     78 RSIMD_vXf__(acos)
     79   (const RSIMD_vXf_T__ v);
     80 
     81 RSIMD_API void
     82 RSIMD_vXf__(sincos)
     83   (const RSIMD_vXf_T__ v,
     84    RSIMD_vXf_T__* RESTRICT s,
     85    RSIMD_vXf_T__* RESTRICT c);
     86 
     87 RSIMD_API RSIMD_vXf_T__
     88 RSIMD_vXf__(tan)
     89   (const RSIMD_vXf_T__ v);
     90 
     91 RSIMD_API RSIMD_vXf_T__
     92 RSIMD_vXf__(atan)
     93   (const RSIMD_vXf_T__ v);