tiny.simd.WrapRowMirror
Defined in image.
API (4)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/simd/src/image/root.zig:561
zig
pub const WrapRowMirror = struct { first_row: [*]const f32, last_row: [*]const f32, pub fn init(image: anytype, ysize: usize) WrapRowMirror { std.debug.assert(ysize != 0); return .{ .first_row = image.constRow(0).ptr, .last_row = image.constRow(ysize - 1).ptr, }; } pub fn call(self: WrapRowMirror, row: [*]const f32, stride: i64) [*]const f32 { std.debug.assert(stride > 0); const first = @intFromPtr(self.first_row); const last = @intFromPtr(self.last_row); const address = @intFromPtr(row); const stride_elements: usize = @intCast(stride); if (address < first) { const distance_bytes = first - address; std.debug.assert(distance_bytes % @sizeOf(f32) == 0); const distance = distance_bytes / @sizeOf(f32); std.debug.assert(distance >= stride_elements); return self.first_row + (distance - stride_elements); } if (address > last) { const distance_bytes = address - last; std.debug.assert(distance_bytes % @sizeOf(f32) == 0); const distance = distance_bytes / @sizeOf(f32); std.debug.assert(distance >= stride_elements); return self.last_row - (distance - stride_elements); } return row; }};Source: lib/simd/src/root.zig:530
zig
pub const WrapRowMirror = image.WrapRowMirror;Audit
| Definitions | 3 |
|---|---|
| Public names | 6 |
| Members | 2 |
| Version | 26.7.0 |
| Revision | daab053ee433 |