LCOV - code coverage report
Current view: directory - gfx/skia/include/core - SkFloatingPoint.h (source / functions) Found Hit Coverage
Test: app.info Lines: 6 0 0.0 %
Date: 2012-06-02 Functions: 2 0 0.0 %

       1                 : 
       2                 : /*
       3                 :  * Copyright 2006 The Android Open Source Project
       4                 :  *
       5                 :  * Use of this source code is governed by a BSD-style license that can be
       6                 :  * found in the LICENSE file.
       7                 :  */
       8                 : 
       9                 : 
      10                 : #ifndef SkFloatingPoint_DEFINED
      11                 : #define SkFloatingPoint_DEFINED
      12                 : 
      13                 : #include "SkTypes.h"
      14                 : 
      15                 : #ifdef SK_CAN_USE_FLOAT
      16                 : 
      17                 : #include <math.h>
      18                 : #include <float.h>
      19                 : #include "SkFloatBits.h"
      20                 : 
      21                 : // If math.h had powf(float, float), I could remove this wrapper
      22               0 : static inline float sk_float_pow(float base, float exp) {
      23                 :     return static_cast<float>(pow(static_cast<double>(base),
      24               0 :                                   static_cast<double>(exp)));
      25                 : }
      26                 : 
      27               0 : static inline float sk_float_copysign(float x, float y) {
      28               0 :     int32_t xbits = SkFloat2Bits(x);
      29               0 :     int32_t ybits = SkFloat2Bits(y);
      30               0 :     return SkBits2Float((xbits & 0x7FFFFFFF) | (ybits & 0x80000000));
      31                 : }
      32                 : 
      33                 : #ifdef SK_BUILD_FOR_WINCE
      34                 :     #define sk_float_sqrt(x)        (float)::sqrt(x)
      35                 :     #define sk_float_sin(x)         (float)::sin(x)
      36                 :     #define sk_float_cos(x)         (float)::cos(x)
      37                 :     #define sk_float_tan(x)         (float)::tan(x)
      38                 :     #define sk_float_acos(x)        (float)::acos(x)
      39                 :     #define sk_float_asin(x)        (float)::asin(x)
      40                 :     #define sk_float_atan2(y,x)     (float)::atan2(y,x)
      41                 :     #define sk_float_abs(x)         (float)::fabs(x)
      42                 :     #define sk_float_mod(x,y)       (float)::fmod(x,y)
      43                 :     #define sk_float_exp(x)         (float)::exp(x)
      44                 :     #define sk_float_log(x)         (float)::log(x)
      45                 :     #define sk_float_floor(x)       (float)::floor(x)
      46                 :     #define sk_float_ceil(x)        (float)::ceil(x)
      47                 : #else
      48                 :     #define sk_float_sqrt(x)        sqrtf(x)
      49                 :     #define sk_float_sin(x)         sinf(x)
      50                 :     #define sk_float_cos(x)         cosf(x)
      51                 :     #define sk_float_tan(x)         tanf(x)
      52                 :     #define sk_float_floor(x)       floorf(x)
      53                 :     #define sk_float_ceil(x)        ceilf(x)
      54                 : #ifdef SK_BUILD_FOR_MAC
      55                 :     #define sk_float_acos(x)        static_cast<float>(acos(x))
      56                 :     #define sk_float_asin(x)        static_cast<float>(asin(x))
      57                 : #else
      58                 :     #define sk_float_acos(x)        acosf(x)
      59                 :     #define sk_float_asin(x)        asinf(x)
      60                 : #endif
      61                 :     #define sk_float_atan2(y,x)     atan2f(y,x)
      62                 :     #define sk_float_abs(x)         fabsf(x)
      63                 :     #define sk_float_mod(x,y)       fmodf(x,y)
      64                 :     #define sk_float_exp(x)         expf(x)
      65                 :     #define sk_float_log(x)         logf(x)
      66                 : #endif
      67                 : 
      68                 : #ifdef SK_BUILD_FOR_WIN
      69                 :     #define sk_float_isfinite(x)    _finite(x)
      70                 :     #define sk_float_isnan(x)       _isnan(x)
      71                 :     static inline int sk_float_isinf(float x) {
      72                 :         int32_t bits = SkFloat2Bits(x);
      73                 :         return (bits << 1) == (0xFF << 24);
      74                 :     }
      75                 : #else
      76                 :     #define sk_float_isfinite(x)    isfinite(x)
      77                 :     #define sk_float_isnan(x)       isnan(x)
      78                 :     #define sk_float_isinf(x)       isinf(x)
      79                 : #endif
      80                 : 
      81                 : #ifdef SK_USE_FLOATBITS
      82                 :     #define sk_float_floor2int(x)   SkFloatToIntFloor(x)
      83                 :     #define sk_float_round2int(x)   SkFloatToIntRound(x)
      84                 :     #define sk_float_ceil2int(x)    SkFloatToIntCeil(x)
      85                 : #else
      86                 :     #define sk_float_floor2int(x)   (int)sk_float_floor(x)
      87                 :     #define sk_float_round2int(x)   (int)sk_float_floor((x) + 0.5f)
      88                 :     #define sk_float_ceil2int(x)    (int)sk_float_ceil(x)
      89                 : #endif
      90                 : 
      91                 : #endif
      92                 : #endif

Generated by: LCOV version 1.7