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