Index: /issm/trunk-jpl/src/c/shared/Numerics/numerics.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 12545)
+++ /issm/trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 12546)
@@ -9,4 +9,5 @@
 #include "./GaussPoints.h"
 #include "./isnan.h"
+#include "./recast.h"
 
 class Input;
Index: /issm/trunk-jpl/src/c/shared/Numerics/recast.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/recast.h	(revision 12546)
+++ /issm/trunk-jpl/src/c/shared/Numerics/recast.h	(revision 12546)
@@ -0,0 +1,39 @@
+/*
+ * recast.h
+ *
+ *  Created on: Jun 26, 2012
+ *      Author: utke
+ */
+
+#ifndef _RECAST_H_
+#define _RECAST_H_
+
+#ifndef _HAVE_ADOLC_
+
+template<class To, class From>
+To reCast(const From& from) {
+    return (To)from;
+}
+
+#else
+
+template<class To, class From>
+struct ForPartialSpecialization {
+    static  To reCast(const From& from ) { return (To) from;}
+};
+
+template<class To, class From>
+To reCast(const From& from) {
+    return ForPartialSpecialization<To,From>::reCast(from);
+}
+/**
+ * partial specialization
+ */
+template<class To>
+struct ForPartialSpecialization<To,adouble> {
+    static  To reCast(const adouble& from ) { return (To) (from.getValue());}
+};
+
+#endif
+
+#endif
