// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../tools/sparse.c
// Function: sp_num_alloc
int sp_num_alloc(sp_num** N, int n, ErrorMsg error_message){
	int maxnz, k;
	class_alloc((*N),sizeof(sp_num),error_message);
	maxnz = n*(n+1);
	maxnz /=2;
	(*N)->n = n;
	class_call(sp_mat_alloc(&((*N)->L), n, n, maxnz, error_message),
		error_message,error_message);
	class_call(sp_mat_alloc(&((*N)->U), n, n, maxnz, error_message),
		error_message,error_message);
	class_alloc((*N)->xi,n*sizeof(int*),error_message);
	/* I really want xi to be a vector of pointers to vectors. */
	class_alloc((*N)->xi[0],n*n*sizeof(int),error_message);
	for (k=1;k<n;k++)	(*N)->xi[k] = (*N)->xi[k-1]+n;
	/*Assign pointers to rows.*/
	class_alloc((*N)->topvec,n*sizeof(int),error_message);
	class_alloc((*N)->pinv,n*sizeof(int),error_message);
	class_alloc((*N)->p,n*sizeof(int),error_message);
	/* Has to be n+1 because sp_amd uses it for storage:*/
	class_alloc((*N)->q,(n+1)*sizeof(int),error_message);
	class_alloc((*N)->w,n*sizeof(double),error_message);
	class_alloc((*N)->wamd,(8*(n+1))*sizeof(int),error_message);
	return _SUCCESS_;
}

