// File: /workspace/github_cpp_makefile_star2_O3/ef-gy[P]libefgy/include/ef.gy/ifs.h
// Function: efgy::geometry::generators::gasket<float, 4ul, 4ul>::functions(efgy::geometry::parameters<float> const&)
static std::vector<translation> functions(const parameters<Q> &parameter) {
    std::vector<translation> rv = {};

    const std::size_t nfunctions = (1 << (depth - 1)) + 1;
    std::array<math::vector<Q, renderDepth>, nfunctions> translations;

    translations[0][0] = Q(0.25);

    for (std::size_t i = 1; i < translations.size(); i++) {
      translations[i][0] = Q(-0.25);
      for (std::size_t j = 1; j < depth; j++) {
        const std::size_t k = i - 1;
        const std::size_t l = j - 1;
        const std::size_t b = 1 << l;
        const bool s = k & b;
        translations[i][j] = Q(s ? -0.25 : 0.25);
      }
    }

    for (const auto &t : translations) {
      rv.push_back(scale(0.5) * translate(t));
    }

    return rv;
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0x10(%rsp), %r14
movl $0x8c, %edx
movq %r14, %rdi
xorl %esi, %esi
callq 0x4150
movl $0x3e800000, -0x4(%r14) # imm = 0x3E800000
movl $0x1, %eax
leaq 0x24(%rsp), %rdx
movdqa 0x1a6a(%rip), %xmm0     # 0x240a0
movdqa 0x1a72(%rip), %xmm1     # 0x240b0
movdqa 0x1a7a(%rip), %xmm2     # 0x240c0
pshufd $0xf5, %xmm2, %xmm3     # xmm3 = xmm2[1,1,3,3]
leaq 0x19e6(%rip), %rsi      # 0x24038
movq %rax, %rcx
shlq $0x4, %rcx
movl $0xbe800000, 0xc(%rsp,%rcx) # imm = 0xBE800000
leaq 0x7fffffff(%rax), %rdi
xorl %ecx, %ecx
movq %rcx, %xmm4
pshufd $0x44, %xmm4, %xmm4     # xmm4 = xmm4[0,1,0,1]
por %xmm0, %xmm4
pxor %xmm1, %xmm4
movdqa %xmm2, %xmm5
pcmpgtd %xmm4, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pcmpeqd %xmm3, %xmm4
pand %xmm5, %xmm4
movd %xmm4, %r8d
testb $0x1, %r8b
je 0x226b3
xorl %r8d, %r8d
btq %rcx, %rdi
setae %r8b
movd (%rsi,%r8,4), %xmm5
movd %xmm5, -0x4(%rdx,%rcx,4)
pextrw $0x4, %xmm4, %r8d
testb $0x1, %r8b
je 0x226db
movl %edi, %r8d
shrl %cl, %r8d
xorl %r9d, %r9d
testb $0x2, %r8b
sete %r9b
movd (%rsi,%r9,4), %xmm4
movd %xmm4, (%rdx,%rcx,4)
addq $0x2, %rcx
cmpq $0x4, %rcx
jne 0x2266a
incq %rax
addq $0x10, %rdx
cmpq $0x9, %rax
jne 0x22652
xorl %ebp, %ebp
leaq 0x100(%rsp), %r14
leaq 0x8(%rsp), %r15
leaq 0x168(%rsp), %r12
leaq 0x9c(%rsp), %r13
movl $0x3f000000, 0x8(%rsp)  # imm = 0x3F000000
movq %r14, %rdi
movq %r15, %rsi
callq 0x228a2
leaq (%rsp,%rbp), %rsi
addq $0xc, %rsi
movq %r12, %rdi
callq 0x22a4c
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x22d11
movq 0x8(%rbx), %rax
cmpq 0x10(%rbx), %rax
je 0x22767
movl $0x19, %ecx
movq %rax, %rdi
movq %r13, %rsi
rep  movsl (%rsi), %es:(%rdi)
addq $0x64, %rax
movq %rax, 0x8(%rbx)
jmp 0x22775
movq %rbx, %rdi
movq %rax, %rsi
movq %r13, %rdx
callq 0x22ba0
addq $0x10, %rbp
cmpq $0x90, %rbp
jne 0x22715
movq %rbx, %rax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x22799
movq %rax, %r14
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x227b0
movq 0x10(%rbx), %rsi
subq %rdi, %rsi
callq 0x4260
movq %r14, %rdi
callq 0x4400