Index: uspace/lib/math/include/mathtypes.h
===================================================================
--- uspace/lib/math/include/mathtypes.h	(revision ba11ebb0c9c9eff6cb448de9b6e401d27e65312c)
+++ uspace/lib/math/include/mathtypes.h	(revision bd5d4e1e25ff5190b9e96907c9af4fadb5a36363)
@@ -191,51 +191,121 @@
 #endif
 
-typedef union {
-	float val;
-	
+
 #if defined(FLOAT_SIZE_32)
+
+#ifndef float32_t
+	#define float32_t  float
+#endif
+
+#elif defined(FLOAT_SIZE_64)
+
+#ifndef float64_t
+	#define float64_t  float
+#endif
+
+#elif defined(FLOAT_SIZE_96)
+
+#ifndef float96_t
+	#define float96_t  float
+#endif
+
+#elif defined(FLOAT_SIZE_128)
+
+#ifndef float128_t
+	#define float128_t  float
+#endif
+
+#endif
+
+
+#if defined(DOUBLE_SIZE_32)
+
+#ifndef float32_t
+	#define float32_t  double
+#endif
+
+#elif defined(DOUBLE_SIZE_64)
+
+#ifndef float64_t
+	#define float64_t  double
+#endif
+
+#elif defined(DOUBLE_SIZE_96)
+
+#ifndef float96_t
+	#define float96_t  double
+#endif
+
+#elif defined(DOUBLE_SIZE_128)
+
+#ifndef float128_t
+	#define float128_t  double
+#endif
+
+#endif
+
+
+#if defined(LONG_DOUBLE_SIZE_32)
+
+#ifndef float32_t
+	#define float32_t  long double
+#endif
+
+#elif defined(LONG_DOUBLE_SIZE_64)
+
+#ifndef float64_t
+	#define float64_t  long double
+#endif
+
+#elif defined(LONG_DOUBLE_SIZE_96)
+
+#ifndef float96_t
+	#define float96_t  long double
+#endif
+
+#elif defined(LONG_DOUBLE_SIZE_128)
+
+#ifndef float128_t
+	#define float128_t  long double
+#endif
+
+#endif
+
+
+#ifdef float32_t
+
+typedef union {
+	float32_t val;
 	float32 data;
-#elif defined(FLOAT_SIZE_64)
+} float32_u;
+
+#endif
+
+#ifdef float64_t
+
+typedef union {
+	float64_t val;
 	float64 data;
-#elif defined(FLOAT_SIZE_96)
+} float64_u;
+
+#endif
+
+#ifdef float96_t
+
+typedef union {
+	float96_t val;
 	float96 data;
-#elif defined(FLOAT_SIZE_128)
+} float96_u;
+
+#endif
+
+#ifdef float128_t
+
+typedef union {
+	float128_t val;
 	float128 data;
-#else
-	#error Unsupported float size
-#endif
-} float_t;
-
-typedef union {
-	double val;
-	
-#if defined(DOUBLE_SIZE_32)
-	float32 data;
-#elif defined(DOUBLE_SIZE_64)
-	float64 data;
-#elif defined(DOUBLE_SIZE_96)
-	float96 data;
-#elif defined(DOUBLE_SIZE_128)
-	float128 data;
-#else
-	#error Unsupported double size
-#endif
-} double_t;
-
-typedef union {
-	long double val;
-	
-#if defined(LONG_DOUBLE_SIZE_32)
-	float32 data;
-#elif defined(LONG_DOUBLE_SIZE_64)
-	float64 data;
-#elif defined(LONG_DOUBLE_SIZE_96)
-	float96 data;
-#elif defined(LONG_DOUBLE_SIZE_128)
-	float128 data;
-#else
-	#error Unsupported long double size
-#endif
-} long_double_t;
+} float128_u;
+
+#endif
 
 #endif
Index: uspace/lib/math/include/mod.h
===================================================================
--- uspace/lib/math/include/mod.h	(revision ba11ebb0c9c9eff6cb448de9b6e401d27e65312c)
+++ uspace/lib/math/include/mod.h	(revision bd5d4e1e25ff5190b9e96907c9af4fadb5a36363)
@@ -36,5 +36,5 @@
 #define LIBMATH_MOD_H_
 
-extern double double_mod(double, double);
+extern float64_t float64_mod(float64_t, float64_t);
 
 #endif
Index: uspace/lib/math/include/trig.h
===================================================================
--- uspace/lib/math/include/trig.h	(revision ba11ebb0c9c9eff6cb448de9b6e401d27e65312c)
+++ uspace/lib/math/include/trig.h	(revision bd5d4e1e25ff5190b9e96907c9af4fadb5a36363)
@@ -36,6 +36,6 @@
 #define LIBMATH_TRIG_H_
 
-extern double double_sin(double);
-extern double double_cos(double);
+extern float64_t float64_sin(float64_t);
+extern float64_t float64_cos(float64_t);
 
 #endif
