forked from waynegramlich/fiducials
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Float.c
72 lines (60 loc) · 1.85 KB
/
Float.c
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
62
63
64
65
66
67
68
69
70
71
72
// Copyright (c) 2013 by Wayne C. Gramlich. All rights reserved.
#include <math.h>
#include "Float.h"
/// @brief Return an angle in radians between -pi and pi.
/// @param angle to normalize.
/// @returns normalized angle.
///
/// *Float__angle_normalize*() will normalize *angle* to be between -pi an pi.
/// It is assumed that *angle* is between -3pi and +3pi.
Float Float__angle_normalize(Float angle) {
Float pi = (Float)3.14159265;
if (angle > pi) {
angle -= pi + pi;
} else if (angle < -pi) {
angle += pi + pi;
}
return angle;
}
/// @brief Returns the sort order of *float1* to *float2*.
/// @param float1 is the first *Float* to compare.
/// @param float2 is the second *Float* to compare.
/// @returns -1, 0, or 1 depending upon sort order.
///
/// *Float__compare*() will return -1 if *float1* is less than *float2*,
/// 0 if they are equal, and 1 otherwise.
Integer Float__compare(Float float1, Float float2) {
Integer result = 0;
if (float1 < float2) {
result = -1;
} else if (float1 > float2) {
result = 1;
}
return result;
}
/// @brief Return the cosine of *angle*
/// @param angle in radians.
/// @returns cosine of *angle*.
///
/// *Float__size*() returns the cosine of *angle* where *angle* is in units
/// of radians.
Float Float__cosine(Float angle) {
return cosf(angle);
}
/// @brief Return the sine of *angle*
/// @param angle in radians.
/// @returns sine of *angle*.
///
/// *Float__size*() returns the sine of *angle* where *angle* is in units
/// of radians.
Float Float__sine(Float angle) {
return sinf(angle);
}
/// @brief Return the square root of *square*.
/// @param square is the value to take the square root of.
/// @returns square root of *square*.
///
/// *Float__square_root*() will return the square root of *square*.
Float Float__square_root(Float square) {
return sqrtf(square);
}