@triton.jit
def first_order_fwd(coord_ptr: tl.tensor, output_ptr: tl.tensor, block_size:
    tl.constexpr, coord_numel: tl.constexpr, output_numel: tl.constexpr,
    col_offset: tl.constexpr, output_stride: tl.constexpr):
    coord_stride = 3
    block_id = tl.program_id(0)
    coord_striding = tl.arange(0, block_size) * coord_stride
    coord_row_offset = coord_striding + block_size * coord_stride * block_id
    x = tl.load(coord_ptr + coord_row_offset, mask=coord_row_offset <
        coord_numel)
    y = tl.load(coord_ptr + coord_row_offset + 1, mask=coord_row_offset + 1 <
        coord_numel)
    z = tl.load(coord_ptr + coord_row_offset + 2, mask=coord_row_offset + 2 <
        coord_numel)
    CONST_00 = tl.sqrt(3.0)
    Y10 = CONST_00 * x
    Y11 = CONST_00 * y
    Y12 = CONST_00 * z
    output_striding = tl.arange(0, block_size) * output_stride
    output_row_offset = (output_striding + block_size * output_stride *
        block_id + col_offset)
    tl.store(output_ptr + output_row_offset, Y10, mask=output_row_offset <
        output_numel)
    tl.store(output_ptr + output_row_offset + 1, Y11, mask=
        output_row_offset + 1 < output_numel)
    tl.store(output_ptr + output_row_offset + 2, Y12, mask=
        output_row_offset + 2 < output_numel)
