// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]eigenmath/eigenmath.c
// Function: d_scalar_scalar
void
d_scalar_scalar(struct atom *F, struct atom *X)
{
	if (!isusersymbol(X))
		stopf("derivative: symbol expected");

	if (car(F) == symbol(DERIVATIVE)) {
		derivative_of_derivative(F, X);
		return;
	}

	if (car(F) == symbol(INTEGRAL)) {
		derivative_of_integral(F, X);
		return;
	}

	// d(x,x)?

	if (equal(F, X)) {
		push_integer(1);
		return;
	}

	// d(a,x)?

	if (!iscons(F)) {
		push_integer(0);
		return;
	}

	if (car(F) == symbol(ADD)) {
		dsum(F, X);
		return;
	}

	if (car(F) == symbol(MULTIPLY)) {
		dproduct(F, X);
		return;
	}

	if (car(F) == symbol(POWER)) {
		dpower(F, X);
		return;
	}

	if (car(F) == symbol(LOG)) {
		dlog(F, X);
		return;
	}

	if (car(F) == symbol(SIN)) {
		dsin(F, X);
		return;
	}

	if (car(F) == symbol(COS)) {
		dcos(F, X);
		return;
	}

	if (car(F) == symbol(TAN)) {
		dtan(F, X);
		return;
	}

	if (car(F) == symbol(ARCSIN)) {
		darcsin(F, X);
		return;
	}

	if (car(F) == symbol(ARCCOS)) {
		darccos(F, X);
		return;
	}

	if (car(F) == symbol(ARCTAN)) {
		darctan(F, X);
		return;
	}

	if (car(F) == symbol(SINH)) {
		dsinh(F, X);
		return;
	}

	if (car(F) == symbol(COSH)) {
		dcosh(F, X);
		return;
	}

	if (car(F) == symbol(TANH)) {
		dtanh(F, X);
		return;
	}

	if (car(F) == symbol(ARCSINH)) {
		darcsinh(F, X);
		return;
	}

	if (car(F) == symbol(ARCCOSH)) {
		darccosh(F, X);
		return;
	}

	if (car(F) == symbol(ARCTANH)) {
		darctanh(F, X);
		return;
	}

	if (car(F) == symbol(ERF)) {
		derf(F, X);
		return;
	}

	if (car(F) == symbol(ERFC)) {
		derfc(F, X);
		return;
	}

	dfunction(F, X);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x3, %eax
je 0x167bc
leaq 0x2eae6(%rip), %rdi     # 0x4529d
callq 0x78d0
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x167d6
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x167e1
movq 0x48223(%rip), %rax     # 0x5ea00
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq 0x462f4(%rip), %rax     # 0x5cae0
jne 0x16800
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x16d90
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x1681a
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x16825
movq 0x481df(%rip), %rax     # 0x5ea00
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq 0x47258(%rip), %rax     # 0x5da88
jne 0x16844
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17240
jmp 0x16d83
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x93b0
cmpl $0x0, %eax
jne 0x16865
movl $0x1, %edi
callq 0xca50
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
je 0x1687e
xorl %edi, %edi
callq 0xca50
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16898
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x168a3
movq 0x48161(%rip), %rax     # 0x5ea00
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq 0x4a9f2(%rip), %rax     # 0x612a0
jne 0x168c2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17420
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x168dc
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x168e7
movq 0x4811d(%rip), %rax     # 0x5ea00
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq 0x4a9b6(%rip), %rax     # 0x612a8
jne 0x16906
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17500
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16920
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x1692b
movq 0x480d9(%rip), %rax     # 0x5ea00
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq 0x4a97a(%rip), %rax     # 0x612b0
jne 0x1694a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17620
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16964
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x1696f
movq 0x48095(%rip), %rax     # 0x5ea00
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq 0x47a56(%rip), %rax     # 0x5e3d0
jne 0x1698e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17e70
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x169a8
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x169b3
movq 0x48051(%rip), %rax     # 0x5ea00
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq 0x49002(%rip), %rax     # 0x5f9c0
jne 0x169d2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x17f90
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x169ec
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x169f7
movq 0x4800d(%rip), %rax     # 0x5ea00
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq 0x45dee(%rip), %rax     # 0x5c7f0
jne 0x16a16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x180c0
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16a30
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x16a3b
movq 0x47fc9(%rip), %rax     # 0x5ea00
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq 0x4928a(%rip), %rax     # 0x5fcd0
jne 0x16a5a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x181f0
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16a74
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x16a7f
movq 0x47f85(%rip), %rax     # 0x5ea00
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq 0x456fe(%rip), %rax     # 0x5c188
jne 0x16a9e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18330
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16ab8
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x16ac3
movq 0x47f41(%rip), %rax     # 0x5ea00
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpq 0x456aa(%rip), %rax     # 0x5c178
jne 0x16ae2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18480
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16afc
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x16b07
movq 0x47efd(%rip), %rax     # 0x5ea00
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq 0x45686(%rip), %rax     # 0x5c198
jne 0x16b26
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x185e0
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16b40
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x16b4b
movq 0x47eb9(%rip), %rax     # 0x5ea00
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpq 0x48e72(%rip), %rax     # 0x5f9c8
jne 0x16b6a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18720
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16b84
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x16b8f
movq 0x47e75(%rip), %rax     # 0x5ea00
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpq 0x45c5e(%rip), %rax     # 0x5c7f8
jne 0x16bae
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18850
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16bcb
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
jmp 0x16bd9
movq 0x47e2e(%rip), %rax     # 0x5ea00
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
cmpq 0x490f1(%rip), %rax     # 0x5fcd8
jne 0x16bfb
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18980
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16c18
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x90(%rbp)
jmp 0x16c26
movq 0x47de1(%rip), %rax     # 0x5ea00
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpq 0x4555c(%rip), %rax     # 0x5c190
jne 0x16c48
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18ac0
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16c65
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0x16c73
movq 0x47d94(%rip), %rax     # 0x5ea00
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
cmpq 0x454ff(%rip), %rax     # 0x5c180
jne 0x16c95
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18c10
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16cb2
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xa0(%rbp)
jmp 0x16cc0
movq 0x47d47(%rip), %rax     # 0x5ea00
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
cmpq 0x454d2(%rip), %rax     # 0x5c1a0
jne 0x16ce2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18d60
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16cff
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xa8(%rbp)
jmp 0x16d0d
movq 0x47cfa(%rip), %rax     # 0x5ea00
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
cmpq 0x460cd(%rip), %rax     # 0x5cde8
jne 0x16d2c
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x18ea0
jmp 0x16d83
movq -0x8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x16d49
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xb0(%rbp)
jmp 0x16d57
movq 0x47cb0(%rip), %rax     # 0x5ea00
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
cmpq 0x4608b(%rip), %rax     # 0x5cdf0
jne 0x16d76
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x19020
jmp 0x16d83
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x191a0
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax)