 
   }
 
+  int EEPROM_writeAnything(int ee, const T& value)
+  {
+    const byte* p = (const byte*)(const void*)&value;
+    int i;
+    for (i = 0; i < sizeof(value); i++)
+      EEPROM.write(ee++, *p++);
+    return i;
+  }
+
+  int EEPROM_readAnything(int ee, T& value)
+  {
+    byte* p = (byte*)(void*)&value;
+    int i;
+    for (i = 0; i < sizeof(value); i++)
+      *p++ = EEPROM.read(ee++);
+    return i;
+  }
+
+
 };
 
 

}



  {
    return 1.0 / ( 1.0 + exp(-n) );
  }

  static T derivLinear( T n )
  {
    return 1.0;
  }

  static T derivSigmoid( T n )
  {
    return n * ( 1.0 - n );
