mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Cleanup code of rgbasm
Follow Linux kernel coding style. Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>
This commit is contained in:
@@ -9,8 +9,8 @@
|
||||
#include "asm/mymath.h"
|
||||
#include "asm/symbol.h"
|
||||
|
||||
#define fix2double(i) ((double)(i/65536.0))
|
||||
#define double2fix(d) ((int32_t)(d*65536.0))
|
||||
#define fx2double(i) ((double)((i) / 65536.0))
|
||||
#define double2fx(d) ((int32_t)((d) * 65536.0))
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265358979323846
|
||||
@@ -19,131 +19,116 @@
|
||||
/*
|
||||
* Define the _PI symbol
|
||||
*/
|
||||
void
|
||||
math_DefinePI(void)
|
||||
void math_DefinePI(void)
|
||||
{
|
||||
sym_AddEqu("_PI", double2fix(M_PI));
|
||||
sym_AddEqu("_PI", double2fx(M_PI));
|
||||
}
|
||||
|
||||
/*
|
||||
* Print a fixed point value
|
||||
*/
|
||||
void
|
||||
math_Print(int32_t i)
|
||||
void math_Print(int32_t i)
|
||||
{
|
||||
if (i >= 0)
|
||||
printf("%d.%05d", i >> 16,
|
||||
((int32_t) (fix2double(i) * 100000 + 0.5)) % 100000);
|
||||
((int32_t)(fx2double(i) * 100000 + 0.5)) % 100000);
|
||||
else
|
||||
printf("-%d.%05d", (-i) >> 16,
|
||||
((int32_t) (fix2double(-i) * 100000 + 0.5)) % 100000);
|
||||
((int32_t)(fx2double(-i) * 100000 + 0.5)) % 100000);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate sine
|
||||
*/
|
||||
int32_t
|
||||
math_Sin(int32_t i)
|
||||
int32_t math_Sin(int32_t i)
|
||||
{
|
||||
return (double2fix(sin(fix2double(i) * 2 * M_PI / 65536)));
|
||||
return double2fx(sin(fx2double(i) * 2 * M_PI / 65536));
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate cosine
|
||||
*/
|
||||
int32_t
|
||||
math_Cos(int32_t i)
|
||||
int32_t math_Cos(int32_t i)
|
||||
{
|
||||
return (double2fix(cos(fix2double(i) * 2 * M_PI / 65536)));
|
||||
return double2fx(cos(fx2double(i) * 2 * M_PI / 65536));
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate tangent
|
||||
*/
|
||||
int32_t
|
||||
math_Tan(int32_t i)
|
||||
int32_t math_Tan(int32_t i)
|
||||
{
|
||||
return (double2fix(tan(fix2double(i) * 2 * M_PI / 65536)));
|
||||
return double2fx(tan(fx2double(i) * 2 * M_PI / 65536));
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate arcsine
|
||||
*/
|
||||
int32_t
|
||||
math_ASin(int32_t i)
|
||||
int32_t math_ASin(int32_t i)
|
||||
{
|
||||
return (double2fix(asin(fix2double(i)) / 2 / M_PI * 65536));
|
||||
return double2fx(asin(fx2double(i)) / 2 / M_PI * 65536);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate arccosine
|
||||
*/
|
||||
int32_t
|
||||
math_ACos(int32_t i)
|
||||
int32_t math_ACos(int32_t i)
|
||||
{
|
||||
return (double2fix(acos(fix2double(i)) / 2 / M_PI * 65536));
|
||||
return double2fx(acos(fx2double(i)) / 2 / M_PI * 65536);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate arctangent
|
||||
*/
|
||||
int32_t
|
||||
math_ATan(int32_t i)
|
||||
int32_t math_ATan(int32_t i)
|
||||
{
|
||||
return (double2fix(atan(fix2double(i)) / 2 / M_PI * 65536));
|
||||
return double2fx(atan(fx2double(i)) / 2 / M_PI * 65536);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate atan2
|
||||
*/
|
||||
int32_t
|
||||
math_ATan2(int32_t i, int32_t j)
|
||||
int32_t math_ATan2(int32_t i, int32_t j)
|
||||
{
|
||||
return (double2fix
|
||||
(atan2(fix2double(i), fix2double(j)) / 2 / M_PI * 65536));
|
||||
return double2fx(atan2(fx2double(i), fx2double(j)) / 2 / M_PI * 65536);
|
||||
}
|
||||
|
||||
/*
|
||||
* Multiplication
|
||||
*/
|
||||
int32_t
|
||||
math_Mul(int32_t i, int32_t j)
|
||||
int32_t math_Mul(int32_t i, int32_t j)
|
||||
{
|
||||
return (double2fix(fix2double(i) * fix2double(j)));
|
||||
return double2fx(fx2double(i) * fx2double(j));
|
||||
}
|
||||
|
||||
/*
|
||||
* Division
|
||||
*/
|
||||
int32_t
|
||||
math_Div(int32_t i, int32_t j)
|
||||
int32_t math_Div(int32_t i, int32_t j)
|
||||
{
|
||||
return (double2fix(fix2double(i) / fix2double(j)));
|
||||
return double2fx(fx2double(i) / fx2double(j));
|
||||
}
|
||||
|
||||
/*
|
||||
* Round
|
||||
*/
|
||||
int32_t
|
||||
math_Round(int32_t i)
|
||||
int32_t math_Round(int32_t i)
|
||||
{
|
||||
return double2fix(round(fix2double(i)));
|
||||
return double2fx(round(fx2double(i)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Ceil
|
||||
*/
|
||||
int32_t
|
||||
math_Ceil(int32_t i)
|
||||
int32_t math_Ceil(int32_t i)
|
||||
{
|
||||
return double2fix(ceil(fix2double(i)));
|
||||
return double2fx(ceil(fx2double(i)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Floor
|
||||
*/
|
||||
int32_t
|
||||
math_Floor(int32_t i)
|
||||
int32_t math_Floor(int32_t i)
|
||||
{
|
||||
return double2fix(floor(fix2double(i)));
|
||||
return double2fx(floor(fx2double(i)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user