diff --git a/libmaxsi/Makefile b/libmaxsi/Makefile
index 36c8281f..26327335 100644
--- a/libmaxsi/Makefile
+++ b/libmaxsi/Makefile
@@ -77,6 +77,7 @@ errorprint.o \
exit.o \
_exit.o \
_Exit.o \
+fabs.o \
fchmod.o \
fcntl.o \
fstat.o \
diff --git a/libmaxsi/fabs.cpp b/libmaxsi/fabs.cpp
new file mode 100644
index 00000000..f4e6117a
--- /dev/null
+++ b/libmaxsi/fabs.cpp
@@ -0,0 +1,46 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2012.
+
+ This file is part of LibMaxsi.
+
+ LibMaxsi is free software: you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with LibMaxsi. If not, see .
+
+ fabs.cpp
+ Absolute value of floating point numbers.
+
+*******************************************************************************/
+
+#include
+
+extern "C" double fabs(double x)
+{
+ if ( x < 0.0f )
+ return -x;
+ return x;
+}
+
+extern "C" float fabsf(float x)
+{
+ if ( x < 0.0f )
+ return -x;
+ return x;
+}
+
+extern "C" long double fabsl(long double x)
+{
+ if ( x < 0.0f )
+ return -x;
+ return x;
+}
diff --git a/libmaxsi/include/math.h b/libmaxsi/include/math.h
index 54c9a415..9f130e2e 100644
--- a/libmaxsi/include/math.h
+++ b/libmaxsi/include/math.h
@@ -1,6 +1,6 @@
/******************************************************************************
- COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2011.
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012.
This file is part of LibMaxsi.
@@ -30,6 +30,9 @@
__BEGIN_DECLS
/* TODO: Actually comply with standards by declaring stuff here. */
+double fabs(double x);
+float fabsf(float x);
+long double fabsl(long double x);
__END_DECLS