// File: /workspace/github_cpp_makefile_star2_O3/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 0x2d750(%rip), %r12     # 0x38aa8
movzbl (%r15), %eax
cmpl $0x25, %eax
je 0xb379
testl %eax, %eax
je 0xb663
movsbl %al, %edi
movq %rbx, %rsi
callq 0x2260
jmp 0xb65b
leaq 0x1(%r15), %r13
movzbl 0x1(%r15), %eax
leal -0x41(%rax), %ecx
cmpl $0x39, %ecx
ja 0xb3a5
movslq (%r12,%rcx,4), %rax
addq %r12, %rax
jmpq *%rax
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xaf56
jmp 0xb4b1
testl %eax, %eax
je 0xb65b
movl $0x25, %edi
movq %rbx, %rsi
callq 0x2260
movsbl (%r13), %edi
movq %rbx, %rsi
callq 0x2260
jmp 0xb658
leaq 0x2dd92(%rip), %rsi     # 0x39165
movq %rbx, %rdi
movsd 0x10(%rsp), %xmm0
jmp 0xb63c
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa52c
jmp 0xb658
movq %r14, %rdi
callq 0x9a14
mulsd 0x2d657(%rip), %xmm0    # 0x38a58
jmp 0xb632
leaq 0x2da76(%rip), %rsi     # 0x38e83
movq %rbx, %rdi
movl %ebp, %edx
jmp 0xb651
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa618
jmp 0xb658
leaq 0x2dd37(%rip), %rsi     # 0x39165
movq %rbx, %rdi
movsd 0x18(%rsp), %xmm0
jmp 0xb63c
movq (%r14), %rax
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq *(%rax)
jmp 0xb4b1
leaq 0x48(%rsp), %rsi
leaq 0x40(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r14, %rdi
callq 0x964e
movsd 0x48(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
jmp 0xb50e
movl 0x1c(%r14), %edx
jmp 0xb647
leaq 0x2dcdc(%rip), %rsi     # 0x39165
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
jmp 0xb63c
movq %r14, %rdi
callq 0x938e
jmp 0xb632
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xadbe
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x1349d
movq %r13, %r15
jmp 0xb65b
movq %r14, %rdi
callq 0x9a8a
jmp 0xb632
leaq 0x48(%rsp), %rsi
leaq 0x40(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r14, %rdi
callq 0x964e
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 0x2dc4a(%rip), %rsi     # 0x3915f
movq %rbx, %rdi
jmp 0xb5ec
leaq 0x2dc41(%rip), %rsi     # 0x39165
movq %rbx, %rdi
movsd 0x70(%rsp), %xmm0
jmp 0xb63c
movq %r14, %rdi
movsd 0x8(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movq %rbx, %rsi
callq 0xa786
jmp 0xb658
movslq 0x1c(%r14), %rcx
testq %rcx, %rcx
jle 0xb645
movq 0x30(%r14), %rax
leaq (%rax,%rcx,4), %rcx
xorl %edx, %edx
addl (%rax), %edx
addq $0x4, %rax
cmpq %rcx, %rax
jb 0xb56b
sarl %edx
jmp 0xb647
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0xa2b6
leaq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x133ea
movq %r13, %r15
jmp 0xb65b
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0xa8a6
jmp 0xb5bb
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x90ac
leaq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x135ad
movq %r13, %r15
jmp 0xb65b
leaq 0x2db88(%rip), %rsi     # 0x3915f
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movb $0x3, %al
callq 0x21b0
jmp 0xb658
movq %r14, %rdi
callq 0xa3a2
leaq 0x2d87f(%rip), %rsi     # 0x38e83
movq %rbx, %rdi
movl %eax, %edx
jmp 0xb651
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xab78
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x136cd
movq %r13, %r15
jmp 0xb65b
movq %r14, %rdi
callq 0x843c
leaq 0x2db2c(%rip), %rsi     # 0x39165
movq %rbx, %rdi
movb $0x1, %al
callq 0x21b0
jmp 0xb658
xorl %edx, %edx
leaq 0x2d835(%rip), %rsi     # 0x38e83
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21b0
movq %r13, %r15
incq %r15
jmp 0xb358
leaq 0x3208a(%rip), %rdi     # 0x3d6f4
movq %rbx, %rsi
callq 0x2140
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xb689
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb6a0
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 0xb6b3
jmp 0xb6b3
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xb6cd
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xb6e4
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movq %rbx, %rdi
callq 0x2230