// File: /workspace/github_cpp_makefile_star2_O1/Luthaf[P]zeopp/voro++/src/cell.cc
// Function: voro::voronoicell_base::output_custom(char const*, int, double, double, double, double, _IO_FILE*)
void voronoicell_base::output_custom(const char *format,int i,double x,double y,double z,double r,FILE *fp) {
	char *fmp=(const_cast<char*>(format));
	std::vector<int> vi;
	std::vector<double> vd;
	while(*fmp!=0) {
		if(*fmp=='%') {
			fmp++;
			switch(*fmp) {

				// Particle-related output
				case 'i': fprintf(fp,"%d",i);break;
				case 'x': fprintf(fp,"%g",x);break;
				case 'y': fprintf(fp,"%g",y);break;
				case 'z': fprintf(fp,"%g",z);break;
				case 'q': fprintf(fp,"%g %g %g",x,y,z);break;
				case 'r': fprintf(fp,"%g",r);break;

				// Vertex-related output
				case 'w': fprintf(fp,"%d",p);break;
				case 'p': output_vertices(fp);break;
				case 'P': output_vertices(x,y,z,fp);break;
				case 'o': output_vertex_orders(fp);break;
				case 'm': fprintf(fp,"%g",0.25*max_radius_squared());break;

				// Edge-related output
				case 'g': fprintf(fp,"%d",number_of_edges());break;
				case 'E': fprintf(fp,"%g",total_edge_distance());break;
				case 'e': face_perimeters(vd);voro_print_vector(vd,fp);break;

				// Face-related output
				case 's': fprintf(fp,"%d",number_of_faces());break;
				case 'F': fprintf(fp,"%g",surface_area());break;
				case 'A': {
						  face_freq_table(vi);
						  voro_print_vector(vi,fp);
					  } break;
				case 'a': face_orders(vi);voro_print_vector(vi,fp);break;
				case 'f': face_areas(vd);voro_print_vector(vd,fp);break;
				case 't': {
						  face_vertices(vi);
						  voro_print_face_vertices(vi,fp);
					  } break;
				case 'l': normals(vd);
					  voro_print_positions(vd,fp);
					  break;
				case 'n': neighbors(vi);
					  voro_print_vector(vi,fp);
					  break;

				// Volume-related output
				case 'v': fprintf(fp,"%g",volume());break;
				case 'c': {
						  double cx,cy,cz;
						  centroid(cx,cy,cz);
						  fprintf(fp,"%g %g %g",cx,cy,cz);
					  } break;
				case 'C': {
						  double cx,cy,cz;
						  centroid(cx,cy,cz);
						  fprintf(fp,"%g %g %g",x+cx,y+cy,z+cz);
					  } break;

				// End-of-string reached
				case 0: fmp--;break;

				// The percent sign is not part of a
				// control sequence
				default: putc('%',fp);putc(*fmp,fp);
			}
		} else putc(*fmp,fp);
		fmp++;
	}
	fputs("\n",fp);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rcx, %rbx
movsd %xmm3, 0x70(%rsp)
movsd %xmm2, 0x18(%rsp)
movsd %xmm1, 0x10(%rsp)
movsd %xmm0, 0x8(%rsp)
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
xorpd %xmm0, %xmm0
movapd %xmm0, 0x20(%rsp)
xorl %eax, %eax
movq %rax, 0x30(%rsp)
movq %rax, 0x60(%rsp)
movapd %xmm0, 0x50(%rsp)
leaq 0x2d5ec(%rip), %r12     # 0x38a38
movzbl (%r15), %eax
cmpl $0x25, %eax
je 0xb46d
testl %eax, %eax
je 0xb757
movsbl %al, %edi
movq %rbx, %rsi
callq 0x2260
jmp 0xb74f
leaq 0x1(%r15), %r13
movzbl 0x1(%r15), %eax
leal -0x41(%rax), %ecx
cmpl $0x39, %ecx
ja 0xb499
movslq (%r12,%rcx,4), %rax
addq %r12, %rax
jmpq *%rax
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xb02e
jmp 0xb5a5
testl %eax, %eax
je 0xb74f
movl $0x25, %edi
movq %rbx, %rsi
callq 0x2260
movsbl (%r13), %edi
movq %rbx, %rsi
callq 0x2260
jmp 0xb74c
leaq 0x2dc2e(%rip), %rsi     # 0x390f5
movq %rbx, %rdi
movsd 0x10(%rsp), %xmm0
jmp 0xb730
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa604
jmp 0xb74c
movq %r14, %rdi
callq 0x9b0a
mulsd 0x2d4f3(%rip), %xmm0    # 0x389e8
jmp 0xb726
leaq 0x2d912(%rip), %rsi     # 0x38e13
movq %rbx, %rdi
movl %ebp, %edx
jmp 0xb745
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa6f0
jmp 0xb74c
leaq 0x2dbd3(%rip), %rsi     # 0x390f5
movq %rbx, %rdi
movsd 0x18(%rsp), %xmm0
jmp 0xb730
movq (%r14), %rax
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq *(%rax)
jmp 0xb5a5
leaq 0x48(%rsp), %rsi
leaq 0x40(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r14, %rdi
callq 0x9746
movsd 0x48(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
jmp 0xb602
movl 0x1c(%r14), %edx
jmp 0xb73b
leaq 0x2db78(%rip), %rsi     # 0x390f5
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
jmp 0xb730
movq %r14, %rdi
callq 0x946e
jmp 0xb726
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xaea0
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x13265
movq %r13, %r15
jmp 0xb74f
movq %r14, %rdi
callq 0x9b80
jmp 0xb726
leaq 0x48(%rsp), %rsi
leaq 0x40(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r14, %rdi
callq 0x9746
movsd 0x48(%rsp), %xmm0
addsd 0x8(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
addsd 0x10(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
addsd 0x18(%rsp), %xmm2
leaq 0x2dae6(%rip), %rsi     # 0x390ef
movq %rbx, %rdi
jmp 0xb6e0
leaq 0x2dadd(%rip), %rsi     # 0x390f5
movq %rbx, %rdi
movsd 0x70(%rsp), %xmm0
jmp 0xb730
movq %r14, %rdi
movsd 0x8(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movq %rbx, %rsi
callq 0xa85e
jmp 0xb74c
movslq 0x1c(%r14), %rcx
testq %rcx, %rcx
jle 0xb739
movq 0x30(%r14), %rax
leaq (%rax,%rcx,4), %rcx
xorl %edx, %edx
addl (%rax), %edx
addq $0x4, %rax
cmpq %rcx, %rax
jb 0xb65f
sarl %edx
jmp 0xb73b
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0xa3ae
leaq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x131b2
movq %r13, %r15
jmp 0xb74f
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0xa97e
jmp 0xb6af
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x917c
leaq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x13375
movq %r13, %r15
jmp 0xb74f
leaq 0x2da24(%rip), %rsi     # 0x390ef
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movb $0x3, %al
callq 0x21b0
jmp 0xb74c
movq %r14, %rdi
callq 0xa490
leaq 0x2d71b(%rip), %rsi     # 0x38e13
movq %rbx, %rdi
movl %eax, %edx
jmp 0xb745
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xac6c
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x13495
movq %r13, %r15
jmp 0xb74f
movq %r14, %rdi
callq 0x84ce
leaq 0x2d9c8(%rip), %rsi     # 0x390f5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21b0
jmp 0xb74c
xorl %edx, %edx
leaq 0x2d6d1(%rip), %rsi     # 0x38e13
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21b0
movq %r13, %r15
incq %r15
jmp 0xb44c
leaq 0x31eee(%rip), %rdi     # 0x3d64c
movq %rbx, %rsi
callq 0x2140
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xb77d
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb794
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb7a7
jmp 0xb7a7
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xb7c1
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb7d8
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq %rbx, %rdi
callq 0x2230