From e523efa9f7da1949134af9679876a2bc6bb141d4 Mon Sep 17 00:00:00 2001 From: Jose Colon Rodriguez Date: Fri, 16 Feb 2024 21:46:22 -0400 Subject: SIMD strWidth ASCII optimization --- src/main.zig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index 3e65c7b..e7c0828 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3,7 +3,9 @@ const std = @import("std"); // const GraphemeIterator = @import("ziglyph").GraphemeIterator; // const GraphemeIterator = @import("Grapheme").GraphemeIterator; // const codePointWidth = @import("ziglyph").display_width.codePointWidth; -const codePointWidth = @import("display_width").codePointWidth; +// const codePointWidth = @import("display_width").codePointWidth; +// const strWidth = @import("ziglyph").display_width.strWidth; +const strWidth = @import("display_width").strWidth; const CodePointIterator = @import("CodePoint").CodePointIterator; pub fn main() !void { @@ -14,14 +16,16 @@ pub fn main() !void { const input = try std.fs.cwd().readFileAlloc(allocator, "lang_mix.txt", std.math.maxInt(u32)); defer allocator.free(input); - var result: isize = 0; + var result: usize = 0; // var iter = GraphemeIterator.init(input); - var iter = CodePointIterator{ .bytes = input }; + // var iter = CodePointIterator{ .bytes = input }; + var iter = std.mem.splitScalar(u8, input, '\n'); var timer = try std.time.Timer.start(); // for (0..50) |_| { - while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code)); + // while (iter.next()) |cp| result += codePointWidth(@intCast(cp.code)); + while (iter.next()) |line| result += strWidth(line); // iter.cp_iter.i = 0; // } -- cgit v1.2.3