// Assembly:
subq $0x58b8, %rsp           # imm = 0x58B8
movq %rdi, 0x58a8(%rsp)
movl %esi, 0x58a4(%rsp)
movq %rdx, 0x5898(%rsp)
movl $0x50, %edi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq %rcx, (%rax)
movq 0x58a8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0xb1cd
movl $0x50, 0x588c(%rsp)
leaq 0x5080(%rsp), %rdi
movl 0x588c(%rsp), %ecx
leaq 0x1c6e7f(%rip), %rsi    # 0x1d2004
leaq 0x1c7689(%rip), %rdx    # 0x1d2815
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x5080(%rsp), %r8
leaq 0x1c6e8a(%rip), %rsi    # 0x1d2034
leaq 0x1c7669(%rip), %rdx    # 0x1d281a
movl $0x27, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl 0x58a4(%rsp), %eax
movl 0x58a4(%rsp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl %eax, 0x5894(%rsp)
movl 0x5894(%rsp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x5894(%rsp)
movl 0x58a4(%rsp), %ecx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movl %ecx, (%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl 0x58a4(%rsp), %esi
movl 0x58a4(%rsp), %edx
movl 0x5894(%rsp), %ecx
movq 0x5898(%rsp), %r8
callq 0xadd0
cmpl $0x1, %eax
jne 0xb2a7
leaq 0x4880(%rsp), %rdi
movq 0x5898(%rsp), %rcx
leaq 0x1c7179(%rip), %rsi    # 0x1d23d8
leaq 0x1c75c1(%rip), %rdx    # 0x1d2827
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x4880(%rsp), %r8
leaq 0x1c6db0(%rip), %rsi    # 0x1d2034
leaq 0x1c758f(%rip), %rdx    # 0x1d281a
movl $0x2c, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movq 0x58a8(%rsp), %rax
movq (%rax), %rdi
addq $0x10, %rdi
movl 0x58a4(%rsp), %esi
movl 0x58a4(%rsp), %edx
movl 0x5894(%rsp), %ecx
movq 0x5898(%rsp), %r8
callq 0xadd0
cmpl $0x1, %eax
jne 0xb33c
leaq 0x4080(%rsp), %rdi
movq 0x5898(%rsp), %rcx
leaq 0x1c70e4(%rip), %rsi    # 0x1d23d8
leaq 0x1c7561(%rip), %rdx    # 0x1d285c
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x4080(%rsp), %r8
leaq 0x1c6d1b(%rip), %rsi    # 0x1d2034
leaq 0x1c74fa(%rip), %rdx    # 0x1d281a
movl $0x2e, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movslq 0x58a4(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x18(%rax)
jne 0xb3e2
movslq 0x58a4(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x407c(%rsp)
leaq 0x3870(%rsp), %rdi
movl 0x407c(%rsp), %ecx
leaq 0x1c6c6a(%rip), %rsi    # 0x1d2004
leaq 0x1c74f0(%rip), %rdx    # 0x1d2891
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x3870(%rsp), %r8
leaq 0x1c6c75(%rip), %rsi    # 0x1d2034
leaq 0x1c7454(%rip), %rdx    # 0x1d281a
movl $0x2f, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl 0x58a4(%rsp), %eax
imull 0x58a4(%rsp), %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, (%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpq $0x0, (%rax)
jne 0xb4a1
movl 0x58a4(%rsp), %eax
imull 0x58a4(%rsp), %eax
cltq
shlq $0x2, %rax
movl %eax, 0x386c(%rsp)
leaq 0x3060(%rsp), %rdi
movl 0x386c(%rsp), %ecx
leaq 0x1c6bab(%rip), %rsi    # 0x1d2004
leaq 0x1c743a(%rip), %rdx    # 0x1d289a
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x3060(%rsp), %r8
leaq 0x1c6bb6(%rip), %rsi    # 0x1d2034
leaq 0x1c7395(%rip), %rdx    # 0x1d281a
movl $0x31, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl $0x1, 0x5890(%rsp)
movl 0x5890(%rsp), %eax
cmpl 0x58a4(%rsp), %eax
jge 0xb519
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movl 0x5890(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movslq 0x58a4(%rsp), %rax
shlq $0x2, %rax
addq %rax, %rdx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movslq 0x5890(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movl 0x5890(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5890(%rsp)
jmp 0xb4ac
movslq 0x58a4(%rsp), %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x20(%rax)
jne 0xb5bf
movslq 0x58a4(%rsp), %rax
shlq $0x2, %rax
movl %eax, 0x305c(%rsp)
leaq 0x2850(%rsp), %rdi
movl 0x305c(%rsp), %ecx
leaq 0x1c6a8d(%rip), %rsi    # 0x1d2004
leaq 0x1c7328(%rip), %rdx    # 0x1d28a6
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x2850(%rsp), %r8
leaq 0x1c6a98(%rip), %rsi    # 0x1d2034
leaq 0x1c7277(%rip), %rdx    # 0x1d281a
movl $0x34, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movslq 0x58a4(%rsp), %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x28(%rax)
jne 0xb665
movslq 0x58a4(%rsp), %rax
shlq $0x2, %rax
movl %eax, 0x284c(%rsp)
leaq 0x2040(%rsp), %rdi
movl 0x284c(%rsp), %ecx
leaq 0x1c69e7(%rip), %rsi    # 0x1d2004
leaq 0x1c728f(%rip), %rdx    # 0x1d28b3
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x2040(%rsp), %r8
leaq 0x1c69f2(%rip), %rsi    # 0x1d2034
leaq 0x1c71d1(%rip), %rdx    # 0x1d281a
movl $0x35, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movslq 0x58a4(%rsp), %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x30(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x30(%rax)
jne 0xb70b
movslq 0x58a4(%rsp), %rax
shlq $0x2, %rax
movl %eax, 0x203c(%rsp)
leaq 0x1830(%rsp), %rdi
movl 0x203c(%rsp), %ecx
leaq 0x1c6941(%rip), %rsi    # 0x1d2004
leaq 0x1c71f4(%rip), %rdx    # 0x1d28be
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x1830(%rsp), %r8
leaq 0x1c694c(%rip), %rsi    # 0x1d2034
leaq 0x1c712b(%rip), %rdx    # 0x1d281a
movl $0x36, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl 0x58a4(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x38(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x38(%rax)
jne 0xb7ba
movl 0x58a4(%rsp), %eax
addl $0x1, %eax
cltq
shlq $0x2, %rax
movl %eax, 0x182c(%rsp)
leaq 0x1020(%rsp), %rdi
movl 0x182c(%rsp), %ecx
leaq 0x1c6892(%rip), %rsi    # 0x1d2004
leaq 0x1c714d(%rip), %rdx    # 0x1d28c6
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x1020(%rsp), %r8
leaq 0x1c689d(%rip), %rsi    # 0x1d2034
leaq 0x1c707c(%rip), %rdx    # 0x1d281a
movl $0x38, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movslq 0x58a4(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x48(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x48(%rax)
jne 0xb860
movslq 0x58a4(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x101c(%rsp)
leaq 0x810(%rsp), %rdi
movl 0x101c(%rsp), %ecx
leaq 0x1c67ec(%rip), %rsi    # 0x1d2004
leaq 0x1c70af(%rip), %rdx    # 0x1d28ce
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
leaq 0x810(%rsp), %r8
leaq 0x1c67f7(%rip), %rsi    # 0x1d2034
leaq 0x1c6fd6(%rip), %rdx    # 0x1d281a
movl $0x39, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl 0x58a4(%rsp), %eax
addl $0x1, %eax
shll $0x3, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x40(%rax)
movq 0x58a8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x40(%rax)
jne 0xb908
movl 0x58a4(%rsp), %eax
addl $0x1, %eax
shll $0x3, %eax
cltq
shlq $0x2, %rax
movl %eax, 0x80c(%rsp)
movq %rsp, %rdi
movl 0x80c(%rsp), %ecx
leaq 0x1c673c(%rip), %rsi    # 0x1d2004
leaq 0x1c7007(%rip), %rdx    # 0x1d28d6
movb $0x0, %al
callq 0x5b9c0
movq 0x5898(%rsp), %rdi
movq %rsp, %r8
leaq 0x1c674c(%rip), %rsi    # 0x1d2034
leaq 0x1c6f2b(%rip), %rdx    # 0x1d281a
movl $0x3a, %ecx
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x58b4(%rsp)
jmp 0xb913
movl $0x0, 0x58b4(%rsp)
movl 0x58b4(%rsp), %eax
addq $0x58b8, %rsp           # imm = 0x58B8
retq
nopw %cs:(%rax,%rax)