From: Kostya Shishkov Date: Wed, 28 May 2025 16:30:34 +0000 (+0200) Subject: use ::{MAX,MIN} instead of deprecated std::::{MAX,MIN} X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=08e0a8bfc2f2a8e7a8a9531d81c308f38d242f20;p=nihav.git use ::{MAX,MIN} instead of deprecated std::::{MAX,MIN} --- diff --git a/nihav-acorn/src/codecs/escape.rs b/nihav-acorn/src/codecs/escape.rs index 16a07ce..dea9d5b 100644 --- a/nihav-acorn/src/codecs/escape.rs +++ b/nihav-acorn/src/codecs/escape.rs @@ -720,7 +720,7 @@ impl EscapeIMAState { let sign = (nibble & 8) != 0; let diff = (i32::from(nibble & 7) * IMA_STEP_TABLE[self.step]) >> 2; let sample = if !sign { self.predictor + diff } else { self.predictor - diff }; - self.predictor = sample.max(i32::from(std::i16::MIN)).min(i32::from(std::i16::MAX)); + self.predictor = sample.max(i32::from(i16::MIN)).min(i32::from(i16::MAX)); self.step = istep.max(0).min(IMA_MAX_STEP as isize) as usize; self.predictor as i16 } diff --git a/nihav-codec-support/src/codecs/imaadpcm.rs b/nihav-codec-support/src/codecs/imaadpcm.rs index c2e7fd0..dcd1ed4 100644 --- a/nihav-codec-support/src/codecs/imaadpcm.rs +++ b/nihav-codec-support/src/codecs/imaadpcm.rs @@ -52,7 +52,7 @@ impl IMAState { let sign = (nibble & 8) != 0; let diff = (i32::from(2 * (nibble & 7) + 1) * IMA_STEP_TABLE[self.step]) >> 3; let sample = if !sign { self.predictor + diff } else { self.predictor - diff }; - self.predictor = sample.max(i32::from(std::i16::MIN)).min(i32::from(std::i16::MAX)); + self.predictor = sample.max(i32::from(i16::MIN)).min(i32::from(i16::MAX)); self.step = istep.max(0).min(IMA_MAX_STEP as isize) as usize; self.predictor as i16 } diff --git a/nihav-codec-support/src/vq/generic_elbg.rs b/nihav-codec-support/src/vq/generic_elbg.rs index 3925914..2584365 100644 --- a/nihav-codec-support/src/vq/generic_elbg.rs +++ b/nihav-codec-support/src/vq/generic_elbg.rs @@ -154,8 +154,8 @@ impl> ELBG { return 0; } let mut old_cb = vec![T::default(); self.clusters.len()]; - let mut prev_dist = std::u64::MAX; - let mut dist = std::u64::MAX / 2; + let mut prev_dist = u64::MAX; + let mut dist = u64::MAX / 2; let mut indices = Vec::with_capacity(src.len()); let mut elements = Vec::with_capacity(src.len()); elements.extend_from_slice(src); @@ -202,7 +202,7 @@ impl> ELBG { indices.clear(); for entry in entries.iter() { let mut bestidx = 0; - let mut bestdist = std::u32::MAX; + let mut bestdist = u32::MAX; for (i, cluster) in self.clusters.iter().enumerate() { let dist = entry.val.dist(cluster.centroid); if bestdist > dist { @@ -251,7 +251,7 @@ impl> ELBG { let high_idx_idx = (rng.next() as usize) % high_u.len(); let high_idx = high_u[high_idx_idx]; let mut closest_idx = *low_idx; - let mut closest_dist = std::u32::MAX; + let mut closest_dist = u32::MAX; let low_centr = self.clusters[*low_idx].centroid; for (i, (&used, cluster)) in used.iter().zip(self.clusters.iter()).take(dst.len()).enumerate() { if i == *low_idx || used { diff --git a/nihav-commonfmt/src/codecs/cinepakenc.rs b/nihav-commonfmt/src/codecs/cinepakenc.rs index 216ccca..e5f888c 100644 --- a/nihav-commonfmt/src/codecs/cinepakenc.rs +++ b/nihav-commonfmt/src/codecs/cinepakenc.rs @@ -419,7 +419,7 @@ impl CinepakEncoder { } } fn find_nearest(codebook: &[YUVCode], code: YUVCode) -> (u8, u32) { - let mut min_dist = std::u32::MAX; + let mut min_dist = u32::MAX; let mut idx = 0; for (i, cw) in codebook.iter().enumerate() { let dist = cw.dist(code); diff --git a/nihav-commonfmt/src/demuxers/mov.rs b/nihav-commonfmt/src/demuxers/mov.rs index a8a87b9..a1c3669 100644 --- a/nihav-commonfmt/src/demuxers/mov.rs +++ b/nihav-commonfmt/src/demuxers/mov.rs @@ -827,7 +827,7 @@ fn read_stss(track: &mut Track, br: &mut ByteReader, size: u64) -> DemuxerResult validate!(version == 0); let _flags = br.read_u24be()?; let entries = br.read_u32be()? as usize; - validate!(entries < ((std::u32::MAX >> 2) - 8) as usize); + validate!(entries < ((u32::MAX >> 2) - 8) as usize); validate!((entries * 4 + 8) as u64 == size); track.keyframes = Vec::with_capacity(entries); let mut last_sample_no = 0; @@ -845,7 +845,7 @@ fn read_stsc(track: &mut Track, br: &mut ByteReader, size: u64) -> DemuxerResult validate!(version == 0); let _flags = br.read_u24be()?; let entries = br.read_u32be()? as usize; - validate!(entries < ((std::u32::MAX / 12) - 8) as usize); + validate!(entries < ((u32::MAX / 12) - 8) as usize); validate!((entries * 12 + 8) as u64 == size); track.sample_map = Vec::with_capacity(entries); let mut last_sample_no = 0; @@ -1067,7 +1067,7 @@ fn read_trun(track: &mut Track, br: &mut ByteReader, size: u64) -> DemuxerResult track.ctts_map.reserve(sample_count); } - if track.chunk_offsets.len() < (std::u32::MAX as usize) { + if track.chunk_offsets.len() < (u32::MAX as usize) { track.keyframes.push((track.chunk_offsets.len() + 1) as u32); } for _ in 0..sample_count { @@ -1770,7 +1770,7 @@ impl<'a> DemuxCore<'a> for MOVDemuxer<'a> { return Err(DemuxerError::EOF); } let mut has_all_time = true; - let mut min_ts = std::u64::MAX; + let mut min_ts = u64::MAX; for trk in self.tracks.iter() { if let Some(ts) = trk.cur_ts { min_ts = min_ts.min(ts); diff --git a/nihav-commonfmt/src/demuxers/wav.rs b/nihav-commonfmt/src/demuxers/wav.rs index 193623e..b28294a 100644 --- a/nihav-commonfmt/src/demuxers/wav.rs +++ b/nihav-commonfmt/src/demuxers/wav.rs @@ -29,7 +29,7 @@ impl<'a> DemuxCore<'a> for WAVDemuxer<'a> { fn open(&mut self, strmgr: &mut StreamManager, seek_index: &mut SeekIndex) -> DemuxerResult<()> { let riff = self.src.read_u32be()?; let riff_size = self.src.read_u32le()? as usize; - let riff_end = self.src.tell() + if riff_size > 0 { riff_size as u64 } else { u64::from(std::u32::MAX) }; + let riff_end = self.src.tell() + if riff_size > 0 { riff_size as u64 } else { u64::from(u32::MAX) }; let wave = self.src.read_u32be()?; validate!(riff == mktag!(b"RIFF")); validate!(wave == mktag!(b"WAVE")); diff --git a/nihav-core/src/compr/deflate.rs b/nihav-core/src/compr/deflate.rs index bb47c5b..80a84d8 100644 --- a/nihav-core/src/compr/deflate.rs +++ b/nihav-core/src/compr/deflate.rs @@ -1822,7 +1822,7 @@ struct TNode { impl Default for TNode { fn default() -> Self { Self { - price: std::u32::MAX, + price: u32::MAX, dist: 0, link: 0, } diff --git a/nihav-core/src/scale/palette/elbg.rs b/nihav-core/src/scale/palette/elbg.rs index 1ec3edd..1af3c30 100644 --- a/nihav-core/src/scale/palette/elbg.rs +++ b/nihav-core/src/scale/palette/elbg.rs @@ -201,8 +201,8 @@ impl ELBG { return; } let mut old_cb: [Pixel; 256] = [Pixel::default(); 256]; - let mut prev_dist = std::u64::MAX; - let mut dist = std::u64::MAX / 2; + let mut prev_dist = u64::MAX; + let mut dist = u64::MAX / 2; let mut indices = Vec::with_capacity(src.len()); let mut pixels = Vec::with_capacity(src.len()); pixels.extend_from_slice(src); @@ -239,7 +239,7 @@ impl ELBG { indices.clear(); for entry in entries.iter() { let mut bestidx = 0; - let mut bestdist = std::u32::MAX; + let mut bestdist = u32::MAX; for (i, cluster) in self.clusters.iter().enumerate() { let dist = entry.pix.dist(cluster.centroid); if bestdist > dist { @@ -288,7 +288,7 @@ impl ELBG { let high_idx_idx = (rng.next() as usize) % high_u.len(); let high_idx = high_u[high_idx_idx]; let mut closest_idx = *low_idx; - let mut closest_dist = std::u32::MAX; + let mut closest_dist = u32::MAX; let low_centr = self.clusters[*low_idx].centroid; for (i, (cluster, &used)) in self.clusters.iter().zip(used.iter()).enumerate() {//low_u.iter() { if i == *low_idx || used { diff --git a/nihav-core/src/scale/palette/neuquant.rs b/nihav-core/src/scale/palette/neuquant.rs index 2168b68..787f340 100644 --- a/nihav-core/src/scale/palette/neuquant.rs +++ b/nihav-core/src/scale/palette/neuquant.rs @@ -60,9 +60,9 @@ impl NeuQuantQuantiser { return i; } } - let mut bestdist = std::f64::MAX; + let mut bestdist = f64::MAX; let mut distidx = 0; - let mut bestbias = std::f64::MAX; + let mut bestbias = f64::MAX; let mut biasidx = 0; for i in SPECIAL_NODES..256 { let dist = (self.weights[i][0] - clr[0]) * (self.weights[i][0] - clr[0]) diff --git a/nihav-core/src/scale/palette/palettise.rs b/nihav-core/src/scale/palette/palettise.rs index ab82d2f..f8b4e6a 100644 --- a/nihav-core/src/scale/palette/palettise.rs +++ b/nihav-core/src/scale/palette/palettise.rs @@ -1,6 +1,6 @@ pub fn find_nearest(pix: &[u8], pal: &[[u8; 3]; 256]) -> usize { let mut bestidx = 0; - let mut bestdist = std::i32::MAX; + let mut bestdist = i32::MAX; for (idx, entry) in pal.iter().enumerate() { let dist0 = i32::from(pix[0]) - i32::from(entry[0]); @@ -58,7 +58,7 @@ impl LocalSearch { } pub fn search(&self, pix: [u8; 3]) -> usize { let idx = Self::quant(pix); - let mut best_dist = std::u32::MAX; + let mut best_dist = u32::MAX; let mut best_idx = 0; let mut count = 0; for clr in self.db[idx].iter() { diff --git a/nihav-core/src/soundcvt/mod.rs b/nihav-core/src/soundcvt/mod.rs index 30f0cd6..b8fda80 100644 --- a/nihav-core/src/soundcvt/mod.rs +++ b/nihav-core/src/soundcvt/mod.rs @@ -141,9 +141,9 @@ impl FromFmt for i16 { impl FromFmt for i32 { fn cvt_from(val: f32) -> i32 { if val >= 1.0 { - std::i32::MAX + i32::MAX } else if val <= -1.0 { - std::i32::MIN + i32::MIN } else { let scale = (1u32 << 31) as f32; (val * scale) as i32 diff --git a/nihav-duck/src/codecs/truemotion1enc.rs b/nihav-duck/src/codecs/truemotion1enc.rs index 90aa32f..ec97b0d 100644 --- a/nihav-duck/src/codecs/truemotion1enc.rs +++ b/nihav-duck/src/codecs/truemotion1enc.rs @@ -158,7 +158,7 @@ fn load24(frm: &mut [WorkPixel], width: usize, vbuf: &NAVideoBuffer) { } } -const MAX_DIFF: i32 = std::i32::MAX; +const MAX_DIFF: i32 = i32::MAX; fn luma15_delta(pix: &mut WorkPixel, pred: WorkPixel, tgt: WorkPixel, deltas: &[i32; 8], fat_deltas: &[i32; 8]) { let mut tpix = *pix; diff --git a/nihav-duck/src/codecs/truemotionrtenc.rs b/nihav-duck/src/codecs/truemotionrtenc.rs index 47236dd..f2cfd5d 100644 --- a/nihav-duck/src/codecs/truemotionrtenc.rs +++ b/nihav-duck/src/codecs/truemotionrtenc.rs @@ -9,7 +9,7 @@ const TMRT_DELTA_TAB: [&[i16]; 3] = [ ]; const FIRST_NODE: u8 = 255; -const ERR_MAX: u32 = std::u32::MAX; +const ERR_MAX: u32 = u32::MAX; #[derive(Clone, Copy, Default)] struct TrellisNode { diff --git a/nihav-duck/src/codecs/vp6enc/dsp.rs b/nihav-duck/src/codecs/vp6enc/dsp.rs index ced33b1..d0481f1 100644 --- a/nihav-duck/src/codecs/vp6enc/dsp.rs +++ b/nihav-duck/src/codecs/vp6enc/dsp.rs @@ -84,7 +84,7 @@ impl MVSearchModeCreate for MVSearchMode { } } -const MAX_DIST: u32 = std::u32::MAX; +const MAX_DIST: u32 = u32::MAX; const DIST_THRESH: u32 = 256; #[allow(clippy::wrong_self_convention)] diff --git a/nihav-duck/src/codecs/vp7enc/motion_est.rs b/nihav-duck/src/codecs/vp7enc/motion_est.rs index 8241397..704afb9 100644 --- a/nihav-duck/src/codecs/vp7enc/motion_est.rs +++ b/nihav-duck/src/codecs/vp7enc/motion_est.rs @@ -21,7 +21,7 @@ impl MVSearchModeCreate for MVSearchMode { } } -const MAX_DIST: u32 = std::u32::MAX; +const MAX_DIST: u32 = u32::MAX; const DIST_THRESH: u32 = 256; pub const LARGE_BLK8_DIST: u32 = 256; @@ -118,7 +118,7 @@ impl MVSearch for EliminationSearch { bavg[chroma + 1] += blk.iter().fold(0u16, |acc, &x| acc + u16::from(x)); } } - let mut rough_dist = std::i32::MAX; + let mut rough_dist = i32::MAX; for ytry in 0..mv_est.mv_range * 2 + 1 { let dy = if (ytry & 1) == 0 { ytry >> 1 } else { -((ytry + 1) >> 1) }; let ypos = (mb_y as isize) * 16 + (dy as isize); @@ -165,7 +165,7 @@ impl MVSearch for EliminationSearch { let (width, height) = mv_est.ref_frame.get_dimensions(0); let bavg = ref_blk.iter().fold(0u16, |acc, &x| acc + u16::from(x)); - let mut rough_dist = std::i32::MAX; + let mut rough_dist = i32::MAX; for ytry in 0..mv_est.mv_range * 2 + 1 { let dy = if (ytry & 1) == 0 { ytry >> 1 } else { -((ytry + 1) >> 1) }; let ypos = (ypos_orig as isize) + (dy as isize); @@ -220,7 +220,7 @@ impl MVSearch for EliminationSearch { let (width, height) = mv_est.ref_frame.get_dimensions(0); let bavg = ref_blk.iter().fold(0u16, |acc, &x| acc + u16::from(x)); - let mut rough_dist = std::i32::MAX; + let mut rough_dist = i32::MAX; for ytry in 0..mv_est.mv_range * 2 + 1 { let dy = if (ytry & 1) == 0 { ytry >> 1 } else { -((ytry + 1) >> 1) }; let ypos = (ypos_orig as isize) + (dy as isize); diff --git a/nihav-duck/src/codecs/vp7enc/rdo.rs b/nihav-duck/src/codecs/vp7enc/rdo.rs index 50ace94..4dc7cea 100644 --- a/nihav-duck/src/codecs/vp7enc/rdo.rs +++ b/nihav-duck/src/codecs/vp7enc/rdo.rs @@ -4,7 +4,7 @@ use super::coder::*; static mut COUNTER: usize = 0; pub const SMALL_DIST: u32 = 256; -pub const MAX_DIST: u32 = std::u32::MAX; +pub const MAX_DIST: u32 = u32::MAX; const INTER_TO_INTRA_RATIO: f32 = 0.85; diff --git a/nihav-flash/src/codecs/adpcm.rs b/nihav-flash/src/codecs/adpcm.rs index d72b101..e62e741 100644 --- a/nihav-flash/src/codecs/adpcm.rs +++ b/nihav-flash/src/codecs/adpcm.rs @@ -32,7 +32,7 @@ impl State { let sign = (nibble & self.smask) != 0; let diff = (i32::from(2 * (nibble & !self.smask) + 1) * IMA_STEP_TABLE[self.step]) >> 3; let sample = if !sign { self.predictor + diff } else { self.predictor - diff }; - self.predictor = sample.max(i32::from(std::i16::MIN)).min(i32::from(std::i16::MAX)); + self.predictor = sample.max(i32::from(i16::MIN)).min(i32::from(i16::MAX)); self.step = istep.max(0).min(IMA_MAX_STEP as isize) as usize; self.predictor as i16 } diff --git a/nihav-llaudio/src/muxers/flac.rs b/nihav-llaudio/src/muxers/flac.rs index 130aaeb..c4f1478 100644 --- a/nihav-llaudio/src/muxers/flac.rs +++ b/nihav-llaudio/src/muxers/flac.rs @@ -14,8 +14,8 @@ impl<'a> FLACMuxer<'a> { fn new(bw: &'a mut ByteWriter<'a>) -> Self { Self { bw, - maxpkt: std::usize::MAX, minpkt: 0, - maxblk: std::u16::MAX, minblk: 0, + maxpkt: usize::MAX, minpkt: 0, + maxblk: u16::MAX, minblk: 0, duration: 0, bits: 0, } diff --git a/nihav-ms/src/codecs/msadpcm.rs b/nihav-ms/src/codecs/msadpcm.rs index ef1fd96..c1e32f6 100644 --- a/nihav-ms/src/codecs/msadpcm.rs +++ b/nihav-ms/src/codecs/msadpcm.rs @@ -213,7 +213,7 @@ impl MSADPCMEncoder { let mut best_idx = [0usize; 2]; for (ch, best_idx) in best_idx[..self.channels].iter_mut().enumerate() { - let mut best_dist = std::i64::MAX; + let mut best_dist = i64::MAX; for i in 0..ADAPT_COEFFS.len() { let dist = self.calc_dist(ch, i, len); if dist < best_dist { diff --git a/nihav-ms/src/codecs/msvideo1enc.rs b/nihav-ms/src/codecs/msvideo1enc.rs index f9d1f6f..b3cde3a 100644 --- a/nihav-ms/src/codecs/msvideo1enc.rs +++ b/nihav-ms/src/codecs/msvideo1enc.rs @@ -48,7 +48,7 @@ fn dist_core(val: UnpackedPixel, other: &UnpackedPixel) -> u32 { fn find_nearest(pix: UnpackedPixel, pal: &[UnpackedPixel; 256]) -> usize { let mut bestidx = 0; - let mut bestdist = std::u32::MAX; + let mut bestdist = u32::MAX; for (idx, entry) in pal.iter().enumerate() { let dist = dist_core(pix, entry); @@ -105,7 +105,7 @@ impl LocalSearch { } fn search(&self, pix: UnpackedPixel) -> usize { let idx = Self::quant(pix); - let mut best_dist = std::u32::MAX; + let mut best_dist = u32::MAX; let mut best_idx = 0; let mut count = 0; for clr in self.db[idx].iter() { @@ -292,8 +292,8 @@ impl BlockState { } } if self.fill_dist == 0 { - self.clr2_dist = std::u32::MAX; - self.clr8_dist = std::u32::MAX; + self.clr2_dist = u32::MAX; + self.clr8_dist = u32::MAX; return; } @@ -323,7 +323,7 @@ impl BlockState { } } if self.clr2_dist == 0 { - self.clr8_dist = std::u32::MAX; + self.clr8_dist = u32::MAX; return; } diff --git a/nihav-rad/src/codecs/binkvidenc.rs b/nihav-rad/src/codecs/binkvidenc.rs index b350bd9..b3cbbf1 100644 --- a/nihav-rad/src/codecs/binkvidenc.rs +++ b/nihav-rad/src/codecs/binkvidenc.rs @@ -13,7 +13,7 @@ mod rc; use rc::*; const THRESHOLD: u32 = 64; -const MAX_DIST: u32 = std::u32::MAX; +const MAX_DIST: u32 = u32::MAX; #[derive(Clone,Copy,Default,PartialEq)] enum DoublingMode { diff --git a/nihav-realmedia/src/codecs/rv40enc/mb_coding.rs b/nihav-realmedia/src/codecs/rv40enc/mb_coding.rs index 8a4ebdc..b3b3025 100644 --- a/nihav-realmedia/src/codecs/rv40enc/mb_coding.rs +++ b/nihav-realmedia/src/codecs/rv40enc/mb_coding.rs @@ -310,7 +310,7 @@ impl MacroblockDecider { self.mb.load(src, offsets, strides); self.best_mbt = MacroblockType::default(); - self.best_dist = std::u32::MAX; + self.best_dist = u32::MAX; self.best_bits = 0; } pub fn try_b_coding(&mut self, ref_p: &NAVideoBuffer, ref_n: &NAVideoBuffer, be: &mut BitsEstimator, me: &mut MotionEstimator, rdm: &RateDistMetric, mbstate: &MBState, refine: bool) { @@ -588,7 +588,7 @@ impl MacroblockDecider { let do_chroma = ((x & 1) == 0) && ((y & 1) == 0); let mut best_mode = PRED4_DEF[0]; - let mut best_cdist = std::u32::MAX; + let mut best_cdist = u32::MAX; let mut best_dist = 0; let mut best_bits = 0; for &try_mode in list.iter() { diff --git a/nihav-realmedia/src/codecs/rv40enc/motion_est.rs b/nihav-realmedia/src/codecs/rv40enc/motion_est.rs index f59c588..31964cc 100644 --- a/nihav-realmedia/src/codecs/rv40enc/motion_est.rs +++ b/nihav-realmedia/src/codecs/rv40enc/motion_est.rs @@ -50,7 +50,7 @@ impl FromStr for MVSearchMode { } } -const MAX_DIST: u32 = std::u32::MAX; +const MAX_DIST: u32 = u32::MAX; const DIST_THRESH: u32 = 256; #[allow(clippy::wrong_self_convention)] @@ -516,10 +516,10 @@ struct DummySearcher {} impl MVSearch for DummySearcher { fn search_mb(&mut self, _mv_est: &mut MVEstimator, _ref_mb: &RefMBData, _mb_x: usize, _mb_y: usize, _cand_mvs: &[MV]) -> (MV, u32) { - (ZERO_MV, std::u32::MAX / 2) + (ZERO_MV, u32::MAX / 2) } fn search_blk8(&mut self, _mv_est: &mut MVEstimator, _ref_mb: &RefMBData, _xpos: usize, _ypos: usize, _cand_mvs: &[MV]) -> (MV, u32) { - (ZERO_MV, std::u32::MAX / 2) + (ZERO_MV, u32::MAX / 2) } } diff --git a/nihav-realmedia/src/codecs/rv40enc/ratectl.rs b/nihav-realmedia/src/codecs/rv40enc/ratectl.rs index aa881ed..f8ed9ba 100644 --- a/nihav-realmedia/src/codecs/rv40enc/ratectl.rs +++ b/nihav-realmedia/src/codecs/rv40enc/ratectl.rs @@ -205,7 +205,7 @@ impl BitRateControl { } pub fn update_stats(&mut self, ftype: FrameType, fsize: usize, ts_diff: u32) { if self.bitrate > 0 { - if ts_diff > 0 && self.duration < std::u32::MAX / 2 { + if ts_diff > 0 && self.duration < u32::MAX / 2 { self.duration += ts_diff; self.dcount += 1; } diff --git a/nihav-vivo/src/codecs/g723_1.rs b/nihav-vivo/src/codecs/g723_1.rs index 3cfe3b7..ea229fb 100644 --- a/nihav-vivo/src/codecs/g723_1.rs +++ b/nihav-vivo/src/codecs/g723_1.rs @@ -853,11 +853,11 @@ impl G7231Decoder { } fn clip16(a: i32) -> i16 { - a.min(i32::from(std::i16::MAX)).max(i32::from(std::i16::MIN)) as i16 + a.min(i32::from(i16::MAX)).max(i32::from(i16::MIN)) as i16 } fn clip32(a: i64) -> i32 { - a.min(i64::from(std::i32::MAX)).max(i64::from(std::i32::MIN)) as i32 + a.min(i64::from(i32::MAX)).max(i64::from(i32::MIN)) as i32 } fn mul16(a: i32, b: i16) -> i32 {