forked from nicholatian/saturn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmath.cc
61 lines (51 loc) · 2.76 KB
/
math.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/// -*- coding: utf-8; mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*-
/*****************************************************************************\
* *
* .d8888b. d8888 88888888888 888 888 8888888b. 888b 888 *
* d88P Y88b d88888 888 888 888 888 Y88b 8888b 888 *
* Y88b. d88P888 888 888 888 888 888 88888b 888 *
* "Y888b. d88P 888 888 888 888 888 d88P 888Y88b 888 *
* "Y88b. d88P 888 888 888 888 8888888P" 888 Y88b888 *
* "888 d88P 888 888 888 888 888 T88b 888 Y88888 *
* Y88b d88P d8888888888 888 Y88b. .d88P 888 T88b 888 Y8888 *
* "Y8888P" d88P 888 888 "Y88888P" 888 T88b 888 Y888 *
* *
* Saturn *
* A general-purpose game engine for the Nintendo® Game Boy Advance™ *
* *
* Copyright © 2016-2017 Nicholatian *
* *
* Licensed under the Apache License, Version 2.0 (the “License”); you may *
* not use this file except in compliance with the License. You may obtain a *
* copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an “AS IS” BASIS, WITHOUT *
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the *
* License for the specific language governing permissions and limitations *
* under the License. *
* *
\*****************************************************************************/
#include "math.hh"
#include <gba/types.hh>
#include "lowbios.hh"
using saturn::s32;
using saturn::u32;
s32 saturn::divide( s32 num, s32 den )
{
if(den == 0)
{
return 0;
}
return _sat__bios_div( num, den );
}
u32 saturn::sqroot( u32 num )
{
return _sat__bios_sqrt( num );
}
s32 saturn::modulus( s32 num, s32 den )
{
return num - (den * saturn::divide( num, den ));
}