blob: 976e605fd36eaaa872785377c5ec1cf822fd2666 [file] [log] [blame]
Austin Schuhc6423e62017-02-11 16:56:30 -08001#ifndef FRC971_ZEROING_WRAP_H_
2#define FRC971_ZEROING_WRAP_H_
3
4namespace frc971 {
5namespace zeroing {
6
7// Returns a modified value which has been wrapped such that it is +- period/2
8// away from nearest.
9double Wrap(double nearest, double value, double period);
Austin Schuh4fae0fc2018-03-27 23:51:42 -070010float Wrap(float nearest, float value, float period);
Austin Schuhc6423e62017-02-11 16:56:30 -080011
Austin Schuhd82068e2019-01-26 20:05:42 -080012inline double UnWrap(double nearest, double value, double period) {
13 return Wrap(nearest, value, period);
14}
15inline float UnWrap(float nearest, float value, float period) {
16 return Wrap(nearest, value, period);
17}
18
Austin Schuhc6423e62017-02-11 16:56:30 -080019} // namespace zeroing
20} // namespace frc971
21
22#endif // FRC971_ZEROING_WRAP_H_