annotate src/libsndfile-1.0.25/M4/clip_mode.m4 @ 169:223a55898ab9 tip default

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