annotate src/libsamplerate-0.1.9/M4/clip_mode.m4 @ 139:413e081fcc6f

Rebuild MAD with 64-bit FPM
author Chris Cannam <cannam@all-day-breakfast.com>
date Wed, 30 Nov 2016 20:59:17 +0000
parents 4a7071416412
children
rev   line source
cannam@126 1 dnl @synopsis AC_C_CLIP_MODE
cannam@126 2 dnl
cannam@126 3 dnl Determine the clipping mode when converting float to int.
cannam@126 4 dnl @version 1.0 May 17 2003
cannam@126 5 dnl @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
cannam@126 6 dnl
cannam@126 7 dnl Permission to use, copy, modify, distribute, and sell this file for any
cannam@126 8 dnl purpose is hereby granted without fee, provided that the above copyright
cannam@126 9 dnl and this permission notice appear in all copies. No representations are
cannam@126 10 dnl made about the suitability of this software for any purpose. It is
cannam@126 11 dnl provided "as is" without express or implied warranty.
cannam@126 12
cannam@126 13
cannam@126 14
cannam@126 15
cannam@126 16
cannam@126 17
cannam@126 18
cannam@126 19 dnl Find the clipping mode in the following way:
cannam@126 20 dnl 1) If we are not cross compiling test it.
cannam@126 21 dnl 2) IF we are cross compiling, assume that clipping isn't done correctly.
cannam@126 22
cannam@126 23 AC_DEFUN([AC_C_CLIP_MODE],
cannam@126 24 [AC_CACHE_CHECK(processor clipping capabilities,
cannam@126 25 ac_cv_c_clip_type,
cannam@126 26
cannam@126 27 # Initialize to unknown
cannam@126 28 ac_cv_c_clip_positive=unknown
cannam@126 29 ac_cv_c_clip_negative=unknown
cannam@126 30
cannam@126 31
cannam@126 32 if test $ac_cv_c_clip_positive = unknown ; then
cannam@126 33 AC_TRY_RUN(
cannam@126 34 [[
cannam@126 35 #define _ISOC9X_SOURCE 1
cannam@126 36 #define _ISOC99_SOURCE 1
cannam@126 37 #define __USE_ISOC99 1
cannam@126 38 #define __USE_ISOC9X 1
cannam@126 39 #include <math.h>
cannam@126 40 int main (void)
cannam@126 41 { double fval ;
cannam@126 42 int k, ival ;
cannam@126 43
cannam@126 44 fval = 1.0 * 0x7FFFFFFF ;
cannam@126 45 for (k = 0 ; k < 100 ; k++)
cannam@126 46 { ival = (lrint (fval)) >> 24 ;
cannam@126 47 if (ival != 127)
cannam@126 48 return 1 ;
cannam@126 49
cannam@126 50 fval *= 1.2499999 ;
cannam@126 51 } ;
cannam@126 52
cannam@126 53 return 0 ;
cannam@126 54 }
cannam@126 55 ]],
cannam@126 56 ac_cv_c_clip_positive=yes,
cannam@126 57 ac_cv_c_clip_positive=no,
cannam@126 58 ac_cv_c_clip_positive=unknown
cannam@126 59 )
cannam@126 60
cannam@126 61 AC_TRY_RUN(
cannam@126 62 [[
cannam@126 63 #define _ISOC9X_SOURCE 1
cannam@126 64 #define _ISOC99_SOURCE 1
cannam@126 65 #define __USE_ISOC99 1
cannam@126 66 #define __USE_ISOC9X 1
cannam@126 67 #include <math.h>
cannam@126 68 int main (void)
cannam@126 69 { double fval ;
cannam@126 70 int k, ival ;
cannam@126 71
cannam@126 72 fval = -8.0 * 0x10000000 ;
cannam@126 73 for (k = 0 ; k < 100 ; k++)
cannam@126 74 { ival = (lrint (fval)) >> 24 ;
cannam@126 75 if (ival != -128)
cannam@126 76 return 1 ;
cannam@126 77
cannam@126 78 fval *= 1.2499999 ;
cannam@126 79 } ;
cannam@126 80
cannam@126 81 return 0 ;
cannam@126 82 }
cannam@126 83 ]],
cannam@126 84 ac_cv_c_clip_negative=yes,
cannam@126 85 ac_cv_c_clip_negative=no,
cannam@126 86 ac_cv_c_clip_negative=unknown
cannam@126 87 )
cannam@126 88 fi
cannam@126 89
cannam@126 90 if test $ac_cv_c_clip_positive = yes ; then
cannam@126 91 ac_cv_c_clip_positive=1
cannam@126 92 else
cannam@126 93 ac_cv_c_clip_positive=0
cannam@126 94 fi
cannam@126 95
cannam@126 96 if test $ac_cv_c_clip_negative = yes ; then
cannam@126 97 ac_cv_c_clip_negative=1
cannam@126 98 else
cannam@126 99 ac_cv_c_clip_negative=0
cannam@126 100 fi
cannam@126 101
cannam@126 102 [[
cannam@126 103 case "$ac_cv_c_clip_positive$ac_cv_c_clip_negative" in
cannam@126 104 "00")
cannam@126 105 ac_cv_c_clip_type="none"
cannam@126 106 ;;
cannam@126 107 "10")
cannam@126 108 ac_cv_c_clip_type="positive"
cannam@126 109 ;;
cannam@126 110 "01")
cannam@126 111 ac_cv_c_clip_type="negative"
cannam@126 112 ;;
cannam@126 113 "11")
cannam@126 114 ac_cv_c_clip_type="both"
cannam@126 115 ;;
cannam@126 116 esac
cannam@126 117 ]]
cannam@126 118
cannam@126 119 )
cannam@126 120 ]
cannam@126 121
cannam@126 122 )# AC_C_CLIP_MODE
cannam@126 123
cannam@126 124