Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

toBytes

The function toBytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order.

Preconditions: 0 ≤ eval arg1 < m Postconditions: out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]

Input Bounds: arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] Output Bounds: out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]

p256_64.toBytes
pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void

File

Code

pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void {
    @setRuntimeSafety(mode == .debug);

    const x1 = (arg1[3]);
    const x2 = (arg1[2]);
    const x3 = (arg1[1]);
    const x4 = (arg1[0]);
    const x5 = @as(u8, @truncate((x4 & @as(u64, 0xff))));
    const x6 = (x4 >> 8);
    const x7 = @as(u8, @truncate((x6 & @as(u64, 0xff))));
    const x8 = (x6 >> 8);
    const x9 = @as(u8, @truncate((x8 & @as(u64, 0xff))));
    const x10 = (x8 >> 8);
    const x11 = @as(u8, @truncate((x10 & @as(u64, 0xff))));
    const x12 = (x10 >> 8);
    const x13 = @as(u8, @truncate((x12 & @as(u64, 0xff))));
    const x14 = (x12 >> 8);
    const x15 = @as(u8, @truncate((x14 & @as(u64, 0xff))));
    const x16 = (x14 >> 8);
    const x17 = @as(u8, @truncate((x16 & @as(u64, 0xff))));
    const x18 = @as(u8, @truncate((x16 >> 8)));
    const x19 = @as(u8, @truncate((x3 & @as(u64, 0xff))));
    const x20 = (x3 >> 8);
    const x21 = @as(u8, @truncate((x20 & @as(u64, 0xff))));
    const x22 = (x20 >> 8);
    const x23 = @as(u8, @truncate((x22 & @as(u64, 0xff))));
    const x24 = (x22 >> 8);
    const x25 = @as(u8, @truncate((x24 & @as(u64, 0xff))));
    const x26 = (x24 >> 8);
    const x27 = @as(u8, @truncate((x26 & @as(u64, 0xff))));
    const x28 = (x26 >> 8);
    const x29 = @as(u8, @truncate((x28 & @as(u64, 0xff))));
    const x30 = (x28 >> 8);
    const x31 = @as(u8, @truncate((x30 & @as(u64, 0xff))));
    const x32 = @as(u8, @truncate((x30 >> 8)));
    const x33 = @as(u8, @truncate((x2 & @as(u64, 0xff))));
    const x34 = (x2 >> 8);
    const x35 = @as(u8, @truncate((x34 & @as(u64, 0xff))));
    const x36 = (x34 >> 8);
    const x37 = @as(u8, @truncate((x36 & @as(u64, 0xff))));
    const x38 = (x36 >> 8);
    const x39 = @as(u8, @truncate((x38 & @as(u64, 0xff))));
    const x40 = (x38 >> 8);
    const x41 = @as(u8, @truncate((x40 & @as(u64, 0xff))));
    const x42 = (x40 >> 8);
    const x43 = @as(u8, @truncate((x42 & @as(u64, 0xff))));
    const x44 = (x42 >> 8);
    const x45 = @as(u8, @truncate((x44 & @as(u64, 0xff))));
    const x46 = @as(u8, @truncate((x44 >> 8)));
    const x47 = @as(u8, @truncate((x1 & @as(u64, 0xff))));
    const x48 = (x1 >> 8);
    const x49 = @as(u8, @truncate((x48 & @as(u64, 0xff))));
    const x50 = (x48 >> 8);
    const x51 = @as(u8, @truncate((x50 & @as(u64, 0xff))));
    const x52 = (x50 >> 8);
    const x53 = @as(u8, @truncate((x52 & @as(u64, 0xff))));
    const x54 = (x52 >> 8);
    const x55 = @as(u8, @truncate((x54 & @as(u64, 0xff))));
    const x56 = (x54 >> 8);
    const x57 = @as(u8, @truncate((x56 & @as(u64, 0xff))));
    const x58 = (x56 >> 8);
    const x59 = @as(u8, @truncate((x58 & @as(u64, 0xff))));
    const x60 = @as(u8, @truncate((x58 >> 8)));
    out1[0] = x5;
    out1[1] = x7;
    out1[2] = x9;
    out1[3] = x11;
    out1[4] = x13;
    out1[5] = x15;
    out1[6] = x17;
    out1[7] = x18;
    out1[8] = x19;
    out1[9] = x21;
    out1[10] = x23;
    out1[11] = x25;
    out1[12] = x27;
    out1[13] = x29;
    out1[14] = x31;
    out1[15] = x32;
    out1[16] = x33;
    out1[17] = x35;
    out1[18] = x37;
    out1[19] = x39;
    out1[20] = x41;
    out1[21] = x43;
    out1[22] = x45;
    out1[23] = x46;
    out1[24] = x47;
    out1[25] = x49;
    out1[26] = x51;
    out1[27] = x53;
    out1[28] = x55;
    out1[29] = x57;
    out1[30] = x59;
    out1[31] = x60;
}