annotate src/libsamplerate-0.1.9/M4/clip_mode.m4 @ 66:a9f5ce17330a

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