extern struct MathIeeeDoubTransBase * MathIeeeDoubTransBase;
extern struct MathIeeeDoubBasBase * MathIeeeDoubBasBase;

double const atan (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x1e)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const sin (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x24)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const cos (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x2a)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const tan (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x30)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const sqrt (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x60)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const asin (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubTransBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x72)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
double const floor (double parm)
{
	register double res __asm("d0");
	register void *a6 __asm ("a6");
	register double d0 __asm("d0");

	a6 = MathIeeeDoubBasBase;
	d0 = parm;
	__asm volatile ("
	jsr a6@(-0x5a)"
	: "=r" (res)
	: "r" (a6), "r" (d0)
	: "d0", "d1", "a0", "a1");
	return res;
}
