// File: ef-gy[P]libefgy/include/ef.gy/factory.h
// Function: efgy::geometry::model<float, efgy::geometry::functor::echo, efgy::geometry::cube, 7ul, 7ul, efgy::math::format::cartesian>::with(std::ostream&, unsigned long const&, unsigned long const&, efgy::math::format::cartesian const&)
constexpr static typename func<Q, T, d, e, format>::output with(
      typename func<Q, T, d, e, format>::argument arg, const std::size_t &dims,
      const std::size_t &rdims, const format &tag) {
    return d < T<Q, d>::dimensions::modelDimensionMinimum
               ? func<Q, T, d, e, format>::pass(arg)
               : (T<Q, d>::dimensions::modelDimensionMaximum > 0) &&
                         (d > T<Q, d>::dimensions::modelDimensionMaximum)
                     ? model<Q, func, T, d - 1, e, format>::with(arg, dims,
                                                                 rdims, tag)
                     : e < T<Q, d>::renderDepth
                           ? model<Q, func, T, d - 1, e, format>::with(
                                 arg, dims, rdims, tag)
                           : 0 == rdims
                                 ? (0 == dims
                                    ? func<Q, T, d, e, format>::apply(arg, tag),
                                    model<Q, func, T, d, e - 1, format>::with(
                                        arg, dims, rdims, tag),
                                    model<Q, func, T, d - 1, e, format>::with(
                                        arg, dims, rdims, tag)
                                    : d == dims
                                    ? func<Q, T, d, e, format>::apply(arg, tag),
                                    model<Q, func, T, d, e - 1, format>::with(
                                        arg, dims, rdims, tag)
                                    : d < dims
                                          ? func<Q, T, d, e, format>::pass(arg)
                                          : model<Q, func, T, d - 1, e,
                                                  format>::with(arg, dims,
                                                                rdims, tag))
                                 : e == rdims
                                       ? (0 == dims
                                          ? func<Q, T, d, e, format>::apply(
                                                arg, tag),
                                          model<Q, func, T, d - 1, e,
                                                format>::with(arg, dims, rdims,
                                                              tag)
                                          : d == dims
                                          ? func<Q, T, d, e, format>::apply(
                                                arg, tag),
                                          model<Q, func, T, d, e - 1,
                                                format>::with(arg, dims, rdims,
                                                              tag)
                                          : d < dims
                                                ? func<Q, T, d, e,
                                                       format>::pass(arg)
                                                : model<Q, func, T, d - 1, e,
                                                        format>::with(arg, dims,
                                                                      rdims,
                                                                      tag))
                                       : e < rdims
                                             ? func<Q, T, d, e, format>::pass(
                                                   arg)
                                             : model<Q, func, T, d, e - 1,
                                                     format>::with(arg, dims,
                                                                   rdims, tag);
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq (%rcx), %rax
jne 0x7118
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpq (%rcx), %rax
jne 0x708f
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x29280
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29300
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29340
movq %rax, -0x28(%rbp)
jmp 0x710b
movq -0x10(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jne 0x70c5
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x29280
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29300
movq %rax, -0x30(%rbp)
jmp 0x7103
movq -0x10(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jae 0x70e2
movq -0x8(%rbp), %rdi
callq 0x29560
movq %rax, -0x38(%rbp)
jmp 0x70fb
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29340
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x7229
movq -0x18(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jne 0x71e3
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpq (%rcx), %rax
jne 0x715d
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x29280
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29340
movq %rax, -0x48(%rbp)
jmp 0x71d9
movq -0x10(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jne 0x7193
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x29280
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29300
movq %rax, -0x50(%rbp)
jmp 0x71d1
movq -0x10(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jae 0x71b0
movq -0x8(%rbp), %rdi
callq 0x29560
movq %rax, -0x58(%rbp)
jmp 0x71c9
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29340
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x7221
movq -0x18(%rbp), %rcx
movl $0x7, %eax
cmpq (%rcx), %rax
jae 0x7200
movq -0x8(%rbp), %rdi
callq 0x29560
movq %rax, -0x68(%rbp)
jmp 0x7219
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x29300
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)